调整用户可领奖励列表和 用户任务记录列表接口

This commit is contained in:
2025-06-27 15:34:45 +08:00
parent ba28d0621a
commit f0dbc64eda
11 changed files with 158 additions and 72 deletions

View File

@ -698,25 +698,30 @@ func (s *sReward) CallBack(ctx context.Context, in *model.RewardCallbackIn) (out
}
func (s *sReward) GetUserClaimList(ctx context.Context, in *model.GetUserClaimListIn) (out *model.GetUserClaimListOut, err error) {
// Input validation
if in == nil || in.UserId == 0 || in.TaskId == "" {
return nil, ecode.Params.Sub("用户任务记录不存在")
}
// Initialize result slice
rewards := make([]model.Reward, 0)
var totalCount int
// Query user task record
userTask, err := dao.UserTasks.Ctx(ctx).
Where(do.UserTasks{UserId: in.UserId, TaskId: in.TaskId}).
Fields(dao.UserTasks.Columns().Id).
One()
if err != nil {
return nil, ecode.Fail.Sub("查询用户任务记录异常")
}
if userTask == nil {
return nil, ecode.Params.Sub("用户任务记录不存在")
var userTaskId int64
if in.UserTaskId == 0 {
value, err := dao.UserTasks.Ctx(ctx).
Where(do.UserTasks{UserId: in.UserId, TaskId: in.TaskId}).
Fields(dao.UserTasks.Columns().Id).
Value()
if err != nil {
return nil, ecode.Fail.Sub("查询用户任务失败")
}
if value.IsEmpty() {
return nil, ecode.Fail.Sub("用户任务不存在")
}
userTaskId = value.Int64()
} else {
exist, err := dao.UserTasks.Ctx(ctx).WherePri(in.UserTaskId).Exist()
if err != nil || !exist {
return nil, ecode.Fail.Sub("用户任务不存在")
}
userTaskId = in.UserTaskId
}
// Build base query for rewards
@ -729,7 +734,7 @@ func (s *sReward) GetUserClaimList(ctx context.Context, in *model.GetUserClaimLi
Where(fmt.Sprintf("%s.%s = ?",
dao.UserTaskRewards.Table(),
dao.UserTaskRewards.Columns().UserTaskId),
userTask["id"].Int64()).
userTaskId).
Where(dao.UserTaskRewards.Columns().DeletedAt, nil).
Where(dao.Rewards.Columns().DeletedAt, nil)

View File

@ -411,10 +411,22 @@ func (s *sTask) GetUserTaskRecordsList(ctx context.Context, in *model.UserTaskRe
var total int
orm := dao.UserTasks.Ctx(ctx).Where(dao.UserTasks.Columns().UserId, in.UserId)
if in.StoreId != 0 {
if in.StoreId != 0 && in.NetBarAccount == "" {
orm = orm.Where(dao.UserTasks.Columns().StoreId, in.StoreId)
}
err = orm.Page(in.Page, in.Size).WithAll().ScanAndCount(&list, &total, false)
if in.NetBarAccount != "" && in.StoreId == 0 {
value, err := dao.Stores.Ctx(ctx).Where(do.Stores{NetbarAccount: in.NetBarAccount}).Fields(dao.Stores.Columns().Id).Value()
if err != nil {
return nil, err
}
orm = orm.Where(dao.UserTasks.Columns().StoreId, value.Int())
}
if in.GameId != 0 {
orm = orm.Where(dao.UserTasks.Columns().GameId, in.GameId)
}
err = orm.Page(in.Page, in.Size).ScanAndCount(&list, &total, false)
if err != nil {
return nil, ecode.Fail.Sub("获取用户任务列表失败")
}