新增从腾讯获取任务列表

This commit is contained in:
chy
2025-06-10 14:48:10 +08:00
parent 4f9dc24100
commit a3c6b20a04
10 changed files with 239 additions and 0 deletions

View File

@ -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)
}

View File

@ -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"`
}

View 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/"
)

View 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
}

View 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
}

View File

@ -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
View 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"`
}

View File

@ -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)
}
)

View File

@ -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", "获取任务列表(已登录)")
}
// 商户
{

View 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
}