From fd64b0fe7afbe2a3a50bdb1ed24387df6659c50a Mon Sep 17 00:00:00 2001 From: chy <2463300564@qq.com> Date: Tue, 8 Jul 2025 13:39:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9PC=E4=BB=BB=E5=8A=A1=E9=A2=86?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/task/v1/task.go | 1 + internal/controller/task/task_v1_get_task.go | 1 + internal/logic/task/task.go | 40 +++++++++++--------- internal/model/userTask.go | 1 + 4 files changed, 25 insertions(+), 18 deletions(-) diff --git a/api/task/v1/task.go b/api/task/v1/task.go index a700f9f..123e852 100644 --- a/api/task/v1/task.go +++ b/api/task/v1/task.go @@ -86,6 +86,7 @@ type GetTaskReq struct { GameId int `json:"gameId" v:"required#游戏唯一id不能为空" dc:"游戏唯一id"` TaskName string `json:"taskName" v:"required#任务名称不能为空" dc:"任务名称"` TaskType int `json:"taskType" v:"required#任务类型不能为空" dc:"任务类型1:每日 3:周期"` + UserTimes int `json:"userTimes" v:"required#完成次数不能为空" dc:"用户完成次数"` } type GetTaskRes struct { diff --git a/internal/controller/task/task_v1_get_task.go b/internal/controller/task/task_v1_get_task.go index 938d6bd..6c74888 100644 --- a/internal/controller/task/task_v1_get_task.go +++ b/internal/controller/task/task_v1_get_task.go @@ -20,6 +20,7 @@ func (c *ControllerV1) GetTask(ctx context.Context, req *v1.GetTaskReq) (res *v1 GameId: req.GameId, TaskName: req.TaskName, TaskType: req.TaskType, + UserTimes: req.UserTimes, }) if err != nil { return nil, err diff --git a/internal/logic/task/task.go b/internal/logic/task/task.go index 47ea715..09009e1 100644 --- a/internal/logic/task/task.go +++ b/internal/logic/task/task.go @@ -8,6 +8,7 @@ import ( "github.com/gogf/gf/v2/os/glog" "github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/util/gconv" + "github.com/gogf/gf/v2/util/guid" "server/internal/consts" "server/internal/dao" "server/internal/model" @@ -389,7 +390,7 @@ func (s *sTask) GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.Ge if err = dao.UserTasks.Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) { // 创建任务记录 - _, err = dao.UserTasks.Ctx(ctx).InsertAndGetId(do.UserTasks{ + id, err := dao.UserTasks.Ctx(ctx).InsertAndGetId(do.UserTasks{ UserId: in.UserId, TaskId: in.TaskId, StoreId: storeId, @@ -398,28 +399,31 @@ func (s *sTask) GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.Ge TaskName: in.TaskName, GameId: in.GameId, TaskType: in.TaskType, + UserTimes: in.UserTimes, }) if err != nil { return ecode.Fail.Sub("创建用户任务记录失败") } - // 查询该任务相关联的奖励, 创建对应奖励下发记录id - //array, err := dao.TaskRewards.Ctx(ctx).LeftJoin(dao.Rewards.Table(), "rewards.id = task_rewards.reward_id").Where(do.TaskRewards{TaskId: in.TaskId}).Fields(dao.TaskRewards.Columns().RewardId).Fields(dao.Rewards.Columns().Name).All() - //if err != nil { - // return ecode.Fail.Sub("获取任务关联奖励列表失败") - //} - //for _, v := range array { - // _, err = dao.UserTaskRewards.Ctx(ctx).Data(do.UserTaskRewards{ - // UserTaskId: id, - // RewardId: v["reward_id"].Int64(), - // RewardName: v["name"].String(), - // Status: consts.RewardInitStatus, - // InnerOrderId: fmt.Sprintf("reward%s", guid.S()), - // }).Insert() - // if err != nil { - // return ecode.Fail.Sub("创建用户任务奖励记录失败") - // } - //} + //查询该任务相关联的奖励, 创建对应奖励下发记录id + array, err := dao.TaskRewards.Ctx(ctx).LeftJoin(dao.Rewards.Table(), "rewards.id = task_rewards.reward_id").Where(do.TaskRewards{TaskId: in.TaskId}). + Fields(dao.TaskRewards.Columns().RewardId).Fields(dao.Rewards.Columns().Name).All() + if err != nil { + return ecode.Fail.Sub("获取任务关联奖励列表失败") + } + for _, v := range array { + _, err = dao.UserTaskRewards.Ctx(ctx).Data(do.UserTaskRewards{ + UserTaskId: id, + RewardId: v["reward_id"].Int64(), + RewardName: v["name"].String(), + Status: consts.RewardInitStatus, + InnerOrderId: fmt.Sprintf("reward%s", guid.S()), + IssueQuantity: 1, + }).Insert() + if err != nil { + return ecode.Fail.Sub("创建用户任务奖励记录失败") + } + } return }); err != nil { return nil, err diff --git a/internal/model/userTask.go b/internal/model/userTask.go index 819eaeb..24fbc02 100644 --- a/internal/model/userTask.go +++ b/internal/model/userTask.go @@ -122,6 +122,7 @@ type GetTaskIn struct { TaskName string `json:"taskName"` GameId int `json:"gid"` TaskType int `json:"taskType"` + UserTimes int `json:"userTimes"` } type GetTaskOut struct {