修改未登录任务列表查询

This commit is contained in:
chy
2025-06-19 10:40:57 +08:00
parent ce2d5fa69d
commit b6c84d9a03
8 changed files with 60 additions and 39 deletions

View File

@ -30,21 +30,23 @@ type NonLoginTaskListReq struct {
type NonLoginTaskListRes struct { type NonLoginTaskListRes struct {
//List interface{} `json:"list"` //List interface{} `json:"list"`
//Total int `json:"total"` //Total int `json:"total"`
Data interface{} `json:"taskList"` Data interface{} `json:"taskList"`
PageIdx string `json:"pageidx" dc:"分页索引"`
} }
type GetLoginTaskListReq struct { type GetLoginTaskListReq struct {
g.Meta `path:"/task/getLoginTaskList" method:"get" tags:"Task" summary:"(PC)网吧已登录任务列表"` g.Meta `path:"/task/getLoginTaskList" method:"get" tags:"Task" summary:"(PC)网吧已登录任务列表"`
NetBarAccount string `json:"netBarAccount" v:"required#网关账号不能为空" dc:"网关账号"` NetBarAccount string `json:"netBarAccount" v:"required#网关账号不能为空" dc:"网关账号"`
//Num int `json:"num" v:"required#不能为空" dc:""` Num int `json:"num" v:"required#不能为空" dc:""`
//Pageidx string `json:"pageidx" dc:"分页索引"` Pageidx string `json:"pageidx" dc:"分页索引"`
Gid int `json:"gid" v:"required#游戏唯一id不能为空" dc:"游戏唯一id"` Gid int `json:"gid" v:"required#游戏唯一id不能为空" dc:"游戏唯一id"`
//BrandId string `json:"brandId" dc:"品牌id(可选)"` //BrandId string `json:"brandId" dc:"品牌id(可选)"`
PopenId string `json:"popenId" v:"required#popenId不能为空" dc:"用户详情接口返回的 wxPopenId 或者是 qqPopenId"` PopenId string `json:"popenId" v:"required#popenId不能为空" dc:"用户详情接口返回的 wxPopenId 或者是 qqPopenId"`
} }
type GetLoginTaskListRes struct { type GetLoginTaskListRes struct {
Data interface{} `json:"data"` Data interface{} `json:"data"`
PageIdx string `json:"pageidx" dc:"分页索引"`
} }
type ListReq struct { type ListReq struct {

View File

@ -13,11 +13,13 @@ func (c *ControllerV1) GetLoginTaskList(ctx context.Context, req *v1.GetLoginTas
Gid: req.Gid, Gid: req.Gid,
NetBarAccount: req.NetBarAccount, NetBarAccount: req.NetBarAccount,
PopenId: req.PopenId, PopenId: req.PopenId,
Num: req.Num,
Pageidx: req.Pageidx,
}) })
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &v1.GetLoginTaskListRes{Data: out.Data}, nil return &v1.GetLoginTaskListRes{Data: out.Data, PageIdx: out.PageIdx}, nil
} }

View File

@ -12,11 +12,9 @@ func (c *ControllerV1) NonLoginTaskList(ctx context.Context, req *v1.NonLoginTas
out, err := service.Task().GetNonLoginTaskList(ctx, &model.GetTaskListIn{ out, err := service.Task().GetNonLoginTaskList(ctx, &model.GetTaskListIn{
NetBarAccount: req.NetBarAccount, NetBarAccount: req.NetBarAccount,
//Page: req.Page, Num: req.Num,
//Size: req.Size, Pageidx: req.Pageidx,
Num: req.Num, Gid: req.Gid,
Pageidx: req.Pageidx,
Gid: req.Gid,
//Source: req.Source, //Source: req.Source,
//BrandId: req.BrandId, //BrandId: req.BrandId,
}) })
@ -25,5 +23,5 @@ func (c *ControllerV1) NonLoginTaskList(ctx context.Context, req *v1.NonLoginTas
return nil, err return nil, err
} }
return &v1.NonLoginTaskListRes{Data: out}, nil return &v1.NonLoginTaskListRes{Data: out.Data, PageIdx: out.PageIdx}, nil
} }

View File

