Zuncle e2364f3831 feat(activity): 新增独立奖品发放活动模块
新增独立奖品发放活动的后端表结构、服务、管理端接口与小程序领取接口,支持待领取查询、批量加入已处理、删除记录与成本汇总。
2026-05-07 22:09:22 +08:00

80 lines
2.9 KiB
Go
Executable File

package admin
import (
"bindbox-game/internal/pkg/logger"
"bindbox-game/internal/repository/mysql"
"bindbox-game/internal/repository/mysql/dao"
activitysvc "bindbox-game/internal/service/activity"
adminsvc "bindbox-game/internal/service/admin"
bannersvc "bindbox-game/internal/service/banner"
channelsvc "bindbox-game/internal/service/channel"
douyinsvc "bindbox-game/internal/service/douyin"
financesvc "bindbox-game/internal/service/finance"
gamesvc "bindbox-game/internal/service/game"
livestreamsvc "bindbox-game/internal/service/livestream"
productsvc "bindbox-game/internal/service/product"
prizegrantsvc "bindbox-game/internal/service/prize_grant_activity"
snapshotsvc "bindbox-game/internal/service/snapshot"
synthesissvc "bindbox-game/internal/service/synthesis"
syscfgsvc "bindbox-game/internal/service/sysconfig"
titlesvc "bindbox-game/internal/service/title"
usersvc "bindbox-game/internal/service/user"
welfaresvc "bindbox-game/internal/service/welfare_activity"
"github.com/redis/go-redis/v9"
)
type handler struct {
logger logger.CustomLogger
writeDB *dao.Query
readDB *dao.Query
repo mysql.Repo
svc adminsvc.Service
activity activitysvc.Service
product productsvc.Service
userSvc usersvc.Service
banner bannersvc.Service
channel channelsvc.Service
title titlesvc.Service
syscfg syscfgsvc.Service
snapshotSvc snapshotsvc.Service
rollbackSvc snapshotsvc.RollbackService
douyinSvc douyinsvc.Service
livestream livestreamsvc.Service
synthesis synthesissvc.Service
financeSvc financesvc.Service // P&L service (read-only)
welfare welfaresvc.Service
prizeGrant prizegrantsvc.Service
}
func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client) *handler {
userSvc := usersvc.New(logger, db)
snapshotSvc := snapshotsvc.NewService(db)
rollbackSvc := snapshotsvc.NewRollbackService(db, snapshotSvc)
syscfgSvc := syscfgsvc.New(logger, db)
ticketSvc := gamesvc.NewTicketService(logger, db) // 游戏资格服务
titleSvc := titlesvc.New(logger, db) // 称号服务
return &handler{
logger: logger,
writeDB: dao.Use(db.GetDbW()),
readDB: dao.Use(db.GetDbR()),
repo: db,
svc: adminsvc.New(logger, db),
activity: activitysvc.New(logger, db, userSvc, rdb),
product: productsvc.New(logger, db),
userSvc: userSvc,
banner: bannersvc.New(logger, db),
channel: channelsvc.New(logger, db),
title: titleSvc,
syscfg: syscfgSvc,
snapshotSvc: snapshotSvc,
rollbackSvc: rollbackSvc,
douyinSvc: douyinsvc.New(logger, db, syscfgSvc, ticketSvc, userSvc, titleSvc),
livestream: livestreamsvc.New(logger, db, ticketSvc),
synthesis: synthesissvc.New(db),
financeSvc: financesvc.New(logger, db),
welfare: welfaresvc.New(logger, db),
prizeGrant: prizegrantsvc.New(logger, db),
}
}