修改领取奖励部分

This commit is contained in:
chy
2025-06-27 10:31:40 +08:00
parent 6a3a06574a
commit ae19e9917e
4 changed files with 50 additions and 10 deletions

View File

@ -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("领取奖励失败")
}
}