Prechádzať zdrojové kódy

feat(daytask): add daily stats summary API

urban 1 mesiac pred
rodič
commit
1239c75f48

+ 1 - 0
model/system/sys_apis.go

@@ -114,6 +114,7 @@ func generateApiName(path string) string {
 		"in":               "登录",
 		"wallet/info":      "钱包信息",
 		"get_by_group":     "按分组查询",
+		"summary":          "数据概览",
 	}
 
 	// 路径格式: /admin/api/{group}/{module}/{action}

+ 1 - 0
router/daytask/dt_system.go

@@ -100,4 +100,5 @@ var dtDailyStatsService = service.RealizationLayer.DaytaskServiceGroup.DtDailySt
 func (h DtDailyStatsRouter) Register(group *gin.RouterGroup) {
 	group.GET("get", dtDailyStatsService.Get)
 	group.GET("find", dtDailyStatsService.Find)
+	group.GET("summary", dtDailyStatsService.Summary)
 }

+ 34 - 0
service/daytask/dt_system.go

@@ -1,6 +1,8 @@
 package daytask
 
 import (
+	"time"
+
 	model "go_server/model/biz_modules/daytask"
 	"go_server/model/common/response"
 	"go_server/service/base"
@@ -442,3 +444,35 @@ func (s *DtDailyStatsService) Find(c *gin.Context) {
 		"paging": resp.Paging,
 	})
 }
+
+// Summary 核心数据概览:近7日新注册、总注册人数、昨日用户任务提交数
+func (s *DtDailyStatsService) Summary(c *gin.Context) {
+	s.SetDbAlias("daytask")
+	db := s.DB()
+	now := time.Now().Unix()
+	sevenDaysAgo := now - 7*24*3600
+
+	var newUsers7d int64
+	db.Model(&model.DtUser{}).Where("deleted_at IS NULL AND created_at >= ?", sevenDaysAgo).Count(&newUsers7d)
+
+	var totalUsers int64
+	db.Model(&model.DtUser{}).Where("deleted_at IS NULL").Count(&totalUsers)
+
+	loc := time.Local
+	today := time.Now().In(loc)
+	yesterday := today.AddDate(0, 0, -1)
+	start := time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 0, 0, 0, 0, loc)
+	startUnix := start.Unix()
+	endUnix := start.Add(24 * time.Hour).Unix()
+
+	var yesterdayTaskSubmits int64
+	db.Model(&model.DtUserTask{}).
+		Where("submit_time > 0 AND submit_time >= ? AND submit_time < ?", startUnix, endUnix).
+		Count(&yesterdayTaskSubmits)
+
+	response.Resp(c, gin.H{
+		"newUsers7d":           newUsers7d,
+		"totalUsers":           totalUsers,
+		"yesterdayTaskSubmits": yesterdayTaskSubmits,
+	})
+}