新增获取用户完成任务列表,修改领取任务
This commit is contained in:
@ -51,10 +51,8 @@ type GetLoginTaskListRes struct {
|
||||
}
|
||||
|
||||
type ListReq struct {
|
||||
g.Meta `path:"/task/list" method:"get" tags:"Task" summary:"(PC)任务列表"`
|
||||
//StoreId int `json:"storeId" dc:"门店 id"`
|
||||
g.Meta `path:"/task/completed/list" method:"get" tags:"Task" summary:"(PC)用户任务已完成列表"`
|
||||
StoreId int `json:"storeId" dc:"门店 id"`
|
||||
Gid int `json:"gid" dc:"游戏唯一id"`
|
||||
Page int `json:"page" dc:"页数"`
|
||||
Size int `json:"size" dc:"条数"`
|
||||
}
|
||||
@ -75,9 +73,11 @@ type SelectorRes struct {
|
||||
|
||||
// GetTaskReq 添加任务记录
|
||||
type GetTaskReq struct {
|
||||
g.Meta `path:"/task/get" method:"post" tags:"Task" summary:"(PC)任务领取"`
|
||||
TaskId int `json:"taskId" v:"required#任务id不能为空" dc:"任务id"`
|
||||
StoreId int `json:"storeId" v:"required#门店 id不能为空" dc:"门店 id"`
|
||||
g.Meta `path:"/task/get" method:"post" tags:"Task" summary:"(PC)任务领取"`
|
||||
TaskId int `json:"taskId" v:"required#任务id不能为空" dc:"任务id"`
|
||||
StoreId int `json:"storeId" v:"required#门店 id不能为空" dc:"门店 id"`
|
||||
GameId int `json:"gid" v:"required#游戏唯一id不能为空" dc:"游戏唯一id"`
|
||||
TaskName string `json:"taskName" v:"required#任务名称不能为空" dc:"任务名称"`
|
||||
}
|
||||
|
||||
type GetTaskRes struct {
|
||||
|
||||
@ -10,7 +10,7 @@ import (
|
||||
|
||||
func (c *ControllerV1) List(ctx context.Context, req *v1.ListReq) (res *v1.ListRes, err error) {
|
||||
|
||||
out, err := service.Task().GetTaskList(ctx, &model.TaskListIn{Gid: req.Gid, StoreId: req.StoreId, Page: req.Page, Size: req.Size})
|
||||
out, err := service.Task().GetTaskCompletedList(ctx, &model.TaskListIn{StoreId: req.StoreId, Page: req.Page, Size: req.Size})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -13,9 +13,11 @@ func (c *ControllerV1) GetTask(ctx context.Context, req *v1.GetTaskReq) (res *v1
|
||||
|
||||
userId := g.RequestFromCtx(ctx).GetCtxVar("id").Int()
|
||||
out, err := service.Task().GetTask(ctx, &model.GetTaskIn{
|
||||
TaskId: req.TaskId,
|
||||
StoreId: req.StoreId,
|
||||
UserId: userId,
|
||||
TaskId: req.TaskId,
|
||||
StoreId: req.StoreId,
|
||||
UserId: userId,
|
||||
GameId: req.GameId,
|
||||
TaskName: req.TaskName,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@ -31,6 +31,8 @@ type UserTasksColumns struct {
|
||||
CompletedAt string // 任务完成时间
|
||||
DeletedAt string // 软删除时间戳
|
||||
StoreId string // 门店 id
|
||||
TaskName string // 任务名称
|
||||
GameId string // 游戏 id
|
||||
}
|
||||
|
||||
// userTasksColumns holds the columns for the table user_tasks.
|
||||
@ -45,6 +47,8 @@ var userTasksColumns = UserTasksColumns{
|
||||
CompletedAt: "completed_at",
|
||||
DeletedAt: "deleted_at",
|
||||
StoreId: "store_id",
|
||||
TaskName: "task_name",
|
||||
GameId: "game_id",
|
||||
}
|
||||
|
||||
// NewUserTasksDao creates and returns a new DAO object for table data access.
|
||||
|
||||
@ -210,6 +210,7 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (
|
||||
QqNetbarTargetTime: task.TargetTimes,
|
||||
StartTime: task.CycleStart,
|
||||
EndTime: task.CycleEnd,
|
||||
Status: task.Status,
|
||||
}
|
||||
data.UserTaskResult.Usertimes = task.UserTimes
|
||||
// 组装门店奖励数据
|
||||
@ -228,29 +229,27 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetTaskListIn) (
|
||||
}, err
|
||||
}
|
||||
|
||||
func (s *sTask) GetTaskList(ctx context.Context, in *model.TaskListIn) (out *model.TaskListOut, err error) {
|
||||
// GetTaskCompletedList 获取用户任务完成列表
|
||||
func (s *sTask) GetTaskCompletedList(ctx context.Context, in *model.TaskListIn) (out *model.TaskListOut, err error) {
|
||||
|
||||
var data []model.Task
|
||||
m := dao.UserTasks.Ctx(ctx)
|
||||
var data []model.UserTask
|
||||
var total int
|
||||
m := dao.Tasks.Ctx(ctx)
|
||||
|
||||
if in.StoreId != 0 {
|
||||
m = m.Where(do.Tasks{StoreId: in.StoreId})
|
||||
if in.StoreId > 0 {
|
||||
m = m.Where(dao.UserTasks.Columns().StoreId, in.StoreId)
|
||||
}
|
||||
|
||||
err = m.Page(in.Page, in.Size).Where(do.Tasks{GameId: in.Gid}).ScanAndCount(&data, &total, false)
|
||||
//err = m.Page(in.Page, in.Size).Fields(fmt.Sprintf("%s.*, %s.*,%s.*, %s.*", dao.UserTasks.Table(), dao.Users.Table(), dao.Stores.Table(), dao.Games.Table())).
|
||||
// LeftJoin(dao.Users.Table(), fmt.Sprintf("`%s`.`id` = `%s`.`user_id`", dao.Users.Table(), dao.UserTasks.Table())).
|
||||
// LeftJoin(dao.Stores.Table(), fmt.Sprintf("`%s`.`id` = `%s`.`store_id`", dao.Stores.Table(), dao.UserTasks.Table())).
|
||||
// LeftJoin(dao.Games.Table(), fmt.Sprintf("`%s`.`game_id` = `%s`.`game_id`", dao.Games.Table(), dao.UserTasks.Table())).WithAll().ScanAndCount(&data, &total, false)
|
||||
|
||||
err = m.Page(in.Page, in.Size).WithAll().ScanAndCount(&data, &total, false)
|
||||
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("任务列表获取失败")
|
||||
return nil, ecode.Fail.Sub("获取已完成任务列表失败")
|
||||
}
|
||||
|
||||
for i, v := range data {
|
||||
if err = dao.StoreTaskRewards.Ctx(ctx).Where(do.StoreTaskRewards{TaskId: v.Id, StoreId: in.StoreId}).LeftJoin(
|
||||
dao.Rewards.Table(),
|
||||
fmt.Sprintf("%s.%s = %s.%s", dao.Rewards.Table(), dao.Rewards.Columns().Id, dao.StoreTaskRewards.Table(), dao.StoreTaskRewards.Columns().RewardId),
|
||||
).Fields(fmt.Sprintf("%s.*", dao.Rewards.Table())).Scan(&data[i].NetbarRewards); err != nil {
|
||||
return nil, ecode.Fail.Sub("任务奖励获取失败")
|
||||
}
|
||||
}
|
||||
return &model.TaskListOut{
|
||||
List: data,
|
||||
Total: total,
|
||||
@ -280,7 +279,7 @@ func (s *sTask) GetSelectorList(ctx context.Context, in *model.SelectorIn) (out
|
||||
func (s *sTask) GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.GetTaskOut, err error) {
|
||||
|
||||
var userTask []*model.UserTask
|
||||
err = dao.UserTasks.Ctx(ctx).Where(do.UserTasks{UserId: in.UserId, TaskId: in.TaskId, StoreId: in.StoreId}).WhereNot("status", 3).Scan(&userTask)
|
||||
err = dao.UserTasks.Ctx(ctx).Where(do.UserTasks{UserId: in.UserId, TaskId: in.TaskId, StoreId: in.StoreId, GameId: in.GameId}).WhereNot("status", 3).Scan(&userTask)
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("查询用户该任务记录失败")
|
||||
}
|
||||
@ -302,6 +301,8 @@ func (s *sTask) GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.Ge
|
||||
StoreId: in.StoreId,
|
||||
Status: 1,
|
||||
SerialNumber: serialNumber,
|
||||
TaskName: in.TaskName,
|
||||
GameId: in.GameId,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
|
||||
@ -22,4 +22,6 @@ type UserTasks struct {
|
||||
CompletedAt *gtime.Time // 任务完成时间
|
||||
DeletedAt *gtime.Time // 软删除时间戳
|
||||
StoreId interface{} // 门店 id
|
||||
TaskName interface{} // 任务名称
|
||||
GameId interface{} // 游戏 id
|
||||
}
|
||||
|
||||
@ -20,4 +20,6 @@ type UserTasks struct {
|
||||
CompletedAt *gtime.Time `json:"completedAt" orm:"completed_at" description:"任务完成时间"` // 任务完成时间
|
||||
DeletedAt *gtime.Time `json:"deletedAt" orm:"deleted_at" description:"软删除时间戳"` // 软删除时间戳
|
||||
StoreId int64 `json:"storeId" orm:"store_id" description:"门店 id"` // 门店 id
|
||||
TaskName string `json:"taskName" orm:"task_name" description:"任务名称"` // 任务名称
|
||||
GameId int64 `json:"gameId" orm:"game_id" description:"游戏 id"` // 游戏 id
|
||||
}
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package model
|
||||
|
||||
import "github.com/gogf/gf/v2/frame/g"
|
||||
|
||||
type Game struct {
|
||||
g.Meta `orm:"table:games"`
|
||||
GameId int64 `json:"gameId" orm:"game_id"` // 腾讯游戏 id
|
||||
GameName string `json:"gameName" orm:"game_name"` // 游戏名称
|
||||
GameCode string `json:"gameCode" orm:"game_code"` // 游戏代号
|
||||
|
||||
@ -14,7 +14,7 @@ type Store struct {
|
||||
ContactName string `json:"contactName" orm:"contact_name" dc:"联系人姓名"`
|
||||
ContactPhone string `json:"contactPhone" orm:"contact_phone" dc:"联系人电话"`
|
||||
Status int `json:"status" orm:"status,default:1" dc:"状态:1=正常营业,2=暂停营业,3=已关闭"`
|
||||
NetbarAccount string `json:"netbarAccount" orm:"netbar_account" dc:"网吧网关账号"`
|
||||
NetbarAccount string `json:"netbarAccount" orm:"netbar_account" dc:"网吧网关账号"`
|
||||
}
|
||||
|
||||
type StoreCreateIn struct {
|
||||
|
||||
@ -12,7 +12,7 @@ type Task struct {
|
||||
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:"-" orm:"status" description:"1:启用 2:禁用"` // 1:启用 2:禁用
|
||||
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:"任务描述"` // 任务描述
|
||||
@ -110,8 +110,9 @@ type SelectorOut struct {
|
||||
}
|
||||
|
||||
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"`
|
||||
g.Meta `orm:"table:stores"`
|
||||
Id int `json:"id" orm:"id"`
|
||||
MerchantId int `json:"merchantId" orm:"merchant_id"`
|
||||
StoreName string `json:"storeName" orm:"name"`
|
||||
NetbarAccount string `json:"netbarAccount" orm:"netbar_account"`
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"time"
|
||||
|
||||
"github.com/gogf/gf/v2/os/gtime"
|
||||
@ -8,6 +9,7 @@ import (
|
||||
|
||||
// User 用户信息
|
||||
type User struct {
|
||||
g.Meta `orm:"table:users"`
|
||||
Id int64 `json:"id" orm:"id,primary"` // 用户ID
|
||||
Username string `json:"username" orm:"username,not null"` // 用户名
|
||||
Nickname string `json:"nickname" orm:"nickname"` // 昵称
|
||||
|
||||
@ -7,16 +7,21 @@ import (
|
||||
|
||||
type UserTask struct {
|
||||
g.Meta `orm:"table:task"`
|
||||
Id int `orm:"column:id" json:"id"` //
|
||||
UserId int `orm:"column:user_id" json:"userId"` // 用户 id
|
||||
TaskId int `orm:"column:task_id" json:"taskId"` // 任务 id
|
||||
Status int `orm:"column:status" json:"status"` // 状态 1:待完成 2:完成
|
||||
SerialNumber string `orm:"column:serial_number" json:"serialNumber"` // 流水号
|
||||
StoreId int `orm:"column:store_id" json:"storeId"` // 门店 id
|
||||
CreatedAt *gtime.Time `orm:"column:created_at" json:"createdAt"`
|
||||
UpdatedAt *gtime.Time `orm:"column:updated_at" json:"updatedAt"`
|
||||
CompletedAT *gtime.Time `orm:"column:completed_at" json:"completedAt"`
|
||||
DeletedAt *gtime.Time `orm:"column:deleted_at" json:"deletedAt"`
|
||||
Id int64 `json:"id" orm:"id" description:"用户任务唯一标识符"` // 用户任务唯一标识符
|
||||
UserId int64 `json:"userId" orm:"user_id" description:"用户ID"` // 用户ID
|
||||
TaskId string `json:"taskId" orm:"task_id" description:"腾讯任务ID"` // 腾讯任务ID
|
||||
Status int `json:"status" orm:"status" description:"任务状态:1=进行中,2=已完成中,3=未完成"` // 任务状态:1=进行中,2=已完成中,3=未完成
|
||||
SerialNumber string `json:"serialNumber" orm:"serial_number" description:"流水号,确保用户任务唯一性"` // 流水号,确保用户任务唯一性
|
||||
CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` // 创建时间
|
||||
UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` // 更新时间
|
||||
CompletedAt *gtime.Time `json:"completedAt" orm:"completed_at" description:"任务完成时间"` // 任务完成时间
|
||||
DeletedAt *gtime.Time `json:"deletedAt" orm:"deleted_at" description:"软删除时间戳"` // 软删除时间戳
|
||||
StoreId int64 `json:"storeId" orm:"store_id" description:"门店 id"` // 门店 id
|
||||
TaskName string `json:"taskName" orm:"task_name" description:"任务名称"` // 任务名称
|
||||
GameId int64 `json:"gameId" orm:"game_id" description:"游戏 id"` // 游戏 id
|
||||
User User `json:"user" orm:"with:id=user_id"`
|
||||
Game Game `json:"game" orm:"with:game_id=game_id"`
|
||||
// Store Store `json:"store" orm:"with:id=store_id"`
|
||||
}
|
||||
|
||||
// UserTaskRankingIn 任务排行榜入参
|
||||
@ -53,9 +58,11 @@ type LoginUserRankingNum struct {
|
||||
|
||||
// GetTaskIn 添加任务记录入参
|
||||
type GetTaskIn struct {
|
||||
TaskId int `json:"taskId"`
|
||||
StoreId int `json:"storeId"`
|
||||
UserId int `json:"userId"`
|
||||
TaskId int `json:"taskId"`
|
||||
StoreId int `json:"storeId"`
|
||||
UserId int `json:"userId"`
|
||||
TaskName string `json:"taskName"`
|
||||
GameId int `json:"gid"`
|
||||
}
|
||||
|
||||
type GetTaskOut struct {
|
||||
|
||||
@ -16,7 +16,8 @@ type (
|
||||
// GetNonLoginTaskList 获取下发到指定网吧的任务列表(未登录)
|
||||
GetNonLoginTaskList(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)
|
||||
// GetTaskCompletedList 获取用户任务完成列表
|
||||
GetTaskCompletedList(ctx context.Context, in *model.TaskListIn) (out *model.TaskListOut, err error)
|
||||
GetSelectorList(ctx context.Context, in *model.SelectorIn) (out *[]model.SelectorOut, err error)
|
||||
// GetTask 完成任务
|
||||
GetTask(ctx context.Context, in *model.GetTaskIn) (out *model.GetTaskOut, err error)
|
||||
|
||||
@ -46,7 +46,7 @@ func init() {
|
||||
|
||||
// 游戏列表
|
||||
enforcer.AddPolicy("guest", "/x/game", "GET", "获取游戏列表")
|
||||
enforcer.AddPolicy("guest", "/x/task/list", "GET", "获取游戏列表")
|
||||
enforcer.AddPolicy("guest", "/x/task/completed/list", "GET", "获取游戏列表")
|
||||
}
|
||||
// 用户
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user