Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
- 新增系统称号模板与效果配置表及相关CRUD接口 - 实现用户称号分配与抽奖效果应用逻辑 - 优化抽奖接口支持用户ID参数以应用称号效果 - 新增称号管理前端页面与分配功能 - 修复Windows时区错误与JSON字段初始化问题 - 移除无用管理接口代码并更新文档说明
156 lines
4.2 KiB
Go
156 lines
4.2 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)
|
|
|
|
CommitIssueRandom(ctx context.Context, issueID int64) (*IssueRandomCommitment, error)
|
|
GetIssueRandomCommit(ctx context.Context, issueID int64) (*IssueRandomCommitment, error)
|
|
GetIssueRandomCommitHistory(ctx context.Context, issueID int64) ([]*IssueRandomCommitment, error)
|
|
|
|
ExecuteDraw(ctx context.Context, issueID int64) (*Receipt, error)
|
|
ExecuteDrawWithEffects(ctx context.Context, issueID int64, userID int64) (*Receipt, error)
|
|
|
|
GetCategoryNames(ctx context.Context, ids []int64) (map[int64]string, error)
|
|
}
|
|
|
|
type IssueRandomCommitment struct {
|
|
AlgoVersion string
|
|
IssueID int64
|
|
ServerSeedMaster []byte
|
|
ServerSeedHash []byte
|
|
ItemsRoot []byte
|
|
WeightsTotal int64
|
|
StateVersion int32
|
|
}
|
|
|
|
type Receipt struct {
|
|
AlgoVersion string
|
|
RoundId int64
|
|
DrawId int64
|
|
ClientId int64
|
|
Timestamp int64
|
|
ServerSeedHash []byte
|
|
ServerSubSeed []byte
|
|
ClientSeed []byte
|
|
Nonce uint64
|
|
Items []ReceiptItem
|
|
ItemsRoot []byte
|
|
WeightsTotal uint64
|
|
SelectedIndex int
|
|
SelectedItemId int64
|
|
RandProof []byte
|
|
Signature []byte
|
|
}
|
|
|
|
type ReceiptItem struct {
|
|
ID int64
|
|
Name string
|
|
Weight int32
|
|
QuantityBefore int64
|
|
}
|
|
|
|
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
|
|
}
|