修改任务列表完成任务修改任务记录完成时间
This commit is contained in:
@ -100,7 +100,7 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki
|
|||||||
var total int
|
var total int
|
||||||
// SELECT `uid`,`nickname` FROM `user` ORDER BY `uid` asc
|
// 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())).
|
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").
|
WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).OrderDesc("num").OrderDesc("username").Group("user_id").
|
||||||
ScanAndCount(&list, &total, false)
|
ScanAndCount(&list, &total, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -113,7 +113,7 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki
|
|||||||
var loginUserRankingNum model.LoginUserRankingNum
|
var loginUserRankingNum model.LoginUserRankingNum
|
||||||
if in.OperatorId != 0 {
|
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).
|
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").
|
WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).Group("user_id").
|
||||||
Value()
|
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())).
|
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).
|
Fields("username,count(*) num").WhereIn(dao.UserTasks.Columns().StoreId, storeId).Where(dao.UserTasks.Columns().Status, []int{2, 3}).
|
||||||
WhereOr(dao.UserTasks.Columns().Status, 3).
|
|
||||||
WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).OrderDesc("num").OrderDesc("username").Group("user_id").
|
WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).OrderDesc("num").OrderDesc("username").Group("user_id").
|
||||||
Scan(&loginUserRanking)
|
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 {
|
if v.UserTimes-one["user_times"].Int64() >= v.TargetTimes {
|
||||||
completeTime := gtime.Now()
|
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()
|
userTaskStatus := one["status"].Int64()
|
||||||
if userTaskStatus == 1 {
|
if userTaskStatus == 1 {
|
||||||
if err := dao.UserTasks.Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) {
|
if err := dao.UserTasks.Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user