调整奖励领取接口

This commit is contained in:
chy
2025-07-10 21:02:56 +08:00
parent 49fd919fe1
commit 4ae70786d3
3 changed files with 62 additions and 13 deletions

View File

@ -605,9 +605,40 @@ func (s *sReward) GetLift(ctx context.Context, in *model.GetRewardIn) (out *mode
glog.Info(ctx, "调用 tencent开始")
activity, err2 := gamelife.GetGamelifeClient(ctx).RequestActivity(ctx, &model.QQNetbarActivityIn{PopenId: in.PopenId, ServiceName: consts.GetGift, GiftParam: giftParam})
//if err2 != nil {
if err2 != nil && err2.Error() == "奖励领取超出限制,-1" {
// 修改奖励领取状态为5
_, err2 = dao.UserTaskRewards.Ctx(ctx).Where(do.UserTaskRewards{Id: in.Id}).Data(do.UserTaskRewards{
Status: consts.RewardFailedStatus,
}).Update()
if err2 != nil {
return nil, ecode.Fail.Sub("修改用奖励领取状态失败")
}
// 判断奖励是否领完,修改用户任务记录为 2
exist, err2 := dao.UserTaskRewards.Ctx(ctx).Where(do.UserTaskRewards{UserTaskId: in.UserTaskId}).WhereIn(dao.UserTaskRewards.Columns().Status, []int{2, 3}).Exist()
if err2 != nil {
return nil, ecode.Fail.Sub("查询用户任务奖励失败")
}
if !exist {
// 修改用户任务记录为 2
_, err2 = dao.UserTasks.Ctx(ctx).Where(do.UserTasks{Id: in.UserTaskId}).Data(do.UserTasks{
Status: 2,
}).Update()
if err2 != nil {
return nil, ecode.Fail.Sub("修改用户任务状态失败")
}
}
return nil, ecode.RewardExceedLimited
} else if err2 != nil {
return nil, err2
}
//return nil, err2
//}
glog.Info(ctx, "调用 tencent结束")
fmt.Print(activity)

View File

@ -13,4 +13,5 @@ var (
Auth = New(1000, "账户名或密码不正确")
Password = New(1001, "密码不正确")
EmailExist = New(1002, "该邮箱已被注册")
RewardExceedLimited = New(-1, "奖励领取数量超出限制")
)

View File

@ -3,6 +3,7 @@ package gamelife
import (
"context"
"encoding/json"
"errors"
"fmt"
"net/url"
"server/internal/dao"
@ -423,6 +424,22 @@ func (s *gamelifeClient) RequestActivity(ctx context.Context, in *model.QQNetbar
if err != nil || resp.IsError() {
return nil, ecode.Fail.Sub("请求出现异常")
}
// 判断是否为 -1 的异常
type RespData struct {
Ret int `json:"ret"`
ErrMsg string `json:"err_msg"`
ErrDesc string `json:"err_desc"`
}
var respData RespData
if err = json.Unmarshal(resp.Body(), &respData); err != nil {
return nil, ecode.Fail.Sub("解析请求结果失败")
}
if respData.Ret == -1 {
glog.Info(ctx, "奖励领取超出限制,-1")
return nil, errors.New("奖励领取超出限制,-1")
}
if result == nil {
return nil, ecode.Fail.Sub("请求结果为空")
}