diff --git a/api/reward/reward.go b/api/reward/reward.go index 8379a54..012bc14 100644 --- a/api/reward/reward.go +++ b/api/reward/reward.go @@ -12,7 +12,7 @@ import ( type IRewardV1 interface { List(ctx context.Context, req *v1.ListReq) (res *v1.ListRes, err error) - ListInternetCharge(ctx context.Context, req *v1.ListInternetChargeReq) (res *v1.ListRes, err error) + ListInternetCharge(ctx context.Context, req *v1.ListInternetChargeReq) (res *v1.ListInternetChargeRes, err error) Create(ctx context.Context, req *v1.CreateReq) (res *v1.CreateRes, err error) Update(ctx context.Context, req *v1.UpdateReq) (res *v1.UpdateRes, err error) Delete(ctx context.Context, req *v1.DeleteReq) (res *v1.DeleteRes, err error) @@ -24,4 +24,5 @@ type IRewardV1 interface { OperateTaskReward(ctx context.Context, req *v1.OperateTaskRewardReq) (res *v1.OperateTaskRewardRes, err error) GetUserRewardsCanClaimList(ctx context.Context, req *v1.GetUserRewardsCanClaimListReq) (res *v1.GetUserRewardsCanClaimListRes, err error) NetfeeCallback(ctx context.Context, req *v1.NetfeeCallbackReq) (res *v1.NetfeeCallbackRes, err error) + NetfeeList(ctx context.Context, req *v1.NetfeeListReq) (res *v1.NetfeeListRes, err error) } diff --git a/api/reward/v1/reward.go b/api/reward/v1/reward.go index 645a09b..0b34881 100644 --- a/api/reward/v1/reward.go +++ b/api/reward/v1/reward.go @@ -30,6 +30,11 @@ type ListRes struct { Total int `json:"total" dc:"总数"` } +type ListInternetChargeRes struct { + List interface{} `json:"list" dc:"奖励列表"` + Total int `json:"total" dc:"总数"` +} + type CreateReq struct { g.Meta `path:"/reward" method:"post" tags:"Backend/Reward" summary:"(系统、商户、门店后台)创建奖励"` StoreId int64 `json:"storeId" dc:"门店ID"` @@ -322,3 +327,17 @@ type NetfeeCallbackReq struct { type NetfeeCallbackRes struct { Success bool `json:"success" dc:"是否成功"` } + +type NetfeeListReq struct { + g.Meta `path:"/reward/netfeeList" method:"get" tags:"Backend/Reward" summary:"(门店,商户)获取门店网费奖励信息列表"` + Page int `json:"page"` + Size int `json:"size"` + StoreId int64 `json:"storeId" v:"required#门店 id不能为空"` + StartTime *gtime.Time `json:"startTime"` + EndTime *gtime.Time `json:"endTime"` +} + +type NetfeeListRes struct { + List interface{} `json:"list"` + Total int `json:"total"` +} diff --git a/internal/controller/reward/reward_v1_list_internet_charge.go b/internal/controller/reward/reward_v1_list_internet_charge.go index 7f0cfe9..d806ccb 100644 --- a/internal/controller/reward/reward_v1_list_internet_charge.go +++ b/internal/controller/reward/reward_v1_list_internet_charge.go @@ -9,7 +9,7 @@ import ( "server/api/reward/v1" ) -func (c *ControllerV1) ListInternetCharge(ctx context.Context, req *v1.ListInternetChargeReq) (res *v1.ListRes, err error) { +func (c *ControllerV1) ListInternetCharge(ctx context.Context, req *v1.ListInternetChargeReq) (res *v1.ListInternetChargeRes, err error) { fromCtx := g.RequestFromCtx(ctx) operatorId := fromCtx.GetCtxVar("id").Int64() operatorRole := fromCtx.GetCtxVar("role").String() @@ -23,7 +23,7 @@ func (c *ControllerV1) ListInternetCharge(ctx context.Context, req *v1.ListInter if err != nil { return nil, err } - return &v1.ListRes{ + return &v1.ListInternetChargeRes{ List: out.List, Total: out.Total, }, nil diff --git a/internal/controller/reward/reward_v1_netfee_list.go b/internal/controller/reward/reward_v1_netfee_list.go new file mode 100644 index 0000000..71e1e07 --- /dev/null +++ b/internal/controller/reward/reward_v1_netfee_list.go @@ -0,0 +1,27 @@ +package reward + +import ( + "context" + "server/internal/model" + + "server/api/reward/v1" + "server/internal/service" +) + +func (c *ControllerV1) NetfeeList(ctx context.Context, req *v1.NetfeeListReq) (res *v1.NetfeeListRes, err error) { + + out, err := service.Reward().GetNetfeeList(ctx, &model.NetfeeListIn{ + Page: req.Page, + Size: req.Size, + StartTime: req.StartTime, + EndTime: req.EndTime, + StoreId: req.StoreId, + }) + if err != nil { + return nil, err + } + return &v1.NetfeeListRes{ + List: out.List, + Total: out.Total, + }, nil +} diff --git a/internal/logic/reward/reward.go b/internal/logic/reward/reward.go index 2a43ac2..0191b0d 100644 --- a/internal/logic/reward/reward.go +++ b/internal/logic/reward/reward.go @@ -1213,3 +1213,32 @@ func (s *sReward) NetfeeCallback(ctx context.Context, in *model.NetfeeCallbackIn return &model.NetfeeCallbackOut{Success: true}, nil } + +func (s *sReward) GetNetfeeList(ctx context.Context, in *model.NetfeeListIn) (out *model.NetfeeListOut, err error) { + + // 查询奖励类型为网费的奖励 id + value, err := dao.RewardTypes.Ctx(ctx).Where(do.RewardTypes{Code: "internet_fee"}).Fields(dao.RewardTypes.Columns().Id).Value() + if err != nil { + return nil, ecode.Fail.Sub("查询奖励类型id失败") + } + + if value.IsEmpty() { + return nil, ecode.Fail.Sub("查询奖励类型id为空") + } + + var data []model.NetfeeRewards + var total int + m := dao.Rewards.Ctx(ctx) + if in.StartTime != nil && in.EndTime != nil { + m = m.WhereBetween(dao.Rewards.Columns().UpdatedAt, in.StartTime, in.EndTime) + } + + if err = m.Page(in.Page, in.Size).Where(do.Rewards{RewardTypeId: value.Int64(), StoreId: in.StoreId}).WithAll().ScanAndCount(&data, &total, false); err != nil { + return nil, ecode.Fail.Sub("查询网费奖励列表失败") + } + + return &model.NetfeeListOut{ + List: data, + Total: total, + }, nil +} diff --git a/internal/logic/task/task.go b/internal/logic/task/task.go index 65f9101..0d70eff 100644 --- a/internal/logic/task/task.go +++ b/internal/logic/task/task.go @@ -721,7 +721,6 @@ func (s *sTask) GetTaskList(ctx context.Context, in *model.GetTaskListV2In) (out TaskName: v.Title, GameId: in.Gid, TaskType: v.GameTaskConfig.TimeType, - CompletedAt: completedTime, }).InsertAndGetId() if err != nil { return ecode.Fail.Sub("创建用户任务记录失败") diff --git a/internal/model/reward.go b/internal/model/reward.go index 7bec6dd..ab48933 100644 --- a/internal/model/reward.go +++ b/internal/model/reward.go @@ -34,6 +34,27 @@ type Reward struct { DeletedAt *gtime.Time `json:"deletedAt" orm:"deleted_at" description:"删除时间(软删除)"` // 删除时间(软删除) } +type NetfeeRewards struct { + g.Meta `orm:"table:rewards"` + Id int64 `json:"id" orm:"id" description:"奖励ID"` // 奖励ID + RewardTypeId int64 `json:"rewardTypeId" orm:"reward_type_id" description:"奖励类型ID,关联 reward_types 表"` // 奖励类型ID,关联 reward_types 表 + NetfeeUserTaskRewards NetfeeUserTaskRewards `json:"netfeeUserTaskRewards,omitempty" orm:"with:reward_id=id"` +} + +type NetfeeUserTaskRewards struct { + g.Meta `orm:"table:user_task_rewards"` + Id int64 `json:"id" orm:"id" description:"用户任务奖励记录唯一标识符"` // 用户任务奖励记录唯一标识符 + UserTaskId int64 `json:"userTaskId" orm:"user_task_id" description:"关联用户任务记录ID"` // 关联用户任务记录ID + RewardId int64 `json:"rewardId" orm:"reward_id" description:"奖励ID"` // 奖励ID + RewardName string `json:"rewardName" orm:"reward_name" description:"奖励名称冗余字段"` // 奖励名称冗余字段 + Status int `json:"status" orm:"status" description:"状态:1=待用户完成任务,2=待领取,3=已领取, 待兑换,4=已过期,5=发放失败, 6=结束"` // 状态:1=待用户完成任务,2=待领取,3=已领取, 待兑换,4=已过期,5=发放失败, 6=结束 + CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` // 创建时间 + UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` // 更新时间 + IssueQuantity int `json:"issueQuantity" orm:"issue_quantity" description:""` // + RewardTypeId int64 `json:"rewardTypeId" orm:"reward_type_id" description:"奖励类型 id"` + UsetTaskRecord UserTaskRecord `json:"userTaskRecord,omitempty" orm:"with:id=user_task_id"` +} + type InternetChargeReward struct { g.Meta `orm:"table:rewards"` Id int64 `json:"id" orm:"id" description:"奖励ID"` // 奖励ID @@ -280,3 +301,16 @@ type OperateTaskRewardIn struct { type OperateTaskRewardOut struct { Success bool } + +type NetfeeListIn struct { + Page int + Size int + StoreId int64 + StartTime *gtime.Time + EndTime *gtime.Time +} + +type NetfeeListOut struct { + List interface{} + Total int +} diff --git a/internal/model/userTask.go b/internal/model/userTask.go index 54e0f20..7ab57ed 100644 --- a/internal/model/userTask.go +++ b/internal/model/userTask.go @@ -49,7 +49,7 @@ type UserTask2 struct { } type UserTaskRecord struct { - g.Meta `orm:"table:task"` + g.Meta `orm:"table:user_tasks"` 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 diff --git a/internal/service/reward.go b/internal/service/reward.go index 263e844..dab7cd5 100644 --- a/internal/service/reward.go +++ b/internal/service/reward.go @@ -338,6 +338,7 @@ type ( CallBack(ctx context.Context, in *model.RewardCallbackIn) (out *model.RewardCallbackOut, err error) GetUserClaimList(ctx context.Context, in *model.GetUserClaimListIn) (out *model.GetUserClaimListOut, err error) NetfeeCallback(ctx context.Context, in *model.NetfeeCallbackIn) (out *model.NetfeeCallbackOut, err error) + GetNetfeeList(ctx context.Context, in *model.NetfeeListIn) (out *model.NetfeeListOut, err error) } ) diff --git a/utility/myCasbin/casbin.go b/utility/myCasbin/casbin.go index 02b3945..abd6dd3 100644 --- a/utility/myCasbin/casbin.go +++ b/utility/myCasbin/casbin.go @@ -115,6 +115,9 @@ func init() { enforcer.AddPolicy("store", "/x/reward/taskReward", "POST", "添加/删除门店任务奖励") enforcer.AddPolicy("store", "/x/upload/reward", "POST", "上传奖励图片") + // 获取网费奖励列表 + enforcer.AddPolicy("store", "/x/reward/netfeeList", "GET", "获取门店网费奖励信息列表") + // 门店角色 enforcer.AddPolicy("store", "/x/store/role", "GET", "获取门店角色列表") enforcer.AddPolicy("store", "/x/store/role", "POST", "添加门店角色")