新增从腾讯获取任务列表
This commit is contained in:
@ -12,4 +12,6 @@ import (
|
|||||||
|
|
||||||
type ITaskV1 interface {
|
type ITaskV1 interface {
|
||||||
Ranking(ctx context.Context, req *v1.RankingReq) (res *v1.RankingRes, err error)
|
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"`
|
CompletedNum int `json:"completedNum"`
|
||||||
RankingNum int `json:"rankingNum"`
|
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/model"
|
||||||
"server/internal/service"
|
"server/internal/service"
|
||||||
"server/utility/ecode"
|
"server/utility/ecode"
|
||||||
|
"server/utility/tencent"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -132,3 +133,36 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki
|
|||||||
RankingNum: rankingNum,
|
RankingNum: rankingNum,
|
||||||
}, nil
|
}, 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 (
|
type (
|
||||||
ITask interface {
|
ITask interface {
|
||||||
UserTaskRankingList(ctx context.Context, in *model.UserTaskRankingIn) (out *model.UserTaskRankingOut, err error)
|
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/ranking", "GET", "获取排行榜")
|
||||||
|
enforcer.AddPolicy("guest", "/x/task/getNonLoginTaskList", "GET", "未登录获取任务列表")
|
||||||
|
|
||||||
// 游戏列表
|
// 游戏列表
|
||||||
enforcer.AddPolicy("guest", "/x/game", "GET", "获取游戏列表")
|
enforcer.AddPolicy("guest", "/x/game", "GET", "获取游戏列表")
|
||||||
@ -64,6 +65,7 @@ func init() {
|
|||||||
enforcer.AddPolicy("user", "/x/feedback/*", "PUT", "反馈信息处理")
|
enforcer.AddPolicy("user", "/x/feedback/*", "PUT", "反馈信息处理")
|
||||||
//enforcer.AddPolicy("user", "/x/feedback/*", "DELETE", "删除反馈信息")*
|
//enforcer.AddPolicy("user", "/x/feedback/*", "DELETE", "删除反馈信息")*
|
||||||
enforcer.AddPolicy("user", "/x/feedback/*", "GET", "查询反馈详情")
|
enforcer.AddPolicy("user", "/x/feedback/*", "GET", "查询反馈详情")
|
||||||
|
|
||||||
}
|
}
|
||||||
// 门店
|
// 门店
|
||||||
{
|
{
|
||||||
@ -74,6 +76,9 @@ func init() {
|
|||||||
enforcer.AddPolicy("store", "/x/rewardType", "POST", "添加奖励类型")
|
enforcer.AddPolicy("store", "/x/rewardType", "POST", "添加奖励类型")
|
||||||
enforcer.AddPolicy("store", "/x/rewardType", "PUT", "更新奖励类型")
|
enforcer.AddPolicy("store", "/x/rewardType", "PUT", "更新奖励类型")
|
||||||
enforcer.AddPolicy("store", "/x/rewardType/*", "DELETE", "删除奖励类型")
|
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