chore(activity): 补提福利活动接入入口改动

补充提交福利活动在主程序、路由和前后端 handler 装配中的接入改动。
确保福利活动能力在服务启动、admin 路由与 app 路由层完整连通。
This commit is contained in:
Zuncle 2026-04-29 17:28:36 +08:00
parent 3db52af4b6
commit 01db44ed50
4 changed files with 26 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import (
tasksvc "bindbox-game/internal/service/task_center" tasksvc "bindbox-game/internal/service/task_center"
titlesvc "bindbox-game/internal/service/title" titlesvc "bindbox-game/internal/service/title"
usersvc "bindbox-game/internal/service/user" usersvc "bindbox-game/internal/service/user"
welfaresvc "bindbox-game/internal/service/welfare_activity"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
) )
@ -23,6 +24,7 @@ type handler struct {
task tasksvc.Service task tasksvc.Service
redis *redis.Client redis *redis.Client
activityOrder activitysvc.ActivityOrderService // 活动订单服务 activityOrder activitysvc.ActivityOrderService // 活动订单服务
welfare welfaresvc.Service
} }
func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client, task tasksvc.Service) *handler { func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client, task tasksvc.Service) *handler {
@ -38,5 +40,6 @@ func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client, task task
task: task, task: task,
redis: rdb, redis: rdb,
activityOrder: activitysvc.NewActivityOrderService(logger, db), activityOrder: activitysvc.NewActivityOrderService(logger, db),
welfare: welfaresvc.New(logger, db),
} }
} }

View File

@ -18,6 +18,7 @@ import (
syscfgsvc "bindbox-game/internal/service/sysconfig" syscfgsvc "bindbox-game/internal/service/sysconfig"
titlesvc "bindbox-game/internal/service/title" titlesvc "bindbox-game/internal/service/title"
usersvc "bindbox-game/internal/service/user" usersvc "bindbox-game/internal/service/user"
welfaresvc "bindbox-game/internal/service/welfare_activity"
"github.com/redis/go-redis/v9" "github.com/redis/go-redis/v9"
) )
@ -41,6 +42,7 @@ type handler struct {
livestream livestreamsvc.Service livestream livestreamsvc.Service
synthesis synthesissvc.Service synthesis synthesissvc.Service
financeSvc financesvc.Service // P&L service (read-only) financeSvc financesvc.Service // P&L service (read-only)
welfare welfaresvc.Service
} }
func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client) *handler { func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client) *handler {
@ -69,5 +71,6 @@ func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client) *handler
livestream: livestreamsvc.New(logger, db, ticketSvc), livestream: livestreamsvc.New(logger, db, ticketSvc),
synthesis: synthesissvc.New(db), synthesis: synthesissvc.New(db),
financeSvc: financesvc.New(logger, db), financeSvc: financesvc.New(logger, db),
welfare: welfaresvc.New(logger, db),
} }
} }

View File

