gamelife 自定义客户端集成游戏任务接口
This commit is contained in:
@ -16,6 +16,7 @@ import (
|
||||
_ "server/internal/logic/store"
|
||||
_ "server/internal/logic/storeAdmin"
|
||||
_ "server/internal/logic/storeRole"
|
||||
_ "server/internal/logic/storeTaskReward"
|
||||
_ "server/internal/logic/task"
|
||||
_ "server/internal/logic/upload"
|
||||
_ "server/internal/logic/user"
|
||||
|
||||
@ -293,6 +293,9 @@ func (s *sReward) List(ctx context.Context, in *model.RewardListIn) (out *model.
|
||||
if in.Name != "" {
|
||||
orm = orm.WhereLike(dao.Rewards.Columns().Name, "%"+in.Name+"%")
|
||||
}
|
||||
if in.RewardTypeId != 0 {
|
||||
orm = orm.Where(do.Rewards{RewardTypeId: in.RewardTypeId})
|
||||
}
|
||||
|
||||
total, err := orm.Count()
|
||||
if err != nil {
|
||||
|
||||
142
internal/logic/storeTaskReward/storeTaskReward.go
Normal file
142
internal/logic/storeTaskReward/storeTaskReward.go
Normal file
@ -0,0 +1,142 @@
|
||||
package storeTaskReward
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"server/internal/consts"
|
||||
"server/internal/dao"
|
||||
"server/internal/model"
|
||||
"server/internal/model/do"
|
||||
"server/internal/service"
|
||||
"server/utility/ecode"
|
||||
)
|
||||
|
||||
type sStoreTaskReward struct {
|
||||
}
|
||||
|
||||
func New() service.IStoreTaskReward {
|
||||
return &sStoreTaskReward{}
|
||||
}
|
||||
func init() {
|
||||
service.RegisterStoreTaskReward(New())
|
||||
}
|
||||
func (s *sStoreTaskReward) Create(ctx context.Context, in *model.StoreTaskRewardCreateIn) (out *model.StoreTaskRewardCreateOut, err error) {
|
||||
if in.OperatorRole != consts.MerchantRoleCode && in.OperatorRole != consts.StoreRoleCode {
|
||||
return nil, ecode.Params.Sub("仅允许商户或门店角色操作")
|
||||
}
|
||||
|
||||
// 检查操作者是否有该门店的操作权限
|
||||
switch in.OperatorRole {
|
||||
case consts.MerchantRoleCode:
|
||||
exist, err := dao.MerchantAdmins.Ctx(ctx).
|
||||
Where(do.MerchantAdmins{Id: in.OperatorId}).
|
||||
LeftJoin(
|
||||
dao.Stores.Table(),
|
||||
fmt.Sprintf(
|
||||
"%s.%s = %s.%s",
|
||||
dao.MerchantAdmins.Table(), dao.MerchantAdmins.Columns().MerchantId,
|
||||
dao.Stores.Table(), dao.Stores.Columns().MerchantId,
|
||||
),
|
||||
).
|
||||
Where(fmt.Sprintf("%s.%s = ?", dao.Stores.Table(), dao.Stores.Columns().Id), in.StoreId).
|
||||
Exist()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("校验商户权限失败")
|
||||
}
|
||||
if !exist {
|
||||
return nil, ecode.Params.Sub("商户无操作该门店权限")
|
||||
}
|
||||
|
||||
case consts.StoreRoleCode:
|
||||
exist, err := dao.StoreAdmins.Ctx(ctx).
|
||||
Where(do.StoreAdmins{Id: in.OperatorId}).
|
||||
LeftJoin(
|
||||
dao.Stores.Table(),
|
||||
fmt.Sprintf(
|
||||
"%s.%s = %s.%s",
|
||||
dao.StoreAdmins.Table(), dao.StoreAdmins.Columns().StoreId,
|
||||
dao.Stores.Table(), dao.Stores.Columns().Id,
|
||||
),
|
||||
).
|
||||
Where(fmt.Sprintf("%s.%s = ?", dao.Stores.Table(), dao.Stores.Columns().Id), in.StoreId).
|
||||
Exist()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("校验门店权限失败")
|
||||
}
|
||||
if !exist {
|
||||
return nil, ecode.Params.Sub("门店管理员无权限")
|
||||
}
|
||||
}
|
||||
|
||||
id, err := dao.StoreTaskRewards.Ctx(ctx).Data(do.StoreTaskRewards{
|
||||
StoreId: in.StoreId,
|
||||
TaskId: in.TaskId,
|
||||
RewardId: in.RewardId,
|
||||
}).InsertAndGetId()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("创建门店任务奖励失败, err:" + err.Error())
|
||||
}
|
||||
return &model.StoreTaskRewardCreateOut{Id: id}, nil
|
||||
}
|
||||
|
||||
func (s *sStoreTaskReward) Delete(ctx context.Context, in *model.StoreTaskRewardDeleteIn) (out *model.StoreTaskRewardDeleteOut, err error) {
|
||||
if in.OperatorRole != consts.MerchantRoleCode && in.OperatorRole != consts.StoreRoleCode {
|
||||
return nil, ecode.Params.Sub("仅允许商户或门店角色操作")
|
||||
}
|
||||
|
||||
// 检查操作者是否有该门店的操作权限
|
||||
value, err := dao.StoreTaskRewards.Ctx(ctx).WherePri(in.Id).Fields(dao.StoreTaskRewards.Columns().StoreId).Value()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("查询门店任务奖励失败, err:" + err.Error())
|
||||
}
|
||||
if value.IsEmpty() {
|
||||
return nil, ecode.Params.Sub("门店任务奖励不存在")
|
||||
}
|
||||
switch in.OperatorRole {
|
||||
case consts.MerchantRoleCode:
|
||||
exist, err := dao.MerchantAdmins.Ctx(ctx).
|
||||
Where(do.MerchantAdmins{Id: in.OperatorId}).
|
||||
LeftJoin(
|
||||
dao.Stores.Table(),
|
||||
fmt.Sprintf(
|
||||
"%s.%s = %s.%s",
|
||||
dao.MerchantAdmins.Table(), dao.MerchantAdmins.Columns().MerchantId,
|
||||
dao.Stores.Table(), dao.Stores.Columns().MerchantId,
|
||||
),
|
||||
).
|
||||
Where(fmt.Sprintf("%s.%s = ?", dao.Stores.Table(), dao.Stores.Columns().Id), value.Int64()).
|
||||
Exist()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("校验商户权限失败")
|
||||
}
|
||||
if !exist {
|
||||
return nil, ecode.Params.Sub("商户无操作该门店权限")
|
||||
}
|
||||
|
||||
case consts.StoreRoleCode:
|
||||
exist, err := dao.StoreAdmins.Ctx(ctx).
|
||||
Where(do.StoreAdmins{Id: in.OperatorId}).
|
||||
LeftJoin(
|
||||
dao.Stores.Table(),
|
||||
fmt.Sprintf(
|
||||
"%s.%s = %s.%s",
|
||||
dao.StoreAdmins.Table(), dao.StoreAdmins.Columns().StoreId,
|
||||
dao.Stores.Table(), dao.Stores.Columns().Id,
|
||||
),
|
||||
).
|
||||
Where(fmt.Sprintf("%s.%s = ?", dao.Stores.Table(), dao.Stores.Columns().Id), value.Int64()).
|
||||
Exist()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("校验门店权限失败")
|
||||
}
|
||||
if !exist {
|
||||
return nil, ecode.Params.Sub("门店管理员无权限")
|
||||
}
|
||||
}
|
||||
_, err = dao.StoreTaskRewards.Ctx(ctx).WherePri(in.Id).Delete()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("删除门店任务奖励失败")
|
||||
}
|
||||
|
||||
return &model.StoreTaskRewardDeleteOut{Success: true}, nil
|
||||
}
|
||||
@ -231,7 +231,7 @@ func (s *sTask) GetLoginTaskList(ctx context.Context, in *model.GetLoginTaskList
|
||||
|
||||
func (s *sTask) GetTaskList(ctx context.Context, in *model.TaskListIn) (out *model.TaskListOut, err error) {
|
||||
|
||||
var data []model.Tasks
|
||||
var data []model.Task
|
||||
var total int
|
||||
m := dao.Tasks.Ctx(ctx)
|
||||
|
||||
@ -239,11 +239,19 @@ func (s *sTask) GetTaskList(ctx context.Context, in *model.TaskListIn) (out *mod
|
||||
m = m.Where(do.Tasks{StoreId: in.StoreId})
|
||||
}
|
||||
|
||||
err = m.Page(in.Page, in.Size).Where(do.Tasks{GameId: in.Gid}).WithAll().ScanAndCount(&data, &total, false)
|
||||
|
||||
err = m.Page(in.Page, in.Size).Where(do.Tasks{GameId: in.Gid}).ScanAndCount(&data, &total, false)
|
||||
if err != nil {
|
||||
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,
|
||||
|
||||
Reference in New Issue
Block a user