diff --git a/api/task/task.go b/api/task/task.go index 1082c50..1484444 100644 --- a/api/task/task.go +++ b/api/task/task.go @@ -18,4 +18,6 @@ type ITaskV1 interface { Selector(ctx context.Context, req *v1.SelectorReq) (res *v1.SelectorRes, err error) GetTask(ctx context.Context, req *v1.GetTaskReq) (res *v1.GetTaskRes, err error) GetUserTaskRecordsList(ctx context.Context, req *v1.GetUserTaskRecordsListReq) (res *v1.GetUserTaskRecordsListRes, err error) + GetTaskList(ctx context.Context, req *v1.GetTaskListReq) (res *v1.GetTaskListRes, err error) + SyncTask(ctx context.Context, req *v1.SyncTaskReq) (res *v1.SyncTaskRes, err error) } diff --git a/api/task/v1/task.go b/api/task/v1/task.go index 1f5955b..07872e1 100644 --- a/api/task/v1/task.go +++ b/api/task/v1/task.go @@ -102,7 +102,16 @@ type GetUserTaskRecordsListRes struct { } type GetTaskListReq struct { - g.Meta `path:"/task/list" method:"get" tags:"Backend-PC/Task" summary:"任务列表"` + g.Meta `path:"/task/list" method:"get" tags:"Backend-PC/Task" summary:"任务列表"` + NetBarAccount string `json:"netBarAccount" v:"required#网关账号不能为空" dc:"网关账号"` + Num int `json:"num" v:"required#不能为空" dc:""` + Pageidx string `json:"pageidx" dc:"分页索引"` + Gid int `json:"gid" v:"required#游戏唯一id不能为空" dc:"游戏唯一id"` + //BrandId string `json:"brandId" dc:"品牌id(可选)"` + PopenId string `json:"popenId" dc:"用户详情接口返回的 wxPopenId 或者是 qqPopenId"` + BindType int `json:"bindType" dc:"绑定类型 1: QQ 2:微信"` + IsBound int `json:"IsBound" v:"required#不能为空" dc:"是否绑定 0:否 1:是"` + StoreId int64 `json:"storeId" dc:"门店 id"` } type GetTaskListRes struct { List interface{} `json:"list"` @@ -113,4 +122,5 @@ type SyncTaskReq struct { g.Meta `path:"/task/sync" method:"post" tags:"Backend/Task" summary:"同步任务"` } type SyncTaskRes struct { + Message string `json:"message"` } diff --git a/internal/controller/task/task_v1_get_task_list.go b/internal/controller/task/task_v1_get_task_list.go new file mode 100644 index 0000000..5444a49 --- /dev/null +++ b/internal/controller/task/task_v1_get_task_list.go @@ -0,0 +1,32 @@ +package task + +import ( + "context" + "github.com/gogf/gf/v2/frame/g" + "server/internal/model" + "server/internal/service" + + "server/api/task/v1" +) + +func (c *ControllerV1) GetTaskList(ctx context.Context, req *v1.GetTaskListReq) (res *v1.GetTaskListRes, err error) { + + userId := g.RequestFromCtx(ctx).Get("id").Int64() + list, err := service.Task().GetTaskList(ctx, &model.GetTaskListV2In{ + Gid: req.Gid, + NetBarAccount: req.NetBarAccount, + Num: req.Num, + Pageidx: req.Pageidx, + PopenId: req.PopenId, + BindType: req.BindType, + IsBound: req.IsBound, + StoreId: req.StoreId, + UserId: userId, + }) + if err != nil { + return nil, err + } + return &v1.GetTaskListRes{ + List: list, + }, nil +} diff --git a/internal/controller/task/task_v1_sync_task.go b/internal/controller/task/task_v1_sync_task.go new file mode 100644 index 0000000..6c90ed5 --- /dev/null +++ b/internal/controller/task/task_v1_sync_task.go @@ -0,0 +1,17 @@ +package task + +import ( + "context" + "server/internal/service" + + "server/api/task/v1" +) + +func (c *ControllerV1) SyncTask(ctx context.Context, req *v1.SyncTaskReq) (res *v1.SyncTaskRes, err error) { + go func() { + _, err = service.Task().SyncTaskFromGamelife(ctx) + }() + return &v1.SyncTaskRes{ + Message: "同步调用成功,等待数据同步,5分钟后刷新", + }, nil +} diff --git a/internal/logic/task/task.go b/internal/logic/task/task.go index 7afbbde..d104374 100644 --- a/internal/logic/task/task.go +++ b/internal/logic/task/task.go @@ -2,6 +2,7 @@ package task import ( "context" + "encoding/json" "fmt" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/os/glog" @@ -170,36 +171,36 @@ func (s *sTask) GetNonLoginTaskList(ctx context.Context, in *model.GetTaskListIn // 剔除不需要的任务数据 var tasks []model.Task idx := result.PageIdx - for _, task := range result.TaskList { - data := model.Task{ - QqNetbarTaskId: task.TaskID, - QqNetbarTaskName: task.Title, - QqNetbarTaskMemo: task.TaskDesc, - QqNetbarTaskRules: task.RuleDesc, - QqNetbarTargetName: task.TargetName, - QqNetbarTargetTime: task.TargetTimes, - StartTime: task.CycleStart, - EndTime: task.CycleEnd, - } - - // 组装奖励数据 - err := dao.TaskRewards.Ctx(ctx). - LeftJoin(dao.Rewards.Table(), - fmt.Sprintf("`%s`.`%s` = `%s`.`%s` ", - dao.Rewards.Table(), dao.Rewards.Columns().Id, - dao.TaskRewards.Table(), dao.TaskRewards.Columns().RewardId, - ), - ).Fields( - fmt.Sprintf( - "%s.*", - dao.Rewards.Table(), - ), - ).Where(dao.TaskRewards.Columns().TaskId, task.TaskID).Scan(&data.Rewards) - if err != nil { - return nil, err - } - tasks = append(tasks, data) - } + //for _, task := range result.TaskList { + // //data := model.Task{ + // // QqNetbarTaskId: task.TaskID, + // // QqNetbarTaskName: task.Title, + // // QqNetbarTaskMemo: task.TaskDesc, + // // QqNetbarTaskRules: task.RuleDesc, + // // QqNetbarTargetName: task.TargetName, + // // QqNetbarTargetTime: task.TargetTimes, + // // StartTime: task.CycleStart, + // // EndTime: task.CycleEnd, + // //} + // + // // 组装奖励数据 + // err := dao.TaskRewards.Ctx(ctx). + // LeftJoin(dao.Rewards.Table(), + // fmt.Sprintf("`%s`.`%s` = `%s`.`%s` ", + // dao.Rewards.Table(), dao.Rewards.Columns().Id, + // dao.TaskRewards.Table(), dao.TaskRewards.Columns().RewardId, + // ), + // ).Fields( + // fmt.Sprintf( + // "%s.*", + // dao.Rewards.Table(), + // ), + // ).Where(dao.TaskRewards.Columns().TaskId, task.TaskID).Scan(&data.Rewards) + // if err != nil { + // return nil, err + // } + // tasks = append(tasks, data) + //} return &model.GetTaskListOut{ PageIdx: idx, @@ -222,67 +223,67 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) ( pageIdx := result.PageIdx // 剔除不需要的任务数据 var tasks []model.Task - for _, task := range result.TaskList { - data := model.Task{ - QqNetbarTaskId: task.TaskID, - QqNetbarTaskName: task.Title, - QqNetbarTaskMemo: task.TaskDesc, - QqNetbarTaskRules: task.RuleDesc, - QqNetbarTargetName: task.TargetName, - QqNetbarTargetTime: task.TargetTimes, - StartTime: task.CycleStart, - EndTime: task.CycleEnd, - //Status: task.Status, - } - data.UserTaskResult.Usertimes = task.UserTimes - // 组装门店奖励数据 - err := dao.TaskRewards.Ctx(ctx). - LeftJoin(dao.Rewards.Table(), - fmt.Sprintf("`%s`.`%s` = `%s`.`%s`", - dao.Rewards.Table(), dao.Rewards.Columns().Id, - dao.TaskRewards.Table(), dao.TaskRewards.Columns().RewardId)). - LeftJoin(dao.RewardTypes.Table(), - fmt.Sprintf("`%s`.`%s` = `%s`.`%s`", - dao.RewardTypes.Table(), dao.RewardTypes.Columns().Id, - dao.Rewards.Table(), dao.Rewards.Columns().RewardTypeId)). - Fields( - fmt.Sprintf("%s.*, `%s`.`%s` AS %s", - dao.Rewards.Table(), - dao.RewardTypes.Table(), dao.RewardTypes.Columns().Name, - "reward_type_name", - ), - ).Where(dao.TaskRewards.Columns().TaskId, task.TaskID).Scan(&data.Rewards) - if err != nil { - return nil, err - } - - // 任务状态=1或者2不做操作,其他查询门店奖励是否全部领取 - if task.Status != 1 && task.Status != 2 { - count, err := dao.UserTasks.Ctx(ctx).Where(dao.UserTasks.Columns().TaskId, task.TaskID).Where(dao.UserTasks.Columns().UserId, in.UserId).LeftJoin(dao.UserTaskRewards.Table(), - fmt.Sprintf("%s.user_tasks_id = %s.id", dao.UserTaskRewards.Table(), dao.UserTasks.Table())).LeftJoin(dao.Rewards.Table(), fmt.Sprintf("%s.id = %s.reward_id", - dao.Rewards.Table(), dao.UserTaskRewards.Table())).Where(dao.Rewards.Columns().Source, 2).Where(dao.UserTaskRewards.Columns().Status, 2).Count() - if err != nil { - return nil, ecode.Fail.Sub("查询用户门店任务奖励失败") - } - - if count > 0 { - data.Status = 2 - } else { - data.Status = 3 - } - } else { - data.Status = task.Status - } - tasks = append(tasks, data) - - // 根据用户完成次数和任务指标次数判任务是否完成,修改任务记录状态为 3 - if int(task.UserTimes) >= task.TargetTimes { - _, err := dao.UserTasks.Ctx(ctx).Where(do.UserTasks{TaskId: task.TaskID}).Where(do.UserTasks{UserId: in.UserId}).Data(do.UserTasks{Status: 3}).Update() - if err != nil { - return nil, ecode.Fail.Sub("更新用户任务记录状态异常") - } - } - } + //for _, task := range result.TaskList { + // data := model.Task{ + // QqNetbarTaskId: task.TaskID, + // QqNetbarTaskName: task.Title, + // QqNetbarTaskMemo: task.TaskDesc, + // QqNetbarTaskRules: task.RuleDesc, + // QqNetbarTargetName: task.TargetName, + // QqNetbarTargetTime: task.TargetTimes, + // StartTime: task.CycleStart, + // EndTime: task.CycleEnd, + // //Status: task.Status, + // } + // data.UserTaskResult.Usertimes = task.UserTimes + // // 组装门店奖励数据 + // err := dao.TaskRewards.Ctx(ctx). + // LeftJoin(dao.Rewards.Table(), + // fmt.Sprintf("`%s`.`%s` = `%s`.`%s`", + // dao.Rewards.Table(), dao.Rewards.Columns().Id, + // dao.TaskRewards.Table(), dao.TaskRewards.Columns().RewardId)). + // LeftJoin(dao.RewardTypes.Table(), + // fmt.Sprintf("`%s`.`%s` = `%s`.`%s`", + // dao.RewardTypes.Table(), dao.RewardTypes.Columns().Id, + // dao.Rewards.Table(), dao.Rewards.Columns().RewardTypeId)). + // Fields( + // fmt.Sprintf("%s.*, `%s`.`%s` AS %s", + // dao.Rewards.Table(), + // dao.RewardTypes.Table(), dao.RewardTypes.Columns().Name, + // "reward_type_name", + // ), + // ).Where(dao.TaskRewards.Columns().TaskId, task.TaskID).Scan(&data.Rewards) + // if err != nil { + // return nil, err + // } + // + // // 任务状态=1或者2不做操作,其他查询门店奖励是否全部领取 + // if task.Status != 1 && task.Status != 2 { + // count, err := dao.UserTasks.Ctx(ctx).Where(dao.UserTasks.Columns().TaskId, task.TaskID).Where(dao.UserTasks.Columns().UserId, in.UserId).LeftJoin(dao.UserTaskRewards.Table(), + // fmt.Sprintf("%s.user_tasks_id = %s.id", dao.UserTaskRewards.Table(), dao.UserTasks.Table())).LeftJoin(dao.Rewards.Table(), fmt.Sprintf("%s.id = %s.reward_id", + // dao.Rewards.Table(), dao.UserTaskRewards.Table())).Where(dao.Rewards.Columns().Source, 2).Where(dao.UserTaskRewards.Columns().Status, 2).Count() + // if err != nil { + // return nil, ecode.Fail.Sub("查询用户门店任务奖励失败") + // } + // + // if count > 0 { + // data.Status = 2 + // } else { + // data.Status = 3 + // } + // } else { + // data.Status = task.Status + // } + // tasks = append(tasks, data) + // + // // 根据用户完成次数和任务指标次数判任务是否完成,修改任务记录状态为 3 + // if int(task.UserTimes) >= task.TargetTimes { + // _, err := dao.UserTasks.Ctx(ctx).Where(do.UserTasks{TaskId: task.TaskID}).Where(do.UserTasks{UserId: in.UserId}).Data(do.UserTasks{Status: 3}).Update() + // if err != nil { + // return nil, ecode.Fail.Sub("更新用户任务记录状态异常") + // } + // } + //} return &model.GetTaskListOut{ Data: tasks, @@ -439,6 +440,114 @@ func (s *sTask) GetUserTaskRecordsList(ctx context.Context, in *model.UserTaskRe }, nil } +// GetTaskList PC-WEB获取任务列表 +func (s *sTask) GetTaskList(ctx context.Context, in *model.GetTaskListV2In) (out *model.GetTaskListV2Out, err error) { + + var tasks []model.Task + var pageIdx string + var data []model.GameTask + if in.IsBound == 0 { + // 未绑定游戏查询自己数据库 + err := dao.Tasks.Ctx(ctx).Where(do.Tasks{GameId: in.Gid, StoreId: in.StoreId, NetbarAcconut: in.NetBarAccount}).WithAll().WithAll().Scan(&tasks) + if err != nil { + return nil, ecode.Fail.Sub("获取任务列表失败") + } + + for i, v := range tasks { + err := json.Unmarshal([]byte(v.Task), &tasks[i].GameTask) + if err != nil { + return nil, ecode.Fail.Sub("解析任务信息失败") + } + tasks[i].Task = "" + } + + return &model.GetTaskListV2Out{ + Data: tasks, + }, nil + } else { + // 已绑定 + // 调用外部接口 + activity, err := gamelife.GetGamelifeClient(ctx).RequestActivity(ctx, &model.QQNetbarActivityIn{ServiceName: consts.GetTaskList, PopenId: in.PopenId, BindType: in.BindType, TaskParam: model.TaskParam{Gid: in.Gid, NetBarAccount: in.NetBarAccount, Num: in.Num, Pageidx: in.Pageidx}}) + if err != nil { + return nil, err + } + result, ok := activity.(*model.GameTaskResponse) + if !ok { + return nil, ecode.Fail.Sub("数据类型转换失败") + } + + pageIdx = result.PageIdx + // 剔除不需要的任务数据 + for i, task := range result.TaskList { + //data := model.Task{ + // QqNetbarTaskId: task.TaskID, + // QqNetbarTaskName: task.Title, + // QqNetbarTaskMemo: task.TaskDesc, + // QqNetbarTaskRules: task.RuleDesc, + // QqNetbarTargetName: task.TargetName, + // QqNetbarTargetTime: task.TargetTimes, + // StartTime: task.CycleStart, + // EndTime: task.CycleEnd, + // //Status: task.Status, + //} + //data.UserTaskResult.Usertimes = task.UserTimes + // 组装门店奖励数据 + err := dao.TaskRewards.Ctx(ctx). + LeftJoin(dao.Rewards.Table(), + fmt.Sprintf("`%s`.`%s` = `%s`.`%s`", + dao.Rewards.Table(), dao.Rewards.Columns().Id, + dao.TaskRewards.Table(), dao.TaskRewards.Columns().RewardId)). + LeftJoin(dao.RewardTypes.Table(), + fmt.Sprintf("`%s`.`%s` = `%s`.`%s`", + dao.RewardTypes.Table(), dao.RewardTypes.Columns().Id, + dao.Rewards.Table(), dao.Rewards.Columns().RewardTypeId)). + Fields( + fmt.Sprintf("%s.*, `%s`.`%s` AS %s", + dao.Rewards.Table(), + dao.RewardTypes.Table(), dao.RewardTypes.Columns().Name, + "reward_type_name", + ), + ).Where(dao.TaskRewards.Columns().TaskId, task.TaskID).Scan(&result.TaskList[i].Reward) + if err != nil { + return nil, err + } + + //任务状态=1或者2不做操作,其他查询门店奖励是否全部领取 + if task.Status != 1 && task.Status != 2 { + count, err := dao.UserTasks.Ctx(ctx).Where(dao.UserTasks.Columns().TaskId, task.TaskID).Where(dao.UserTasks.Columns().UserId, in.UserId).LeftJoin(dao.UserTaskRewards.Table(), + fmt.Sprintf("%s.user_tasks_id = %s.id", dao.UserTaskRewards.Table(), dao.UserTasks.Table())).LeftJoin(dao.Rewards.Table(), fmt.Sprintf("%s.id = %s.reward_id", + dao.Rewards.Table(), dao.UserTaskRewards.Table())).Where(dao.Rewards.Columns().Source, 2).Where(dao.UserTaskRewards.Columns().Status, 2).Count() + if err != nil { + return nil, ecode.Fail.Sub("查询用户门店任务奖励失败") + } + + if count > 0 { + tasks[i].Status = 2 + } else { + tasks[i].Status = 3 + } + } + //else { + // data.Status = task.Status + //} + //tasks = append(tasks, data) + + // 根据用户完成次数和任务指标次数判任务是否完成,修改任务记录状态为 3 + if int(task.UserTimes) >= task.TargetTimes { + _, err := dao.UserTasks.Ctx(ctx).Where(do.UserTasks{TaskId: task.TaskID}).Where(do.UserTasks{UserId: in.UserId}).Data(do.UserTasks{Status: 3}).Update() + if err != nil { + return nil, ecode.Fail.Sub("更新用户任务记录状态异常") + } + } + } + data = result.TaskList + return &model.GetTaskListV2Out{ + Data: data, + PageIdx: pageIdx, + }, nil + } +} + func (s *sTask) SyncTaskFromGamelife(ctx context.Context) (out *model.SyncTaskOut, err error) { stores, err := dao.Stores.Ctx(ctx).Fields(dao.Stores.Columns().Id, dao.Stores.Columns().NetbarAccount).All() if err != nil { @@ -504,6 +613,7 @@ func (s *sTask) SyncTaskFromGamelife(ctx context.Context) (out *model.SyncTaskOu taskMap := gconv.Map(task) delete(taskMap, "PrizeList") delete(taskMap, "prize_list") + delete(taskMap, "reward") _, err = dao.Tasks.Ctx(ctx).Data(do.Tasks{ TaskId: task.TaskID, diff --git a/internal/model/gamelife.go b/internal/model/gamelife.go index 7e134cf..d0a6f4a 100644 --- a/internal/model/gamelife.go +++ b/internal/model/gamelife.go @@ -27,11 +27,11 @@ type GameTaskConfigParse struct { } type GameTask struct { - RuleDesc string `json:"rule_desc"` - TaskDesc string `json:"task_desc"` - LimitPrize int `json:"limit_prize"` - LimitNum int `json:"limit_num"` - PrizeList []Prize `json:"prize_list"` + RuleDesc string `json:"rule_desc"` + TaskDesc string `json:"task_desc"` + LimitPrize int `json:"limit_prize"` + LimitNum int `json:"limit_num"` + //PrizeList []Prize `json:"prize_list"` TaskID string `json:"task_id"` Title string `json:"title"` CycleStart int64 `json:"cycle_start"` @@ -42,6 +42,7 @@ type GameTask struct { UserTimes int64 `json:"user_times,omitempty"` GameTaskConfig GameTaskConfig `json:"game_task_config"` GameTaskConfigParse GameTaskConfigParse `json:"game_task_config_parse"` + Reward []SimpleReward `json:"reward,omitempty"` } type GameTaskResponse struct { diff --git a/internal/model/task.go b/internal/model/task.go index ee9f394..cee97bc 100644 --- a/internal/model/task.go +++ b/internal/model/task.go @@ -6,23 +6,27 @@ import ( ) type Task struct { - Id int64 `json:"-" orm:"id" description:"任务唯一标识符"` // 任务唯一标识符 - CreatedAt *gtime.Time `json:"-" orm:"created_at" description:"创建时间"` // 创建时间 - UpdatedAt *gtime.Time `json:"-" orm:"updated_at" description:"更新时间"` // 更新时间 - DeletedAt *gtime.Time `json:"-" orm:"deleted_at" description:"软删除时间戳"` // 软删除时间戳 - GameId int64 `json:"-" orm:"game_id" description:"游戏唯一id"` // 游戏唯一id - StoreId int64 `json:"-" orm:"store_id" description:"门店 id"` // 门店 id - Status int `json:"status" orm:"status" description:"1:启用 2:禁用"` //用户奖励状态,1 未完成,2 未领取,3 已领取,4-奖励限量且已抢光,5,用户限量 - QqNetbarTaskId string `json:"qqNetbarTaskId" orm:"qq_netbar_task_id" description:"QQ网吧任务ID"` // QQ网吧任务ID - QqNetbarTaskRules string `json:"qqNetbarTaskRules" orm:"qq_netbar_task_rules" description:"任务规则"` // 任务规则 - QqNetbarTaskMemo string `json:"qqNetbarTaskMemo" orm:"qq_netbar_task_memo" description:"任务描述"` // 任务描述 - QqNetbarTaskName string `json:"qqNetbarTaskName" orm:"qq_netbar_task_name" description:"QQ网吧任务名称"` // QQ网吧任务名称 - QqNetbarTargetName string `json:"qqNetbarTargetName" orm:"qq_netbar_target_name" description:"任务指标名称"` // 任务指标名称 - QqNetbarTargetTime int `json:"qqNetbarTargetTime" orm:"qq_netbar_target_time" description:"qq 网吧任务指标"` // qq 网吧任务指标 - StartTime int64 `json:"startTime" orm:"start_time" description:"任务开始时间"` // 任务开始时间 - EndTime int64 `json:"endTime" orm:"end_time" description:"任务结束时间"` // 任务结束时间 - Rewards []Reward `json:"rewards" orm:"-"` - UserTaskResult UserTaskResult `json:"userTaskResult,omitempty"` + Id int64 `json:"-" orm:"id" description:"任务唯一标识符"` // 任务唯一标识符 + CreatedAt *gtime.Time `json:"-" orm:"created_at" description:"创建时间"` // 创建时间 + UpdatedAt *gtime.Time `json:"-" orm:"updated_at" description:"更新时间"` // 更新时间 + DeletedAt *gtime.Time `json:"-" orm:"deleted_at" description:"软删除时间戳"` // 软删除时间戳 + GameId int64 `json:"-" orm:"game_id" description:"游戏唯一id"` // 游戏唯一id + StoreId int64 `json:"-" orm:"store_id" description:"门店 id"` // 门店 id + Status int `json:"status" orm:"status" description:"1:启用 2:禁用"` //用户奖励状态,1 未完成,2 未领取,3 已领取,4-奖励限量且已抢光,5,用户限量 + //QqNetbarTaskId string `json:"qqNetbarTaskId" orm:"qq_netbar_task_id" description:"QQ网吧任务ID"` // QQ网吧任务ID + //QqNetbarTaskRules string `json:"qqNetbarTaskRules" orm:"qq_netbar_task_rules" description:"任务规则"` // 任务规则 + //QqNetbarTaskMemo string `json:"qqNetbarTaskMemo" orm:"qq_netbar_task_memo" description:"任务描述"` // 任务描述 + //QqNetbarTaskName string `json:"qqNetbarTaskName" orm:"qq_netbar_task_name" description:"QQ网吧任务名称"` // QQ网吧任务名称 + //QqNetbarTargetName string `json:"qqNetbarTargetName" orm:"qq_netbar_target_name" description:"任务指标名称"` // 任务指标名称 + //QqNetbarTargetTime int `json:"qqNetbarTargetTime" orm:"qq_netbar_target_time" description:"qq 网吧任务指标"` // qq 网吧任务指标 + //StartTime int64 `json:"startTime" orm:"start_time" description:"任务开始时间"` // 任务开始时间 + //EndTime int64 `json:"endTime" orm:"end_time" description:"任务结束时间"` // 任务结束时间 + Rewards []Reward `json:"rewards" orm:"-"` + //UserTaskResult UserTaskResult `json:"userTaskResult,omitempty"` + TaskId string `json:"taskId" orm:"task_id" description:"任务 id"` // 任务 id + TaskRewards []TaskReward `json:"taskRewards" orm:"with:task_id=task_id"` + Task string `json:"task" orm:"task" description:"任务"` // 任务 + GameTask GameTask `json:"gameTask"` } type UserTaskResult struct { @@ -117,3 +121,25 @@ type StoreData struct { StoreName string `json:"storeName" orm:"name"` NetbarAccount string `json:"netbarAccount" orm:"netbar_account"` } + +// GetTaskListV2In 获取任务列表入参 +type GetTaskListV2In struct { + NetBarAccount string `json:"netbar_account"` // 网关账号 + //Page int `json:"page"` // 分页索引 + //Size int `json:"size"` // 分页大小 + Pageidx string `json:"pageidx"` // 分页索引 + Num int `json:"num"` // + Gid int `json:"gid"` // 游戏唯一id + Source string `json:"source"` // 不能为空 + BrandId string `json:"brand_id"` // 品牌id(可选) + PopenId string `json:"POpenId"` + BindType int `json:"bindType"` // 1:QQ 2:微信 + IsBound int `json:"isBound"` // 是否绑定 0:否 1:是 + UserId int64 `json:"user_id"` + StoreId int64 `json:"store_id"` +} + +type GetTaskListV2Out struct { + PageIdx string `json:"pageidx"` + Data interface{} `json:"taskList"` +} diff --git a/internal/service/task.go b/internal/service/task.go index 1b55916..e1724d4 100644 --- a/internal/service/task.go +++ b/internal/service/task.go @@ -22,6 +22,8 @@ type ( // GetTask 完成任务 GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.GetTaskOut, err error) GetUserTaskRecordsList(ctx context.Context, in *model.UserTaskRecordsListIn) (out *model.UserTaskRecordsListOut, err error) + // GetTaskList PC-WEB获取任务列表 + GetTaskList(ctx context.Context, in *model.GetTaskListV2In) (out *model.GetTaskListV2Out, err error) SyncTaskFromGamelife(ctx context.Context) (out *model.SyncTaskOut, err error) } ) diff --git a/utility/myCasbin/casbin.go b/utility/myCasbin/casbin.go index 717a9ed..fff15ff 100644 --- a/utility/myCasbin/casbin.go +++ b/utility/myCasbin/casbin.go @@ -44,6 +44,7 @@ func init() { enforcer.AddPolicy("guest", "/x/task/ranking", "GET", "获取排行榜") enforcer.AddPolicy("guest", "/x/task/getNonLoginTaskList", "GET", "未登录获取任务列表") enforcer.AddPolicy("guest", "/x/reward/callback", "POST", "tencent回调") + enforcer.AddPolicy("guest", "/x/task/list", "GET", "获取任务列表") // 游戏列表 enforcer.AddPolicy("guest", "/x/game", "GET", "获取游戏列表") @@ -94,7 +95,7 @@ func init() { { // 门店:修改 - + enforcer.AddPolicy("store", "/x/task/sync", "POST", "同步任务") // 奖励类型 enforcer.AddPolicy("store", "/x/rewardType", "GET", "获取奖励类型列表") enforcer.AddPolicy("store", "/x/rewardType", "POST", "添加奖励类型")