新增从腾讯获取任务列表
This commit is contained in:
@ -12,4 +12,6 @@ import (
|
||||
|
||||
type ITaskV1 interface {
|
||||
Ranking(ctx context.Context, req *v1.RankingReq) (res *v1.RankingRes, err error)
|
||||
NonLoginTaskList(ctx context.Context, req *v1.NonLoginTaskListReq) (res *v1.NonLoginTaskListRes, err error)
|
||||
GetLoginTaskList(ctx context.Context, req *v1.GetLoginTaskListReq) (res *v1.GetLoginTaskListRes, err error)
|
||||
}
|
||||
|
||||
@ -18,3 +18,33 @@ type RankingRes struct {
|
||||
CompletedNum int `json:"completedNum"`
|
||||
RankingNum int `json:"rankingNum"`
|
||||
}
|
||||
|
||||
type NonLoginTaskListReq struct {
|
||||
g.Meta `path:"/task/getNonLoginTaskList" method:"get" tags:"Task" summary:"网吧未登录任务列表"`
|
||||
NetBarAccount string `json:"netBarAccount" v:"required#网关账号不能为空" dc:"网关账号"`
|
||||
Page int `json:"page" v:"required#分页索引不能为空" dc:"分页索引"`
|
||||
Size int `json:"size" v:"required#分页大小不能为空" dc:"分页大小"`
|
||||
Gid int `json:"gid" v:"required#游戏唯一id不能为空" dc:"游戏唯一id"`
|
||||
Source string `json:"source" v:"required#不能为空" dc:""`
|
||||
BrandId string `json:"brandId" dc:"品牌id(可选)"`
|
||||
}
|
||||
|
||||
type NonLoginTaskListRes struct {
|
||||
//List interface{} `json:"list"`
|
||||
//Total int `json:"total"`
|
||||
Data interface{} `json:"data"`
|
||||
}
|
||||
|
||||
type GetLoginTaskListReq struct {
|
||||
g.Meta `path:"/task/getLoginTaskList" method:"get" tags:"Task" summary:"网吧未登录任务列表"`
|
||||
NetBarAccount string `json:"netBarAccount" v:"required#网关账号不能为空" dc:"网关账号"`
|
||||
Page int `json:"page" v:"required#分页索引不能为空" dc:"分页索引"`
|
||||
Size int `json:"size" v:"required#分页大小不能为空" dc:"分页大小"`
|
||||
Gid int `json:"gid" v:"required#游戏唯一id不能为空" dc:"游戏唯一id"`
|
||||
Source string `json:"source" v:"required#不能为空" dc:""`
|
||||
BrandId string `json:"brandId" dc:"品牌id(可选)"`
|
||||
}
|
||||
|
||||
type GetLoginTaskListRes struct {
|
||||
Data interface{} `json:"data"`
|
||||
}
|
||||
|
||||
6
internal/consts/tencent.go
Normal file
6
internal/consts/tencent.go
Normal file
@ -0,0 +1,6 @@
|
||||
package consts
|
||||
|
||||
const (
|
||||
TestAddr = "https://api-test.cafe.qq.com/netbar.cafe.open_api.open_api/"
|
||||
ProAddr = "https://api.cafe.qq.com/netbar.cafe.open_api.open_api/"
|
||||
)
|
||||
26
internal/controller/task/task_v1_get_login_task_list.go
Normal file
26
internal/controller/task/task_v1_get_login_task_list.go
Normal file
@ -0,0 +1,26 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"context"
|
||||
"server/internal/model"
|
||||
"server/internal/service"
|
||||
|
||||
"server/api/task/v1"
|
||||
)
|
||||
|
||||
func (c *ControllerV1) GetLoginTaskList(ctx context.Context, req *v1.GetLoginTaskListReq) (res *v1.GetLoginTaskListRes, err error) {
|
||||
out, err := service.Task().GetLoginTaskList(ctx, &model.GetLoginTaskListIn{
|
||||
NetBarAccount: req.NetBarAccount,
|
||||
Page: req.Page,
|
||||
Size: req.Size,
|
||||
Gid: req.Gid,
|
||||
Source: req.Source,
|
||||
BrandId: req.BrandId,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &v1.GetLoginTaskListRes{Data: out.Data}, nil
|
||||
}
|
||||
27
internal/controller/task/task_v1_non_login_task_list.go
Normal file
27
internal/controller/task/task_v1_non_login_task_list.go
Normal file
@ -0,0 +1,27 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"context"
|
||||
"server/internal/model"
|
||||
"server/internal/service"
|
||||
|
||||
"server/api/task/v1"
|
||||
)
|
||||
|
||||
func (c *ControllerV1) NonLoginTaskList(ctx context.Context, req *v1.NonLoginTaskListReq) (res *v1.NonLoginTaskListRes, err error) {
|
||||
|
||||
out, err := service.Task().GetNonLoginTaskList(ctx, &model.GetNonLoginTaskListIn{
|
||||
NetBarAccount: req.NetBarAccount,
|
||||
Page: req.Page,
|
||||
Size: req.Size,
|
||||
Gid: req.Gid,
|
||||
Source: req.Source,
|
||||
BrandId: req.BrandId,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &v1.NonLoginTaskListRes{Data: out.Data}, nil
|
||||
}
|
||||
@ -7,6 +7,7 @@ import (
|
||||
"server/internal/model"
|
||||
"server/internal/service"
|
||||
"server/utility/ecode"
|
||||
"server/utility/tencent"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
@ -132,3 +133,36 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki
|
||||
RankingNum: rankingNum,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// GetNonLoginTaskList 获取下发到指定网吧的任务列表(未登录)
|
||||
func (s *sTask) GetNonLoginTaskList(ctx context.Context, in *model.GetNonLoginTaskListIn) (out *model.GetNonLoginTaskListOut, err error) {
|
||||
|
||||
// TODO 调用外部接口
|
||||
// 调用外部接口
|
||||
data, err := tencent.GetNonLoginTaskList(ctx, in)
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("调用接口异常")
|
||||
}
|
||||
|
||||
// TODO 任务列表数据处理
|
||||
|
||||
return &model.GetNonLoginTaskListOut{
|
||||
Data: data,
|
||||
}, err
|
||||
}
|
||||
|
||||
func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetLoginTaskListIn) (out *model.GetLoginTaskListOut, err error) {
|
||||
|
||||
// TODO 调用外部接口
|
||||
// 调用外部接口
|
||||
data, err := tencent.GetLoginTaskList(ctx, in)
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("调用接口异常")
|
||||
}
|
||||
|
||||
// TODO 任务列表数据处理
|
||||
|
||||
return &model.GetLoginTaskListOut{
|
||||
Data: data,
|
||||
}, err
|
||||
}
|
||||
|
||||
31
internal/model/task.go
Normal file
31
internal/model/task.go
Normal file
@ -0,0 +1,31 @@
|
||||
package model
|
||||
|
||||
type GetNonLoginTaskListIn struct {
|
||||
NetBarAccount string `json:"netBarAccount"` //网关账号
|
||||
Page int `json:"page"` // 分页索引
|
||||
Size int `json:"size"` // 分页大小
|
||||
Gid int `json:"gid"` // 游戏唯一id
|
||||
Source string `json:"source"` // 不能为空
|
||||
BrandId string `json:"brandId"` // 品牌id(可选)
|
||||
}
|
||||
|
||||
type GetNonLoginTaskListOut struct {
|
||||
// List interface{} `json:"list"`
|
||||
// Total int `json:"total"`
|
||||
Data interface{} `json:"data"`
|
||||
}
|
||||
|
||||
type GetLoginTaskListIn struct {
|
||||
NetBarAccount string `json:"netBarAccount"` //网关账号
|
||||
Page int `json:"page"` // 分页索引
|
||||
Size int `json:"size"` // 分页大小
|
||||
Gid int `json:"gid"` // 游戏唯一id
|
||||
Source string `json:"source"` // 不能为空
|
||||
BrandId string `json:"brandId"` // 品牌id(可选)
|
||||
}
|
||||
|
||||
type GetLoginTaskListOut struct {
|
||||
// List interface{} `json:"list"`
|
||||
// Total int `json:"total"`
|
||||
Data interface{} `json:"data"`
|
||||
}
|
||||
@ -13,6 +13,9 @@ import (
|
||||
type (
|
||||
ITask interface {
|
||||
UserTaskRankingList(ctx context.Context, in *model.UserTaskRankingIn) (out *model.UserTaskRankingOut, err error)
|
||||
// GetNonLoginTaskList 获取下发到指定网吧的任务列表(未登录)
|
||||
GetNonLoginTaskList(ctx context.Context, in *model.GetNonLoginTaskListIn) (out *model.GetNonLoginTaskListOut, err error)
|
||||
GetLoginTaskList(ctx context.Context, in *model.GetLoginTaskListIn) (out *model.GetLoginTaskListOut, err error)
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@ -42,6 +42,7 @@ func init() {
|
||||
{
|
||||
// 任务
|
||||
enforcer.AddPolicy("guest", "/x/task/ranking", "GET", "获取排行榜")
|
||||
enforcer.AddPolicy("guest", "/x/task/getNonLoginTaskList", "GET", "未登录获取任务列表")
|
||||
|
||||
// 游戏列表
|
||||
enforcer.AddPolicy("guest", "/x/game", "GET", "获取游戏列表")
|
||||
@ -64,6 +65,7 @@ func init() {
|
||||
enforcer.AddPolicy("user", "/x/feedback/*", "PUT", "反馈信息处理")
|
||||
//enforcer.AddPolicy("user", "/x/feedback/*", "DELETE", "删除反馈信息")*
|
||||
enforcer.AddPolicy("user", "/x/feedback/*", "GET", "查询反馈详情")
|
||||
|
||||
}
|
||||
// 门店
|
||||
{
|
||||
@ -74,6 +76,9 @@ func init() {
|
||||
enforcer.AddPolicy("store", "/x/rewardType", "POST", "添加奖励类型")
|
||||
enforcer.AddPolicy("store", "/x/rewardType", "PUT", "更新奖励类型")
|
||||
enforcer.AddPolicy("store", "/x/rewardType/*", "DELETE", "删除奖励类型")
|
||||
|
||||
// 任务
|
||||
enforcer.AddPolicy("user", "/x/task/getNonLoginTaskList", "GET", "获取任务列表(已登录)")
|
||||
}
|
||||
// 商户
|
||||
{
|
||||
|
||||
75
utility/tencent/tencent.go
Normal file
75
utility/tencent/tencent.go
Normal file
@ -0,0 +1,75 @@
|
||||
package tencent
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"server/internal/consts"
|
||||
"server/internal/model"
|
||||
"server/utility/ecode"
|
||||
)
|
||||
|
||||
// GetNonLoginTaskList 获取下发到指定网吧的任务列表(未登录)
|
||||
func GetNonLoginTaskList(ctx context.Context, in *model.GetNonLoginTaskListIn) (data interface{}, err error) {
|
||||
|
||||
client := &http.Client{}
|
||||
// 请求参数
|
||||
jsonStr, err := json.Marshal(in)
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("参数序列化失败")
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("POST", consts.TestAddr+"GetNonloginTaskList", bytes.NewBuffer(jsonStr))
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("创建请求失败")
|
||||
}
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
//req.Header.Set("Authorization", "Bearer 你的Token")
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("请求失败")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
body, err := io.ReadAll(resp.Body) // 推荐用法
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("读取响应失败")
|
||||
}
|
||||
fmt.Println("响应内容:", string(body))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// GetLoginTaskList 获取下发到指定网吧的任务列表(已登录)
|
||||
func GetLoginTaskList(ctx context.Context, in *model.GetLoginTaskListIn) (data interface{}, err error) {
|
||||
|
||||
client := &http.Client{}
|
||||
// 请求参数
|
||||
jsonStr, err := json.Marshal(in)
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("参数序列化失败")
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("POST", consts.TestAddr+"GetTaskList", bytes.NewBuffer(jsonStr))
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("创建请求失败")
|
||||
}
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
//req.Header.Set("Authorization", "Bearer 你的Token")
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("请求失败")
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
body, err := io.ReadAll(resp.Body) // 推荐用法
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("读取响应失败")
|
||||
}
|
||||
fmt.Println("响应内容:", string(body))
|
||||
return nil, err
|
||||
}
|
||||
Reference in New Issue
Block a user