add comment, reward, total

Change-Id: Ib3d9f5f11b51e4bbf4dc5a553315ff3fd9110efb
diff --git a/src/main/java/com/g9/g9backend/controller/TotalController.java b/src/main/java/com/g9/g9backend/controller/TotalController.java
new file mode 100644
index 0000000..2359586
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/controller/TotalController.java
@@ -0,0 +1,67 @@
+package com.g9.g9backend.controller;
+
+import com.g9.g9backend.service.ResourceService;
+import com.g9.g9backend.service.ThreadService;
+import com.g9.g9backend.service.UserPurchaseService;
+import com.g9.g9backend.service.UserUploadService;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/total")
+public class TotalController {
+
+    private final ThreadService threadService;
+
+    private final UserPurchaseService userPurchaseService;
+
+    private final UserUploadService userUploadService;
+
+    private final ResourceService resourceService;
+
+    public TotalController(ThreadService threadService, UserPurchaseService userPurchaseService, UserUploadService userUploadService, ResourceService resourceService) {
+        this.threadService = threadService;
+        this.userPurchaseService = userPurchaseService;
+        this.userUploadService = userUploadService;
+        this.resourceService = resourceService;
+    }
+
+    private final Logger logger = LoggerFactory.getLogger(TotalController.class);
+
+
+    @GetMapping(value = "/info")
+    public ResponseEntity<Info> getTotalInfo() {
+
+        long threadCount = threadService.count();
+        long downloadCount = userPurchaseService.count();
+        long authorCount = userUploadService.count();
+        long resourceCount = resourceService.count();
+
+        Info info = new Info(threadCount, downloadCount, authorCount, resourceCount);
+        logger.info("统计数据返回:{}", info);
+
+        return ResponseEntity.ok(info);
+    }
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class Info {
+
+        private long threadCount;
+
+        private long downloadCount;
+
+        private long authorCount;
+
+        private long resourceCount;
+
+    }
+}