邹方成 1ab39d2f5a
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 25s
refactor: 重构项目结构并重命名模块
feat(admin): 新增工会管理功能
feat(activity): 添加活动管理相关服务
feat(user): 实现用户道具卡和积分管理
feat(guild): 新增工会成员管理功能

fix: 修复数据库连接配置
fix: 修正jwtoken导入路径
fix: 解决端口冲突问题

style: 统一代码格式和注释风格
style: 更新项目常量命名

docs: 添加项目框架和开发规范文档
docs: 更新接口文档注释

chore: 移除无用代码和文件
chore: 更新Makefile和配置文件
chore: 清理日志文件

test: 添加道具卡测试脚本
2025-11-14 21:10:00 +08:00

113 lines
3.0 KiB
Go

package activity
import (
"context"
"time"
"bindbox-game/internal/pkg/logger"
"bindbox-game/internal/repository/mysql"
"bindbox-game/internal/repository/mysql/dao"
"bindbox-game/internal/repository/mysql/model"
)
type Service interface {
CreateActivity(ctx context.Context, in CreateActivityInput) (*model.Activities, error)
ModifyActivity(ctx context.Context, id int64, in ModifyActivityInput) error
DeleteActivity(ctx context.Context, id int64) error
GetActivity(ctx context.Context, id int64) (*model.Activities, error)
ListActivities(ctx context.Context, in ListActivitiesInput) (items []*model.Activities, total int64, err error)
ListIssues(ctx context.Context, activityID int64, page, pageSize int) (items []*model.ActivityIssues, total int64, err error)
CreateIssue(ctx context.Context, activityID int64, in CreateIssueInput) (*model.ActivityIssues, error)
ModifyIssue(ctx context.Context, issueID int64, in ModifyIssueInput) error
DeleteIssue(ctx context.Context, issueID int64) error
CreateIssueRewards(ctx context.Context, issueID int64, rewards []CreateRewardInput) error
ListIssueRewards(ctx context.Context, issueID int64) (items []*model.ActivityRewardSettings, err error)
ModifyIssueReward(ctx context.Context, rewardID int64, in ModifyRewardInput) error
DeleteIssueReward(ctx context.Context, rewardID int64) error
ListDrawLogs(ctx context.Context, issueID int64, page, pageSize int) (items []*model.ActivityDrawLogs, total int64, err error)
GetCategoryNames(ctx context.Context, ids []int64) (map[int64]string, error)
}
type service struct {
logger logger.CustomLogger
readDB *dao.Query
writeDB *dao.Query
}
func New(l logger.CustomLogger, db mysql.Repo) Service {
return &service{
logger: l,
readDB: dao.Use(db.GetDbR()),
writeDB: dao.Use(db.GetDbW()),
}
}
type CreateActivityInput struct {
Name string
Banner string
ActivityCategoryID int64
Status int32
PriceDraw int64
IsBoss int32
StartTime *time.Time
EndTime *time.Time
}
type ModifyActivityInput struct {
Name string
Banner string
ActivityCategoryID int64
Status int32
PriceDraw int64
IsBoss int32
StartTime *time.Time
EndTime *time.Time
}
type ListActivitiesInput struct {
Name string
CategoryID int64
IsBoss *int32
Status *int32
Page int
PageSize int
}
type CreateIssueInput struct {
IssueNumber string
Status int32
Sort int32
}
type ModifyIssueInput struct {
IssueNumber string
Status int32
Sort int32
}
type CreateRewardInput struct {
ProductID int64
Name string
Weight int32
Quantity int64
OriginalQty int64
Level int32
Sort int32
IsBoss int32
}
type ModifyRewardInput struct {
ProductID *int64
Name string
Weight *int32
Quantity *int64
OriginalQty *int64
Level *int32
Sort *int32
IsBoss *int32
}