解决门店任务排行榜 bug

This commit is contained in:
chy
2025-07-08 20:39:56 +08:00
parent 081881ab4a
commit 0847d930c1

View File

@ -80,9 +80,10 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki
if in.Size == 0 { if in.Size == 0 {
in.Size = 10 in.Size = 10
} }
var storeId int
if in.StoreId > 0 { if in.StoreId > 0 {
m = m.Where(dao.UserTasks.Columns().StoreId, in.StoreId) m = m.Where(dao.UserTasks.Columns().StoreId, in.StoreId)
storeId = in.StoreId
} else if in.NetBarAccount != "" && in.StoreId <= 0 { } else if in.NetBarAccount != "" && in.StoreId <= 0 {
value, err := dao.Stores.Ctx(ctx).Where(dao.Stores.Columns().NetbarAccount, in.NetBarAccount).Fields(dao.Stores.Columns().Id).Value() value, err := dao.Stores.Ctx(ctx).Where(dao.Stores.Columns().NetbarAccount, in.NetBarAccount).Fields(dao.Stores.Columns().Id).Value()
if err != nil { if err != nil {
@ -91,9 +92,8 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki
if value.IsEmpty() { if value.IsEmpty() {
return nil, ecode.Fail.Sub("门店不存在") return nil, ecode.Fail.Sub("门店不存在")
} }
storeId = value.Int()
m = m.Where(dao.UserTasks.Columns().StoreId, value.Int()) m = m.Where(dao.UserTasks.Columns().StoreId, storeId)
} }
list := make([]model.UserTaskRankingArgs, 0) list := make([]model.UserTaskRankingArgs, 0)
@ -112,7 +112,7 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki
var loginUserRanking []model.LoginUserRanking var loginUserRanking []model.LoginUserRanking
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, in.StoreId).Where(dao.UserTasks.Columns().Status, 2). 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).
WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).Group("user_id"). WhereBetween(dao.UserTasks.Columns().CompletedAt, start, end).Group("user_id").
Value() Value()
@ -127,7 +127,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, in.StoreId).Where(dao.UserTasks.Columns().Status, 2). Fields("username,count(*) num").Where(dao.UserTasks.Columns().StoreId, storeId).Where(dao.UserTasks.Columns().Status, 2).
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)