@ -172,6 +172,17 @@ func NewHTTPMux(logger logger.CustomLogger, db mysql.Repo) (core.Mux, func(), er
adminAuthApiRouter.GET("/dashboard/order_trend", adminHandler.DashboardOrderTrend()) adminAuthApiRouter.GET("/dashboard/order_trend", adminHandler.DashboardOrderTrend())
adminAuthApiRouter.GET("/dashboard/activity_stats", adminHandler.DashboardActivityStats()) adminAuthApiRouter.GET("/dashboard/activity_stats", adminHandler.DashboardActivityStats())
adminAuthApiRouter.GET("/dashboard/item_card_sales", adminHandler.DashboardItemCardSales()) adminAuthApiRouter.GET("/dashboard/item_card_sales", adminHandler.DashboardItemCardSales())
adminAuthApiRouter.GET("/welfare-activities", intc.RequireAdminAction("activity:view"), adminHandler.ListWelfareActivities())
adminAuthApiRouter.POST("/welfare-activities", intc.RequireAdminAction("activity:create"), adminHandler.CreateWelfareActivity())
adminAuthApiRouter.GET("/welfare-activities/cost-summary", intc.RequireAdminAction("activity:view"), adminHandler.GetWelfareCostSummary())
adminAuthApiRouter.GET("/welfare-activities/:id", intc.RequireAdminAction("activity:view"), adminHandler.GetWelfareActivity())
adminAuthApiRouter.PUT("/welfare-activities/:id", intc.RequireAdminAction("activity:modify"), adminHandler.UpdateWelfareActivity())
adminAuthApiRouter.DELETE("/welfare-activities/:id", intc.RequireAdminAction("activity:delete"), adminHandler.DeleteWelfareActivity())
adminAuthApiRouter.POST("/welfare-activities/:id/copy", intc.RequireAdminAction("activity:create"), adminHandler.CopyWelfareActivity())
adminAuthApiRouter.GET("/welfare-activities/:id/participants", intc.RequireAdminAction("activity:view"), adminHandler.ListWelfareParticipants())
adminAuthApiRouter.GET("/welfare-activities/:id/winners", intc.RequireAdminAction("activity:view"), adminHandler.ListWelfareWinners())
adminAuthApiRouter.POST("/welfare-activities/:id/draw", intc.RequireAdminAction("activity:modify"), adminHandler.DrawWelfareActivity())
adminAuthApiRouter.GET("/welfare-activities/:id/cost", intc.RequireAdminAction("activity:view"), adminHandler.GetWelfareCost())
adminAuthApiRouter.POST("/activities", intc.RequireAdminAction("activity:create"), adminHandler.CreateActivity()) adminAuthApiRouter.POST("/activities", intc.RequireAdminAction("activity:create"), adminHandler.CreateActivity())
adminAuthApiRouter.GET("/activities", intc.RequireAdminAction("activity:view"), adminHandler.ListActivities()) adminAuthApiRouter.GET("/activities", intc.RequireAdminAction("activity:view"), adminHandler.ListActivities())
adminAuthApiRouter.PUT("/activities/:activity_id", intc.RequireAdminAction("activity:modify"), adminHandler.ModifyActivity()) adminAuthApiRouter.PUT("/activities/:activity_id", intc.RequireAdminAction("activity:modify"), adminHandler.ModifyActivity())
@ -444,6 +455,10 @@ func NewHTTPMux(logger logger.CustomLogger, db mysql.Repo) (core.Mux, func(), er
appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/rewards", activityHandler.ListIssueRewards()) appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/rewards", activityHandler.ListIssueRewards())
appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/draw_logs", activityHandler.ListDrawLogs()) appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/draw_logs", activityHandler.ListDrawLogs())
appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/draw_logs_grouped", activityHandler.ListDrawLogsByLevel()) appPublicApiRouter.GET("/activities/:activity_id/issues/:issue_id/draw_logs_grouped", activityHandler.ListDrawLogsByLevel())
appPublicApiRouter.GET("/welfare-activities", activityHandler.ListWelfareActivities())
appPublicApiRouter.GET("/welfare-activities/:id", activityHandler.GetWelfareActivity())
appPublicApiRouter.GET("/welfare-activities/:id/participants", activityHandler.ListWelfareParticipants())
appPublicApiRouter.GET("/welfare-activities/:id/winners", activityHandler.ListWelfareWinners())
// APP 端轮播图 // APP 端轮播图
appPublicApiRouter.GET("/banners", appapi.NewBanner(logger, db).ListBannersForApp()) appPublicApiRouter.GET("/banners", appapi.NewBanner(logger, db).ListBannersForApp())
@ -511,6 +526,9 @@ func NewHTTPMux(logger logger.CustomLogger, db mysql.Repo) (core.Mux, func(), er
appAuthApiRouter.PUT("/users/:user_id/addresses/:address_id", userHandler.UpdateUserAddress()) appAuthApiRouter.PUT("/users/:user_id/addresses/:address_id", userHandler.UpdateUserAddress())
appAuthApiRouter.DELETE("/users/:user_id/addresses/:address_id", userHandler.DeleteUserAddress()) appAuthApiRouter.DELETE("/users/:user_id/addresses/:address_id", userHandler.DeleteUserAddress())
appAuthApiRouter.GET("/welfare-activities/:id/my", activityHandler.GetWelfareActivity())
appAuthApiRouter.POST("/welfare-activities/:id/join", activityHandler.JoinWelfareActivity())
// 任务中心 APP 端 // 任务中心 APP 端
appAuthApiRouter.GET("/task-center/tasks", taskCenterHandler.ListTasksForApp()) appAuthApiRouter.GET("/task-center/tasks", taskCenterHandler.ListTasksForApp())
appAuthApiRouter.GET("/task-center/tasks/:id/progress/:user_id", taskCenterHandler.GetTaskProgressForApp()) appAuthApiRouter.GET("/task-center/tasks/:id/progress/:user_id", taskCenterHandler.GetTaskProgressForApp())

View File

@ -20,6 +20,7 @@ import (
syscfgsvc "bindbox-game/internal/service/sysconfig" syscfgsvc "bindbox-game/internal/service/sysconfig"
titlesvc "bindbox-game/internal/service/title" titlesvc "bindbox-game/internal/service/title"
usersvc "bindbox-game/internal/service/user" usersvc "bindbox-game/internal/service/user"
welfaresvc "bindbox-game/internal/service/welfare_activity"
"flag" "flag"
@ -99,6 +100,7 @@ func main() {
}() }()
activitysvc.StartScheduledSettlement(customLogger, dbRepo, redis.GetClient()) activitysvc.StartScheduledSettlement(customLogger, dbRepo, redis.GetClient())
welfaresvc.StartScheduledDraw(customLogger, dbRepo)
usersvc.StartExpirationCheck(customLogger, dbRepo) usersvc.StartExpirationCheck(customLogger, dbRepo)
usersvc.StartAutoCancelWorker(customLogger, dbRepo) usersvc.StartAutoCancelWorker(customLogger, dbRepo)