修改领取奖励部分
This commit is contained in:
@ -396,27 +396,56 @@ func (s *sReward) GetLift(ctx context.Context, in *model.GetRewardIn) (out *mode
|
||||
|
||||
// 根据 result判断
|
||||
if item.Result == 1 {
|
||||
// 奖励发放成功,修改状态,扣除数量
|
||||
if _, err = dao.UserTaskRewards.Ctx(ctx).Where(do.UserTaskRewards{ExternalOrderId: item.Water.OrderId}).Update(consts.RewardSuccessStatus); err != nil {
|
||||
return ecode.Fail.Sub("修改奖励领取记录状态异常")
|
||||
//// 奖励发放成功,修改状态,扣除数量
|
||||
|
||||
// 查询当前奖励是否为最后一个, 如果是则更新任务状态为2 完成
|
||||
count, err := dao.UserTaskRewards.Ctx(ctx).Where(do.UserTaskRewards{UserTaskId: in.UserTaskId}).Where(do.UserTaskRewards{Status: 2}).Count()
|
||||
if err != nil {
|
||||
return ecode.Fail.Sub("查询用户任务奖励失败")
|
||||
}
|
||||
|
||||
value, err := dao.UserTaskRewards.Ctx(ctx).Where(do.UserTaskRewards{ExternalOrderId: item.Water.OrderId}).Value(dao.UserTaskRewards.Columns().RewardId)
|
||||
if count <= 1 {
|
||||
// 修改任务记录状态2
|
||||
_, err = dao.UserTasks.Ctx(ctx).Where(do.UserTasks{Id: in.UserTaskId}).Data(do.UserTasks{
|
||||
Status: 2,
|
||||
}).Update()
|
||||
|
||||
if err != nil {
|
||||
return ecode.Fail.Sub("修改用户任务状态失败")
|
||||
}
|
||||
}
|
||||
|
||||
// 增加奖励已领取数量
|
||||
_, err = dao.Rewards.Ctx(ctx).Where(do.Rewards{Id: in.RewardId}).Increment(dao.Rewards.Columns().ReceivedNum, 1)
|
||||
if err != nil {
|
||||
return ecode.Fail.Sub("获取奖励领取记录异常")
|
||||
}
|
||||
if value.IsEmpty() {
|
||||
return ecode.Fail.Sub("获取奖励领取记录异常")
|
||||
}
|
||||
// 扣除数量
|
||||
if _, err = dao.Rewards.Ctx(ctx).Where(do.Rewards{Id: value.Int()}).One(); err != nil {
|
||||
return ecode.Fail.Sub("获取奖励记录异常")
|
||||
|
||||
// 修改用户任务奖励记录状态
|
||||
_, err = dao.UserTaskRewards.Ctx(ctx).Where(do.UserTaskRewards{UserTaskId: in.UserTaskId, RewardId: in.RewardId}).Data(do.UserTaskRewards{
|
||||
Status: consts.RewardSuccessStatus,
|
||||
}).Update()
|
||||
|
||||
if err != nil {
|
||||
return ecode.Fail.Sub("修改用户任务奖励记录状态异常")
|
||||
}
|
||||
|
||||
return
|
||||
} else if item.Result == 2 || item.Result == 3 {
|
||||
// 发放背包成功,修改状态
|
||||
_, err = dao.UserTaskRewards.Ctx(ctx).Data(do.UserTaskRewards{
|
||||
Status: consts.RewardExchangeStatus,
|
||||
}).Where(do.UserTaskRewards{
|
||||
Id: in.UserTaskId,
|
||||
RewardId: in.RewardId,
|
||||
}).Update()
|
||||
|
||||
if err != nil {
|
||||
return ecode.Fail.Sub("修改用户任务奖励记录状态异常")
|
||||
}
|
||||
} else if item.Result == 4 {
|
||||
// 奖励领取失败,不做操作,直接返回
|
||||
return ecode.Fail.Sub("领取奖励失败")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user