diff --git a/api/admin/v1/admin.go b/api/admin/v1/admin.go index 4948b5a..42519ad 100644 --- a/api/admin/v1/admin.go +++ b/api/admin/v1/admin.go @@ -3,7 +3,7 @@ package v1 import "github.com/gogf/gf/v2/frame/g" type AdminInfoReq struct { - g.Meta `path:"/admin/info" method:"get" tags:"Admin" summary:"(系统后台)获取管理员信息"` + g.Meta `path:"/admin/info" method:"get" tags:"Backend/Admin" summary:"(系统后台)获取管理员信息"` } type AdminInfoRes struct { g.Meta `mime:"application/json"` diff --git a/api/auth/v1/auth.go b/api/auth/v1/auth.go index 5c7244a..5ef2040 100644 --- a/api/auth/v1/auth.go +++ b/api/auth/v1/auth.go @@ -3,7 +3,7 @@ package v1 import "github.com/gogf/gf/v2/frame/g" type AdminLoginReq struct { - g.Meta `path:"/admin/login" method:"post" tags:"Admin" summary:"(系统后台)管理员登录"` + g.Meta `path:"/admin/login" method:"post" tags:"Backend/Admin" summary:"(系统后台)管理员登录"` Username string `json:"username" v:"required" dc:"用户名"` Password string `json:"password" v:"required" dc:"密码"` } @@ -14,7 +14,7 @@ type AdminLoginRes struct { } type MerchantLoginReq struct { - g.Meta `path:"/merchant/login" method:"post" tags:"Merchant" summary:"(商户门店后台)商户登录"` + g.Meta `path:"/merchant/login" method:"post" tags:"Backend/Merchant" summary:"(商户门店后台)商户登录"` Username string `json:"username" dc:"用户名"` Phone string `json:"phone" v:"regex:^1[3-9]\\d{9}$" dc:"手机号"` Code string `json:"code" dc:"验证码"` diff --git a/internal/controller/task/task_v1_get_login_task_list.go b/internal/controller/task/task_v1_get_login_task_list.go index ffbf13c..da19186 100644 --- a/internal/controller/task/task_v1_get_login_task_list.go +++ b/internal/controller/task/task_v1_get_login_task_list.go @@ -2,6 +2,7 @@ package task import ( "context" + "github.com/gogf/gf/v2/frame/g" "server/internal/model" "server/internal/service" @@ -9,6 +10,7 @@ import ( ) func (c *ControllerV1) GetLoginTaskList(ctx context.Context, req *v1.GetLoginTaskListReq) (res *v1.GetLoginTaskListRes, err error) { + userId := g.RequestFromCtx(ctx).Get("id") out, err := service.Task().GetLoginTaskList(ctx, &model.GetTaskListIn{ Gid: req.Gid, NetBarAccount: req.NetBarAccount, @@ -16,6 +18,7 @@ func (c *ControllerV1) GetLoginTaskList(ctx context.Context, req *v1.GetLoginTas Num: req.Num, Pageidx: req.Pageidx, BindType: req.BindType, + UserId: userId.Int64(), }) if err != nil { diff --git a/internal/logic/reward/reward.go b/internal/logic/reward/reward.go index 0620548..170ec13 100644 --- a/internal/logic/reward/reward.go +++ b/internal/logic/reward/reward.go @@ -429,8 +429,6 @@ func (s *sReward) GetLift(ctx context.Context, in *model.GetRewardIn) (out *mode if err != nil { return ecode.Fail.Sub("修改用户任务奖励记录状态异常") } - - return } else if item.Result == 2 || item.Result == 3 { // 发放背包成功,修改状态 _, err = dao.UserTaskRewards.Ctx(ctx).Data(do.UserTaskRewards{ diff --git a/internal/logic/task/task.go b/internal/logic/task/task.go index a703d34..8167b71 100644 --- a/internal/logic/task/task.go +++ b/internal/logic/task/task.go @@ -229,7 +229,7 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) ( QqNetbarTargetTime: task.TargetTimes, StartTime: task.CycleStart, EndTime: task.CycleEnd, - Status: task.Status, + //Status: task.Status, } data.UserTaskResult.Usertimes = task.UserTimes // 组装门店奖励数据 @@ -252,7 +252,33 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) ( if err != nil { return nil, err } + + // 任务状态=1或者2不做操作,其他查询门店奖励是否全部领取 + if task.Status != 1 && task.Status != 2 { + count, err := dao.UserTasks.Ctx(ctx).Where(dao.UserTasks.Columns().TaskId, task.TaskID).Where(dao.UserTasks.Columns().UserId, in.UserId).LeftJoin(dao.UserTaskRewards.Table(), + fmt.Sprintf("%s.user_tasks_id = %s.id", dao.UserTaskRewards.Table(), dao.UserTasks.Table())).LeftJoin(dao.Rewards.Table(), fmt.Sprintf("%s.id = %s.reward_id", + dao.Rewards.Table(), dao.UserTaskRewards.Table())).Where(dao.Rewards.Columns().Source, 2).Where(dao.UserTaskRewards.Columns().Status, 2).Count() + if err != nil { + return nil, ecode.Fail.Sub("查询用户门店任务奖励失败") + } + + if count > 0 { + data.Status = 2 + } else { + data.Status = 3 + } + } else { + data.Status = task.Status + } tasks = append(tasks, data) + + // 根据用户完成次数和任务指标次数判任务是否完成,修改任务记录状态为 3 + if int(task.UserTimes) >= task.TargetTimes { + _, err := dao.UserTasks.Ctx(ctx).Where(do.UserTasks{TaskId: task.TaskID}).Where(do.UserTasks{UserId: in.UserId}).Data(do.UserTasks{Status: 3}).Update() + if err != nil { + return nil, ecode.Fail.Sub("更新用户任务记录状态异常") + } + } } return &model.GetTaskListOut{ diff --git a/internal/model/task.go b/internal/model/task.go index 86a3148..ee9f394 100644 --- a/internal/model/task.go +++ b/internal/model/task.go @@ -39,6 +39,7 @@ type GetTaskListIn struct { BrandId string `json:"brand_id"` // 品牌id(可选) PopenId string `json:"POpenId"` BindType int `json:"bindType"` // 1:QQ 2:微信 + UserId int64 `json:"user_id"` } type GetNonLoginTaskListOut struct {