diff --git a/api/task/task.go b/api/task/task.go index 629b1e3..8999042 100644 --- a/api/task/task.go +++ b/api/task/task.go @@ -15,4 +15,5 @@ type ITaskV1 interface { NonLoginTaskList(ctx context.Context, req *v1.NonLoginTaskListReq) (res *v1.NonLoginTaskListRes, err error) GetLoginTaskList(ctx context.Context, req *v1.GetLoginTaskListReq) (res *v1.GetLoginTaskListRes, err error) List(ctx context.Context, req *v1.ListReq) (res *v1.ListRes, err error) + Selector(ctx context.Context, req *v1.SelectorReq) (res *v1.SelectorRes, err error) } diff --git a/api/task/v1/task.go b/api/task/v1/task.go index a137344..82c3f0a 100644 --- a/api/task/v1/task.go +++ b/api/task/v1/task.go @@ -48,7 +48,8 @@ type GetLoginTaskListRes struct { } type ListReq struct { - g.Meta `path:"/task/list" method:"get" tags:"Task" summary:"(PC)任务列表"` + g.Meta `path:"/task/list" method:"get" tags:"Task" summary:"(PC)任务列表"` + //StoreId int `json:"storeId" dc:"门店 id"` StoreId int `json:"storeId" v:"required#门店 id不能为空" dc:"门店 id"` Gid int `json:"gid" v:"required#游戏唯一id不能为空" dc:"游戏唯一id"` Page int `json:"page" dc:"页数"` @@ -59,3 +60,12 @@ type ListRes struct { List interface{} `json:"list"` Total int `json:"total"` } + +// SelectorReq 系统管理员任务列表二级选择器 +type SelectorReq struct { + g.Meta `path:"/task/selector" method:"get" tags:"Task" summary:"(PC)系统管理员任务列表二级选择器"` +} + +type SelectorRes struct { + List interface{} `json:"list"` +} diff --git a/internal/controller/task/task_v1_selector.go b/internal/controller/task/task_v1_selector.go new file mode 100644 index 0000000..484ac7f --- /dev/null +++ b/internal/controller/task/task_v1_selector.go @@ -0,0 +1,18 @@ +package task + +import ( + "context" + "server/internal/model" + "server/internal/service" + + "server/api/task/v1" +) + +func (c *ControllerV1) Selector(ctx context.Context, req *v1.SelectorReq) (res *v1.SelectorRes, err error) { + + out, err := service.Task().GetSelectorList(ctx, &model.SelectorIn{}) + if err != nil { + return nil, err + } + return &v1.SelectorRes{List: out}, nil +} diff --git a/internal/logic/task/task.go b/internal/logic/task/task.go index 59ffe29..26f2b24 100644 --- a/internal/logic/task/task.go +++ b/internal/logic/task/task.go @@ -231,3 +231,14 @@ func (s *sTask) GetTaskList(ctx context.Context, in *model.TaskListIn) (out *mod Total: total, }, nil } + +func (s *sTask) GetSelectorList(ctx context.Context, in *model.SelectorIn) (out *[]model.SelectorOut, err error) { + + data := make([]model.SelectorOut, 0) + err = dao.Merchants.Ctx(ctx).WithAll().Scan(&data) + + if err != nil { + return nil, ecode.Fail.Sub("获取选择列表失败") + } + return &data, nil +} diff --git a/internal/model/task.go b/internal/model/task.go index b7c41b1..b9ffa5c 100644 --- a/internal/model/task.go +++ b/internal/model/task.go @@ -1,6 +1,9 @@ package model -import "github.com/gogf/gf/v2/os/gtime" +import ( + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" +) type Tasks struct { Id int64 `json:"id" orm:"id" description:"任务唯一标识符"` // 任务唯一标识符 @@ -39,7 +42,7 @@ type GetLoginTaskListIn struct { POpenId string `json:"POpenId"` //POpenId } -// 获取腾讯游戏任务列表已登录入参 +// GetTenCentLoginTaskListIn 获取腾讯游戏任务列表已登录入参 type GetTenCentLoginTaskListIn struct { NetBarAccount string `json:"netbar_account"` //网关账号 Pageidx string `json:"pageidx"` // 分页索引 @@ -54,7 +57,7 @@ type GetLoginTaskListOut struct { Data interface{} `json:"data"` } -// 定义一个与 JSON 结构匹配的结构体 +// MyData 定义一个与 JSON 结构匹配的结构体 type MyData struct { TaskId string `json:"task_id"` //GameId int `json:"game_id"` @@ -76,3 +79,22 @@ type TaskListOut struct { List interface{} `json:"list"` Total int `json:"total"` } + +// SelectorIn 系统管理员任务列表二级选择器 +type SelectorIn struct { +} + +type SelectorOut struct { + g.Meta `orm:"table:merchants"` + Id int `json:"id" orm:"id"` + MerchantName string `json:"merchantName" orm:"name"` + StoreDatas []StoreData `json:"StoreDatas" orm:"with:merchant_id=id"` + //StoreData []StoreData `json:"storeData"` +} + +type StoreData struct { + g.Meta `orm:"table:stores"` + Id int `json:"id" orm:"id"` + MerchantId int `json:"merchantId" orm:"merchant_id"` + StoreName string `json:"storeName" orm:"name"` +} diff --git a/internal/service/task.go b/internal/service/task.go index 845356e..b8e9e83 100644 --- a/internal/service/task.go +++ b/internal/service/task.go @@ -17,6 +17,7 @@ type ( GetNonLoginTaskList(ctx context.Context, in *model.GetNonLoginTaskListIn) (out *model.GetNonLoginTaskListOut, err error) GetLoginTaskList(ctx context.Context, in *model.GetLoginTaskListIn) (out *model.GetLoginTaskListOut, 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) } ) diff --git a/utility/myCasbin/casbin.go b/utility/myCasbin/casbin.go index 0d36bac..1fa12c5 100644 --- a/utility/myCasbin/casbin.go +++ b/utility/myCasbin/casbin.go @@ -135,6 +135,9 @@ func init() { enforcer.AddPolicy("admin", "/x/game", "POST", "管理员创建门店奖励") enforcer.AddPolicy("admin", "/x/game/*", "DELETE", "管理员删除门店单个奖励") enforcer.AddPolicy("admin", "/x/game", "PUT", "管理员修改单个门店奖励") + + // 任务 + enforcer.AddPolicy("admin", "/x/task/selector", "GET", "管理员获取任务列表二级选择器") } instance = &myCasbin{Enforcer: enforcer}