@ -144,7 +144,7 @@ func (s *sTask) UserTaskRankingList(ctx context.Context, in *model.UserTaskRanki
} }
// GetNonLoginTaskList 获取下发到指定网吧的任务列表(未登录) // GetNonLoginTaskList 获取下发到指定网吧的任务列表(未登录)
func (s *sTask) GetNonLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (out []model.Task, err error) { func (s *sTask) GetNonLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (out *model.GetTaskListOut, err error) {
// 调用外部接口 // 调用外部接口
activity, err := gamelife.GetGamelifeClient(ctx).RequestActivity(ctx, &model.QQNetbarActivityIn{ServiceName: consts.GetNonLoginTaskList, TaskParam: model.TaskParam{Gid: in.Gid, NetBarAccount: in.NetBarAccount, Num: in.Num, Pageidx: in.Pageidx}}) activity, err := gamelife.GetGamelifeClient(ctx).RequestActivity(ctx, &model.QQNetbarActivityIn{ServiceName: consts.GetNonLoginTaskList, TaskParam: model.TaskParam{Gid: in.Gid, NetBarAccount: in.NetBarAccount, Num: in.Num, Pageidx: in.Pageidx}})
@ -157,6 +157,7 @@ func (s *sTask) GetNonLoginTaskList(ctx context.Context, in *model.GetTaskListIn
} }
// 剔除不需要的任务数据 // 剔除不需要的任务数据
var tasks []model.Task var tasks []model.Task
idx := result.PageIdx
for _, task := range result.TaskList { for _, task := range result.TaskList {
data := model.Task{ data := model.Task{
QqNetbarTaskId: task.TaskID, QqNetbarTaskId: task.TaskID,
@ -178,13 +179,16 @@ func (s *sTask) GetNonLoginTaskList(ctx context.Context, in *model.GetTaskListIn
tasks = append(tasks, data) tasks = append(tasks, data)
} }
return tasks, nil return &model.GetTaskListOut{
PageIdx: idx,
Data: tasks,
}, nil
} }
func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (out *model.GetTaskListOut, err error) { func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (out *model.GetTaskListOut, err error) {
// 调用外部接口 // 调用外部接口
activity, err := gamelife.GetGamelifeClient(ctx).RequestActivity(ctx, &model.QQNetbarActivityIn{ServiceName: consts.GetTaskList, TaskParam: model.TaskParam{Gid: in.Gid, NetBarAccount: in.NetBarAccount, Num: in.Num, Pageidx: in.Pageidx}}) activity, err := gamelife.GetGamelifeClient(ctx).RequestActivity(ctx, &model.QQNetbarActivityIn{ServiceName: consts.GetTaskList, PopenId: in.PopenId, TaskParam: model.TaskParam{Gid: in.Gid, NetBarAccount: in.NetBarAccount, Num: in.Num, Pageidx: in.Pageidx}})
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -192,6 +196,8 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (
if !ok { if !ok {
return nil, ecode.Fail.Sub("数据类型转换失败") return nil, ecode.Fail.Sub("数据类型转换失败")
} }
pageIdx := result.PageIdx
// 剔除不需要的任务数据 // 剔除不需要的任务数据
var tasks []model.Task var tasks []model.Task
for _, task := range result.TaskList { for _, task := range result.TaskList {
@ -205,7 +211,7 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (
StartTime: task.CycleStart, StartTime: task.CycleStart,
EndTime: task.CycleEnd, EndTime: task.CycleEnd,
} }
data.UserTaskResult.Usertimes = task.UserTimes
// 组装门店奖励数据 // 组装门店奖励数据
err := dao.Tasks.Ctx(ctx).InnerJoin(dao.StoreTaskRewards.Table(), fmt.Sprintf("%s.%s = %s.%s", dao.Tasks.Table(), dao.Tasks.Columns().Id, dao.StoreTaskRewards.Table(), dao.StoreTaskRewards.Columns().TaskId)). err := dao.Tasks.Ctx(ctx).InnerJoin(dao.StoreTaskRewards.Table(), fmt.Sprintf("%s.%s = %s.%s", dao.Tasks.Table(), dao.Tasks.Columns().Id, dao.StoreTaskRewards.Table(), dao.StoreTaskRewards.Columns().TaskId)).
InnerJoin(dao.Rewards.Table(), fmt.Sprintf("%s.%s = %s.%s", dao.StoreTaskRewards.Table(), dao.StoreTaskRewards.Columns().RewardId, dao.Rewards.Table(), dao.Rewards.Columns().Id)). InnerJoin(dao.Rewards.Table(), fmt.Sprintf("%s.%s = %s.%s", dao.StoreTaskRewards.Table(), dao.StoreTaskRewards.Columns().RewardId, dao.Rewards.Table(), dao.Rewards.Columns().Id)).
@ -217,7 +223,8 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (
} }
return &model.GetTaskListOut{ return &model.GetTaskListOut{
Data: tasks, Data: tasks,
PageIdx: pageIdx,
}, err }, err
} }

View File

@ -39,7 +39,7 @@ type GameTask struct {
TargetName string `json:"target_name"` TargetName string `json:"target_name"`
TargetTimes int `json:"target_times"` TargetTimes int `json:"target_times"`
Status int `json:"status,omitempty"` Status int `json:"status,omitempty"`
UserTimes int `json:"user_times,omitempty"` UserTimes int64 `json:"user_times,omitempty"`
GameTaskConfig GameTaskConfig `json:"game_task_config"` GameTaskConfig GameTaskConfig `json:"game_task_config"`
GameTaskConfigParse GameTaskConfigParse `json:"game_task_config_parse"` GameTaskConfigParse GameTaskConfigParse `json:"game_task_config_parse"`
} }
@ -61,4 +61,5 @@ type TaskParam struct {
type QQNetbarActivityIn struct { type QQNetbarActivityIn struct {
ServiceName string // 服务名称 ServiceName string // 服务名称
TaskParam TaskParam // 参数体 TaskParam TaskParam // 参数体
PopenId string
} }

View File

@ -6,24 +6,28 @@ import (
) )
type Task struct { type Task struct {
Id int64 `json:"id" orm:"id" description:"任务唯一标识符"` // 任务唯一标识符 Id int64 `json:"-" orm:"id" description:"任务唯一标识符"` // 任务唯一标识符
CreatedAt *gtime.Time `json:"-" orm:"created_at" description:"创建时间"` // 创建时间 CreatedAt *gtime.Time `json:"-" orm:"created_at" description:"创建时间"` // 创建时间
UpdatedAt *gtime.Time `json:"-" orm:"updated_at" description:"更新时间"` // 更新时间 UpdatedAt *gtime.Time `json:"-" orm:"updated_at" description:"更新时间"` // 更新时间
DeletedAt *gtime.Time `json:"-" orm:"deleted_at" description:"软删除时间戳"` // 软删除时间戳 DeletedAt *gtime.Time `json:"-" orm:"deleted_at" description:"软删除时间戳"` // 软删除时间戳
GameId int64 `json:"gameId" orm:"game_id" description:"游戏唯一id"` // 游戏唯一id GameId int64 `json:"-" orm:"game_id" description:"游戏唯一id"` // 游戏唯一id
StoreId int64 `json:"storeId" orm:"store_id" description:"门店 id"` // 门店 id StoreId int64 `json:"-" orm:"store_id" description:"门店 id"` // 门店 id
Status int `json:"status" orm:"status" description:"1启用 2禁用"` // 1启用 2禁用 Status int `json:"-" orm:"status" description:"1启用 2禁用"` // 1启用 2禁用
QqNetbarTaskId string `json:"qqNetbarTaskId" orm:"qq_netbar_task_id" description:"QQ网吧任务ID"` // QQ网吧任务ID QqNetbarTaskId string `json:"qqNetbarTaskId" orm:"qq_netbar_task_id" description:"QQ网吧任务ID"` // QQ网吧任务ID
QqNetbarTaskRules string `json:"qqNetbarTaskRules" orm:"qq_netbar_task_rules" description:"任务规则"` // 任务规则 QqNetbarTaskRules string `json:"qqNetbarTaskRules" orm:"qq_netbar_task_rules" description:"任务规则"` // 任务规则
QqNetbarTaskMemo string `json:"qqNetbarTaskMemo" orm:"qq_netbar_task_memo" description:"任务描述"` // 任务描述 QqNetbarTaskMemo string `json:"qqNetbarTaskMemo" orm:"qq_netbar_task_memo" description:"任务描述"` // 任务描述
QqNetbarTaskName string `json:"qqNetbarTaskName" orm:"qq_netbar_task_name" description:"QQ网吧任务名称"` // QQ网吧任务名称 QqNetbarTaskName string `json:"qqNetbarTaskName" orm:"qq_netbar_task_name" description:"QQ网吧任务名称"` // QQ网吧任务名称
QqNetbarReward string `json:"qqNetbarReward" orm:"qq_netbar_reward" description:"qq 网吧奖励名称"` // qq 网吧奖励名称 QqNetbarReward string `json:"qqNetbarReward" orm:"qq_netbar_reward" description:"qq 网吧奖励名称"` // qq 网吧奖励名称
QqNetbarTargetTime int `json:"qqNetbarTargetTime" orm:"qq_netbar_target_time" description:"qq 网吧任务指标"` // qq 网吧任务指标 QqNetbarTargetTime int `json:"qqNetbarTargetTime" orm:"qq_netbar_target_time" description:"qq 网吧任务指标"` // qq 网吧任务指标
StartTime int64 `json:"startTime" orm:"start_time" description:"任务开始时间"` // 任务开始时间 StartTime int64 `json:"startTime" orm:"start_time" description:"任务开始时间"` // 任务开始时间
EndTime int64 `json:"endTime" orm:"end_time" description:"任务结束时间"` // 任务结束时间 EndTime int64 `json:"endTime" orm:"end_time" description:"任务结束时间"` // 任务结束时间
NetbarRewards []Reward `json:"netbarRewards" orm:"-"` NetbarRewards []Reward `json:"netbarRewards" orm:"-"`
UserTaskResult UserTaskResult `json:"userTaskResult,omitempty"`
} }
type UserTaskResult struct {
Usertimes int64 `json:"usertimes,omitempty"`
}
type GetTaskListIn struct { type GetTaskListIn struct {
NetBarAccount string `json:"netbar_account"` //网关账号 NetBarAccount string `json:"netbar_account"` //网关账号
//Page int `json:"page"` // 分页索引 //Page int `json:"page"` // 分页索引
@ -60,9 +64,8 @@ type GetTenCentLoginTaskListIn struct {
} }
type GetTaskListOut struct { type GetTaskListOut struct {
// List interface{} `json:"list"` PageIdx string `json:"pageidx"`
// Total int `json:"total"` Data interface{} `json:"taskList"`
Data interface{} `json:"data"`
} }
// MyData 定义一个与 JSON 结构匹配的结构体 // MyData 定义一个与 JSON 结构匹配的结构体

View File

@ -14,7 +14,7 @@ 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 获取下发到指定网吧的任务列表(未登录)
GetNonLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (out []model.Task, err error) GetNonLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (out *model.GetTaskListOut, err error)
GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (out *model.GetTaskListOut, err error) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (out *model.GetTaskListOut, err error)
GetTaskList(ctx context.Context, in *model.TaskListIn) (out *model.TaskListOut, err error) GetTaskList(ctx context.Context, in *model.TaskListIn) (out *model.TaskListOut, err error)
GetSelectorList(ctx context.Context, in *model.SelectorIn) (out *[]model.SelectorOut, err error) GetSelectorList(ctx context.Context, in *model.SelectorIn) (out *[]model.SelectorOut, err error)

View File

@ -332,11 +332,19 @@ func (s *gamelifeClient) RequestActivity(ctx context.Context, in *model.QQNetbar
case consts.GetTaskList: case consts.GetTaskList:
result := model.GameTaskResponse{} result := model.GameTaskResponse{}
in.TaskParam.BrandId = s.BrandId in.TaskParam.BrandId = s.BrandId
get, err := g.Redis().Get(ctx, fmt.Sprintf(consts.GameLifeUserKey, in.PopenId))
if err != nil {
return nil, ecode.Fail.Sub("从缓存中获取用户信息失败")
}
var gamelifeCache model.UserGamelifeCache
if err = json.Unmarshal(get.Bytes(), &gamelifeCache); err != nil {
return nil, ecode.Fail.Sub("解析用户信息失败")
}
resp, err := client.R(). resp, err := client.R().
SetContext(ctx). SetContext(ctx).
SetBody(in.TaskParam). SetBody(in.TaskParam).
SetResult(&result). SetResult(&result).
Post(s.taskUrlMap[s.Mode] + consts.GetTaskList) Post(fmt.Sprintf("%s%s?%s", s.taskUrlMap[s.Mode], consts.GetTaskList, gamelifeCache.Params))
if err != nil { if err != nil {
return nil, ecode.Fail.Sub("请求出现异常") return nil, ecode.Fail.Sub("请求出现异常")
} }