From 2600c211c29c1bf1797f10ca1a992b0813195cc4 Mon Sep 17 00:00:00 2001 From: chy <2463300564@qq.com> Date: Wed, 9 Jul 2025 18:00:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=BB=E5=8A=A1=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=AE=B0=E5=BD=95=E5=AE=8C=E6=88=90=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/logic/task/task.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/internal/logic/task/task.go b/internal/logic/task/task.go index 4f56c74..02a49d6 100644 --- a/internal/logic/task/task.go +++ b/internal/logic/task/task.go @@ -100,7 +100,7 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki var total int // SELECT `uid`,`nickname` FROM `user` ORDER BY `uid` asc err = m.Page(in.Page, in.Size).LeftJoin(dao.Users.Table(), fmt.Sprintf("`%s`.`id` = `%s`.`user_id`", dao.Users.Table(), dao.UserTasks.Table())). - Fields("username,avatar,count(*) num").Where(dao.UserTasks.Columns().Status, 2).WhereOr(dao.UserTasks.Columns().Status, 3). + Fields("username,avatar,count(*) num").WhereIn(dao.UserTasks.Columns().Status, []int{2, 3}). WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).OrderDesc("num").OrderDesc("username").Group("user_id"). ScanAndCount(&list, &total, false) if err != nil { @@ -113,7 +113,7 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki var loginUserRankingNum model.LoginUserRankingNum if in.OperatorId != 0 { value, err := dao.UserTasks.Ctx(ctx).Fields("count(*) num").Where(dao.UserTasks.Columns().UserId, in.OperatorId).Where(dao.UserTasks.Columns().StoreId, storeId). - Where(dao.UserTasks.Columns().Status, 2).WhereOr(dao.UserTasks.Columns().Status, 3). + WhereIn(dao.UserTasks.Columns().Status, []int{2, 3}). WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).Group("user_id"). Value() @@ -128,8 +128,7 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki } err = dao.UserTasks.Ctx(ctx).LeftJoin(dao.Users.Table(), fmt.Sprintf("`%s`.`id` = `%s`.`user_id`", dao.Users.Table(), dao.UserTasks.Table())). - Fields("username,count(*) num").Where(dao.UserTasks.Columns().StoreId, storeId).Where(dao.UserTasks.Columns().Status, 2). - WhereOr(dao.UserTasks.Columns().Status, 3). + Fields("username,count(*) num").WhereIn(dao.UserTasks.Columns().StoreId, storeId).Where(dao.UserTasks.Columns().Status, []int{2, 3}). WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).OrderDesc("num").OrderDesc("username").Group("user_id"). Scan(&loginUserRanking) @@ -519,6 +518,12 @@ func (s *sTask) GetTaskList(ctx context.Context, in *model.GetTaskListV2In) (out // 存在用户记录,自行判断用户是否完成任务 if v.UserTimes-one["user_times"].Int64() >= v.TargetTimes { completeTime := gtime.Now() + + // 用户任务完成修改任务记录完成时间 + _, err := dao.UserTasks.Ctx(ctx).Where(do.UserTasks{UserId: in.UserId, TaskId: v.TaskID}).Data(do.UserTasks{CompletedAt: completeTime}).Update() + if err != nil { + return nil, ecode.Fail.Sub("修改用户任务完成时间失败") + } userTaskStatus := one["status"].Int64() if userTaskStatus == 1 { if err := dao.UserTasks.Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) {