新增游戏人生领取奖励相关接口
This commit is contained in:
@ -16,4 +16,8 @@ type IRewardV1 interface {
|
|||||||
Update(ctx context.Context, req *v1.UpdateReq) (res *v1.UpdateRes, err error)
|
Update(ctx context.Context, req *v1.UpdateReq) (res *v1.UpdateRes, err error)
|
||||||
Delete(ctx context.Context, req *v1.DeleteReq) (res *v1.DeleteRes, err error)
|
Delete(ctx context.Context, req *v1.DeleteReq) (res *v1.DeleteRes, err error)
|
||||||
Callback(ctx context.Context, req *v1.CallbackReq) (res *v1.CallbackRes, err error)
|
Callback(ctx context.Context, req *v1.CallbackReq) (res *v1.CallbackRes, err error)
|
||||||
|
GetLift(ctx context.Context, req *v1.GetLiftReq) (res *v1.GetLiftRes, err error)
|
||||||
|
GetGoodsList(ctx context.Context, req *v1.GetGoodsListReq) (res *v1.GetGoodsListRes, err error)
|
||||||
|
GetGoods(ctx context.Context, req *v1.GetGoodsReq) (res *v1.GetGoodsRes, err error)
|
||||||
|
GetGoodsDetails(ctx context.Context, req *v1.GetGoodsDetailsReq) (res *v1.GetGoodsDetailsRes, err error)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,8 +56,74 @@ type DeleteRes struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type CallbackReq struct {
|
type CallbackReq struct {
|
||||||
g.Meta `path:"/reward/callback" method:"post" tags:"Reward" summary:"(tencent)回调"`
|
g.Meta `path:"/reward/callback" method:"post" tags:"Reward" summary:"(tencent)回调"`
|
||||||
UserId int64 `json:"userId" v:"required#用户ID不能为空" dc:"用户ID"`
|
TaskId int64 `json:"taskId" v:"required#任务id不能为空" dc:"任务Id"`
|
||||||
|
AreaId int64 `json:"areaId" dc:"大区Id"`
|
||||||
|
GameId int64 `json:"gid" v:"required#游戏id不能为空" dc:"游戏Id"`
|
||||||
|
RoleIdx string `json:"roleIdx" dc:"角色索引"`
|
||||||
|
RewradType []int64 `json:"rewardType" v:"required#奖励类型不能为空" dc:"奖励类型"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CallbackRes struct {
|
type CallbackRes struct {
|
||||||
|
List interface{} `json:"list" dc:"物品列表"`
|
||||||
|
Result int64 `json:"result" dc:"1-奖励发放成功,2-奖励兑换失败(礼包发放背包环节成功,需要重新引导领奖)3-针对只需要发背包,然后引导用户到人生应用背包领奖的奖励类型,发奖成功了,4-water错误(一般是orderid),不做兑换操作"`
|
||||||
|
Water *Water `json:"water" dc:"礼包列表"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetLiftReq struct {
|
||||||
|
g.Meta `path:"/reward/getLift" method:"post" tags:"Reward" summary:"(tencent)回调"`
|
||||||
|
TaskId int64 `json:"taskId" v:"required#任务id不能为空" dc:"任务Id"`
|
||||||
|
AreaId int64 `json:"areaId" dc:"大区Id"`
|
||||||
|
GameId int64 `json:"gid" v:"required#游戏id不能为空" dc:"游戏Id"`
|
||||||
|
RoleIdx string `json:"roleIdx" dc:"角色索引"`
|
||||||
|
RewradType []int64 `json:"rewardType" v:"required#奖励类型不能为空" dc:"奖励类型"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetLiftRes struct {
|
||||||
|
List interface{} `json:"list" dc:"物品列表"`
|
||||||
|
Result int64 `json:"result" dc:"1-奖励发放成功,2-奖励兑换失败(礼包发放背包环节成功,需要重新引导领奖)3-针对只需要发背包,然后引导用户到人生应用背包领奖的奖励类型,发奖成功了,4-water错误(一般是orderid),不做兑换操作"`
|
||||||
|
Water *Water `json:"water" dc:"礼包列表"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Water struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGoodsListReq struct {
|
||||||
|
g.Meta `path:"/reward/goods" method:"get" tags:"Reward" summary:"(tencent)获取物品列表"`
|
||||||
|
Appfilter string `json:"appfilter" dc:"按照gid过滤游戏"`
|
||||||
|
BigTime int64 `json:"bigTime" v:"required#大时间不能为空" dc:"大时间:如果要控制时间范围,大的时间传这里"`
|
||||||
|
Pageidx string `json:"pageidx" dc:"分页索引"`
|
||||||
|
Num int64 `json:"num" v:"required#数量不能为空" dc:"数量"`
|
||||||
|
OrderType string `json:"orderType" dc:"winningtime:根据获取时间排序 overduetime:根据过期时间排序"`
|
||||||
|
OrderbyDesc int64 `json:"orderbDesc" dc:"1:降序 2:升序"`
|
||||||
|
Goodsstatus int64 `json:"Goodsstatus" dc:"查询的物品状态:0:查所有 2是已发放(成功和失败),4是未发放且未过期,6是未发放且已过期"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGoodsListRes struct {
|
||||||
|
List interface{} `json:"list" dc:"物品列表"`
|
||||||
|
Pageidx string `json:"pageidx" dc:"分页索引"`
|
||||||
|
Total int64 `json:"total" dc:"总数"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGoodsReq struct {
|
||||||
|
g.Meta `path:"/reward/getGoods" method:"post" tags:"Reward" summary:"物品兑换"`
|
||||||
|
Water Water `json:"water" v:"required#物品流水,从背包列表获取的water透传回来(water类型参考GetGift接口的water结构)" dc:"礼包列表"`
|
||||||
|
AreaId int64 `json:"areaId" dc:"大区Id"`
|
||||||
|
GameId int64 `json:"gid" v:"required#游戏id不能为空" dc:"游戏Id"`
|
||||||
|
RoleIdx string `json:"roleIdx" dc:"角色索引"`
|
||||||
|
}
|
||||||
|
type GetGoodsRes struct {
|
||||||
|
Water Water `json:"water" dc:"用户领取物品流水记录"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGoodsDetailsReq struct {
|
||||||
|
g.Meta `path:"/reward/goodsDetails" method:"post" tags:"Reward" summary:"物品详情"`
|
||||||
|
Winningtime int64 `json:"winningtime" dc:"用户领取礼包时间"`
|
||||||
|
Orderid string `json:"orderid" v:"required#流水订单id不能为空" dc:"用户领取流水订单id"`
|
||||||
|
IsActinfo int64 `json:"IsActinfo" dc:"是否需要活动相关信息 0:默认需要 1:不需要"`
|
||||||
|
IsDocument int64 `json:"isDocument" dc:"是否需要文案信息,使用限制信息、代金券图片、使用方式 0:默认需要 1:不需要"`
|
||||||
|
IsDetail int64 `json:"isDetail" dc:"是否需要物品详情 0:默认需要 1:不需要"`
|
||||||
|
}
|
||||||
|
type GetGoodsDetailsRes struct {
|
||||||
|
Water *Water `json:"water" dc:"流水信息"`
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,13 +2,10 @@ package reward
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/gogf/gf/v2/errors/gcode"
|
|
||||||
"github.com/gogf/gf/v2/errors/gerror"
|
|
||||||
|
|
||||||
"server/api/reward/v1"
|
"server/api/reward/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *ControllerV1) Callback(ctx context.Context, req *v1.CallbackReq) (res *v1.CallbackRes, err error) {
|
func (c *ControllerV1) Callback(ctx context.Context, req *v1.CallbackReq) (res *v1.CallbackRes, err error) {
|
||||||
return nil, gerror.NewCode(gcode.CodeNotImplemented)
|
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
14
internal/controller/reward/reward_v1_get_goods.go
Normal file
14
internal/controller/reward/reward_v1_get_goods.go
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package reward
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/gogf/gf/v2/errors/gcode"
|
||||||
|
"github.com/gogf/gf/v2/errors/gerror"
|
||||||
|
|
||||||
|
"server/api/reward/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (c *ControllerV1) GetGoods(ctx context.Context, req *v1.GetGoodsReq) (res *v1.GetGoodsRes, err error) {
|
||||||
|
return nil, gerror.NewCode(gcode.CodeNotImplemented)
|
||||||
|
}
|
||||||
26
internal/controller/reward/reward_v1_get_goods_details.go
Normal file
26
internal/controller/reward/reward_v1_get_goods_details.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package reward
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"server/internal/model"
|
||||||
|
"server/internal/service"
|
||||||
|
|
||||||
|
"server/api/reward/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (c *ControllerV1) GetGoodsDetails(ctx context.Context, req *v1.GetGoodsDetailsReq) (res *v1.GetGoodsDetailsRes, err error) {
|
||||||
|
|
||||||
|
_, err = service.Reward().GetGoodsDetails(ctx, &model.QueryUserGoodsDetailParam{
|
||||||
|
WinningTime: req.Winningtime,
|
||||||
|
OrderId: req.Orderid,
|
||||||
|
IsActInfo: req.IsActinfo,
|
||||||
|
IsDetail: req.IsDetail,
|
||||||
|
IsDocument: req.IsDocument,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &v1.GetGoodsDetailsRes{Water: nil}, nil
|
||||||
|
}
|
||||||
30
internal/controller/reward/reward_v1_get_goods_list.go
Normal file
30
internal/controller/reward/reward_v1_get_goods_list.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package reward
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"server/internal/model"
|
||||||
|
"server/internal/service"
|
||||||
|
|
||||||
|
"server/api/reward/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (c *ControllerV1) GetGoodsList(ctx context.Context, req *v1.GetGoodsListReq) (res *v1.GetGoodsListRes, err error) {
|
||||||
|
out, err := service.Reward().GetGoodsList(ctx, &model.GetGoodsListIn{
|
||||||
|
Appfilter: req.Appfilter,
|
||||||
|
BigTime: req.BigTime,
|
||||||
|
Goodsstatus: req.Goodsstatus,
|
||||||
|
Num: req.Num,
|
||||||
|
OrderType: req.OrderType,
|
||||||
|
OrderbyDesc: req.OrderbyDesc,
|
||||||
|
Pageidx: req.Pageidx,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &v1.GetGoodsListRes{
|
||||||
|
List: out.List,
|
||||||
|
Pageidx: out.Pageidx,
|
||||||
|
Total: out.Total,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
28
internal/controller/reward/reward_v1_get_lift.go
Normal file
28
internal/controller/reward/reward_v1_get_lift.go
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package reward
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"server/internal/model"
|
||||||
|
"server/internal/service"
|
||||||
|
|
||||||
|
"server/api/reward/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (c *ControllerV1) GetLift(ctx context.Context, req *v1.GetLiftReq) (res *v1.GetLiftRes, err error) {
|
||||||
|
out, err := service.Reward().GetLift(ctx, &model.RewardCallbackIn{
|
||||||
|
AreaId: req.AreaId,
|
||||||
|
GameId: req.GameId,
|
||||||
|
RewradTypeId: req.RewradType,
|
||||||
|
RoleIdx: req.RoleIdx,
|
||||||
|
TaskId: req.TaskId,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &v1.GetLiftRes{
|
||||||
|
List: out.List,
|
||||||
|
Result: out.Result,
|
||||||
|
Water: nil,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
@ -317,3 +317,41 @@ func (s *sReward) List(ctx context.Context, in *model.RewardListIn) (out *model.
|
|||||||
Total: total,
|
Total: total,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *sReward) GetLift(ctx context.Context, in *model.RewardCallbackIn) (out *model.RewardCallbackOut, err error) {
|
||||||
|
|
||||||
|
// 遍历奖励类型列表
|
||||||
|
for _, v := range in.RewradTypeId {
|
||||||
|
if v > 0 {
|
||||||
|
// 发背包+兑换
|
||||||
|
|
||||||
|
}
|
||||||
|
if v > 0 {
|
||||||
|
// 直接发背包
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 存储数据库记录
|
||||||
|
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetGoodsList 调用外部获取物品列表
|
||||||
|
func (s *sReward) GetGoodsList(ctx context.Context, in *model.GetGoodsListIn) (out *model.GetGoodsListOut, err error) {
|
||||||
|
|
||||||
|
// 调用 tencent
|
||||||
|
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetGoods 物品兑换
|
||||||
|
func (s *sReward) GetGoods(ctx context.Context, in *model.GetGoodsGetIn) (out *model.GoodsGetOut, err error) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetGoodsDetails 物品详情
|
||||||
|
func (s *sReward) GetGoodsDetails(ctx context.Context, in *model.QueryUserGoodsDetailParam) (out *model.QueryUserGoodsDetailResponse, err error) {
|
||||||
|
|
||||||
|
//
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|||||||
@ -90,3 +90,47 @@ type RewardListOut struct {
|
|||||||
List []Reward
|
List []Reward
|
||||||
Total int
|
Total int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RewardCallbackIn 任务奖励领取回调入参
|
||||||
|
type RewardCallbackIn struct {
|
||||||
|
AreaId int64
|
||||||
|
GameId int64
|
||||||
|
RewradTypeId []int64
|
||||||
|
RoleIdx string
|
||||||
|
TaskId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Water struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type RewardCallbackOut struct {
|
||||||
|
List interface{} `json:"list"`
|
||||||
|
Result int64 `json:"result"`
|
||||||
|
Water Water `json:"water"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGoodsListIn struct {
|
||||||
|
Appfilter string `json:"appfilter"`
|
||||||
|
BigTime int64 `json:"bigTime"`
|
||||||
|
Pageidx string `json:"pageidx"`
|
||||||
|
Num int64 `json:"num"`
|
||||||
|
OrderType string `json:"orderType"`
|
||||||
|
OrderbyDesc int64 `json:"orderbDesc"`
|
||||||
|
Goodsstatus int64 `json:"Goodsstatus"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGoodsListOut struct {
|
||||||
|
List interface{} `json:"list"`
|
||||||
|
Pageidx string `json:"pageidx"`
|
||||||
|
Total int64 `json:"total"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGoodsGetIn struct {
|
||||||
|
Water Water `json:"water" dc:"物品流水,从背包列表获取的water透传回来(water类型参考GetGift接口的water结构)"`
|
||||||
|
AreaId int64 `json:"areaId" dc:"大区Id"`
|
||||||
|
GameId int64 `json:"gid" dc:"游戏Id"`
|
||||||
|
RoleIdx string `json:"roleIdx" dc:"角色索引"`
|
||||||
|
}
|
||||||
|
type GoodsGetOut struct {
|
||||||
|
Water Water `json:"water" dc:"用户领取物品流水记录"`
|
||||||
|
}
|
||||||
|
|||||||
@ -20,6 +20,13 @@ type (
|
|||||||
Delete(ctx context.Context, in *model.RewardDeleteIn) (out *model.RewardDeleteOut, err error)
|
Delete(ctx context.Context, in *model.RewardDeleteIn) (out *model.RewardDeleteOut, err error)
|
||||||
// List 奖励列表
|
// List 奖励列表
|
||||||
List(ctx context.Context, in *model.RewardListIn) (out *model.RewardListOut, err error)
|
List(ctx context.Context, in *model.RewardListIn) (out *model.RewardListOut, err error)
|
||||||
|
GetLift(ctx context.Context, in *model.RewardCallbackIn) (out *model.RewardCallbackOut, err error)
|
||||||
|
// GetGoodsList 调用外部获取物品列表
|
||||||
|
GetGoodsList(ctx context.Context, in *model.GetGoodsListIn) (out *model.GetGoodsListOut, err error)
|
||||||
|
// GetGoods 物品兑换
|
||||||
|
GetGoods(ctx context.Context, in *model.GetGoodsGetIn) (out *model.GoodsGetOut, err error)
|
||||||
|
// GetGoodsDetails 物品详情
|
||||||
|
GetGoodsDetails(ctx context.Context, in *model.QueryUserGoodsDetailParam) (out *model.QueryUserGoodsDetailResponse, err error)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user