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

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

@ -11,7 +11,7 @@ import (
func (c *ControllerV1) GetUserRewardsCanClaimList(ctx context.Context, req *v1.GetUserRewardsCanClaimListReq) (res *v1.GetUserRewardsCanClaimListRes, err error) {
userId := g.RequestFromCtx(ctx).GetCtxVar("id").Int64()
out, err := service.Reward().GetUserClaimList(ctx, &model.GetUserClaimListIn{NetbarAccount: req.NetbarAccount, StoreId: req.StoreId, TaskId: req.TaskId, UserId: userId})
out, err := service.Reward().GetUserClaimList(ctx, &model.GetUserClaimListIn{NetbarAccount: req.NetbarAccount, StoreId: req.StoreId, TaskId: req.TaskId, UserId: userId, UserTaskId: req.UserTaskId})
if err != nil {
return nil, err
}

View File

@ -12,7 +12,7 @@ import (
func (c *ControllerV1) GetUserTaskRecordsList(ctx context.Context, req *v1.GetUserTaskRecordsListReq) (res *v1.GetUserTaskRecordsListRes, err error) {
fromCtx := g.RequestFromCtx(ctx)
userId := fromCtx.GetCtxVar("id").Int()
out, err := service.Task().GetUserTaskRecordsList(ctx, &model.UserTaskRecordsListIn{UserId: userId})
out, err := service.Task().GetUserTaskRecordsList(ctx, &model.UserTaskRecordsListIn{UserId: userId, StoreId: req.StoreId, Page: req.Page, Size: req.Size, TimeType: req.TimeType, RewardTypeId: req.RewardTypeId, GameId: req.GameId, NetBarAccount: req.NetbarAccount})
if err != nil {
return nil, err
}

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("获取用户任务列表失败")
}

View File

@ -32,19 +32,19 @@ type TaskReward struct {
}
type UserTask2 struct {
Id int64 `json:"id" orm:"id" description:"用户任务唯一标识符"` // 用户任务唯一标识符
UserId int64 `json:"userId" orm:"user_id" description:"用户ID"` // 用户ID
TaskId string `json:"taskId" orm:"task_id" description:"腾讯任务ID"` // 腾讯任务ID
Status int `json:"status" orm:"status" description:"任务状态1=进行中2=已完成中3=未完成"` // 任务状态1=进行中(显示领取按钮)2=已完成
SerialNumber string `json:"serialNumber" orm:"serial_number" description:"流水号,确保用户任务唯一性"` // 流水号,确保用户任务唯一性
CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` // 创建时间
UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` // 更新时间
CompletedAt *gtime.Time `json:"completedAt" orm:"completed_at" description:"任务完成时间"` // 任务完成时间
DeletedAt *gtime.Time `json:"deletedAt" orm:"deleted_at" description:"软删除时间戳"` // 软删除时间戳
StoreId int64 `json:"storeId" orm:"store_id" description:"门店 id"` // 门店 id
TaskName string `json:"taskName" orm:"task_name" description:"任务名称"` // 任务名称
GameId int64 `json:"gameId" orm:"game_id" description:"游戏 id"` // 游戏 id
TaskRewards []TaskReward `json:"taskRewards" orm:"with:task_id=task_id"`
Id int64 `json:"id" orm:"id" description:"用户任务唯一标识符"` // 用户任务唯一标识符
UserId int64 `json:"userId" orm:"user_id" description:"用户ID"` // 用户ID
TaskId string `json:"taskId" orm:"task_id" description:"腾讯任务ID"` // 腾讯任务ID
Status int `json:"status" orm:"status" description:"任务状态1=进行中2=已完成中3=未完成"` // 任务状态1=进行中(显示领取按钮)2=已完成
SerialNumber string `json:"serialNumber" orm:"serial_number" description:"流水号,确保用户任务唯一性"` // 流水号,确保用户任务唯一性
CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` // 创建时间
UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` // 更新时间
CompletedAt *gtime.Time `json:"completedAt" orm:"completed_at" description:"任务完成时间"` // 任务完成时间
DeletedAt *gtime.Time `json:"deletedAt" orm:"deleted_at" description:"软删除时间戳"` // 软删除时间戳
StoreId int64 `json:"storeId" orm:"store_id" description:"门店 id"` // 门店 id
TaskName string `json:"taskName" orm:"task_name" description:"任务名称"` // 任务名称
GameId int64 `json:"gameId" orm:"game_id" description:"游戏 id"` // 游戏 id
//TaskRewards []TaskReward `json:"taskRewards" orm:"with:task_id=task_id"`
}
// UserTaskRankingIn 任务排行榜入参
@ -100,6 +100,9 @@ type UserTaskRecordsListIn struct {
Size int
StoreId int
NetBarAccount string
RewardTypeId int
TimeType int
GameId int
}
type UserTaskRecordsListOut struct {

View File

@ -4,6 +4,7 @@ import "github.com/gogf/gf/v2/os/gtime"
type GetUserClaimListIn struct {
UserId int64
UserTaskId int64
TaskId string
NetbarAccount string
StoreId int64

View File

@ -4,7 +4,7 @@ import (
_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
_ "github.com/gogf/gf/contrib/nosql/redis/v2"
_ "server/utility/gamelife"
//_ "server/utility/mqtt/emqx"
_ "server/utility/mqtt/emqx"
_ "server/utility/myCasbin"
_ "server/utility/oss/aliyun"
_ "server/utility/rsa"