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) {