新增获取网费奖励列表
This commit is contained in:
@ -12,6 +12,7 @@ import (
|
|||||||
|
|
||||||
type IRewardV1 interface {
|
type IRewardV1 interface {
|
||||||
List(ctx context.Context, req *v1.ListReq) (res *v1.ListRes, err error)
|
List(ctx context.Context, req *v1.ListReq) (res *v1.ListRes, err error)
|
||||||
|
ListInternetCharge(ctx context.Context, req *v1.ListInternetChargeReq) (res *v1.ListRes, err error)
|
||||||
Create(ctx context.Context, req *v1.CreateReq) (res *v1.CreateRes, 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)
|
Update(ctx context.Context, req *v1.UpdateReq) (res *v1.UpdateRes, err error)
|
||||||
Delete(ctx context.Context, req *v1.DeleteReq) (res *v1.DeleteRes, err error)
|
Delete(ctx context.Context, req *v1.DeleteReq) (res *v1.DeleteRes, err error)
|
||||||
|
|||||||
@ -15,6 +15,16 @@ type ListReq struct {
|
|||||||
RewardTypeId int64 `json:"rewardTypeId" dc:"奖励类型ID"`
|
RewardTypeId int64 `json:"rewardTypeId" dc:"奖励类型ID"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ListInternetChargeReq struct {
|
||||||
|
g.Meta `path:"/reward/internetCharge" method:"get" tags:"Backend/Reward" summary:"(系统、商户、门店后台)获取网费奖励列表"`
|
||||||
|
Name string `json:"name" dc:"名称"`
|
||||||
|
Page int `json:"page" dc:"页数"`
|
||||||
|
Size int `json:"size" dc:"每页数量"`
|
||||||
|
Status int `json:"status" dc:"状态"`
|
||||||
|
StoreId int64 `json:"storeId" dc:"门店ID"`
|
||||||
|
RewardTypeId int64 `json:"rewardTypeId" dc:"奖励类型ID"`
|
||||||
|
}
|
||||||
|
|
||||||
type ListRes struct {
|
type ListRes struct {
|
||||||
List interface{} `json:"list" dc:"奖励列表"`
|
List interface{} `json:"list" dc:"奖励列表"`
|
||||||
Total int `json:"total" dc:"总数"`
|
Total int `json:"total" dc:"总数"`
|
||||||
|
|||||||
@ -348,6 +348,84 @@ func (s *sReward) List(ctx context.Context, in *model.RewardListIn) (out *model.
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListInternetCharge 网费奖励列表
|
||||||
|
func (s *sReward) ListInternetCharge(ctx context.Context, in *model.RewardListIn) (out *model.InternetChargeRewardListOut, err error) {
|
||||||
|
|
||||||
|
rewardCols := dao.Rewards.Columns()
|
||||||
|
orm := dao.Rewards.Ctx(ctx).LeftJoin(
|
||||||
|
dao.RewardTypes.Table(),
|
||||||
|
fmt.Sprintf(
|
||||||
|
"%s.%s = %s.%s",
|
||||||
|
dao.Rewards.Table(), dao.Rewards.Columns().RewardTypeId,
|
||||||
|
dao.RewardTypes.Table(), dao.RewardTypes.Columns().Id,
|
||||||
|
),
|
||||||
|
).Fields(fmt.Sprintf("%s.*,%s.name as reward_type_name", dao.Rewards.Table(), dao.RewardTypes.Table()))
|
||||||
|
switch in.OperatorRole {
|
||||||
|
case consts.AdminRoleCode:
|
||||||
|
// 系统管理员只能查询 source = 1 的奖励
|
||||||
|
orm = orm.Where(rewardCols.Source, 1)
|
||||||
|
case consts.MerchantRoleCode, consts.StoreRoleCode:
|
||||||
|
// 合并商户和门店角色权限校验
|
||||||
|
var exist bool
|
||||||
|
if in.OperatorRole == 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()
|
||||||
|
} else {
|
||||||
|
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("无门店权限")
|
||||||
|
}
|
||||||
|
orm = orm.Where(rewardCols.Source, 2)
|
||||||
|
default:
|
||||||
|
return nil, ecode.Params.Sub("无效的角色")
|
||||||
|
}
|
||||||
|
|
||||||
|
// ==== 其他查询条件 ====
|
||||||
|
if in.Status != 0 {
|
||||||
|
orm = orm.Where(fmt.Sprintf("%s.%s = ?", dao.Rewards.Table(), rewardCols.Status), in.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
if in.Name != "" {
|
||||||
|
orm = orm.WhereLike(rewardCols.Name, "%"+in.Name+"%")
|
||||||
|
}
|
||||||
|
|
||||||
|
// ==== 总数统计 ====
|
||||||
|
list := make([]model.InternetChargeReward, 0)
|
||||||
|
var total int
|
||||||
|
err = orm.Where(dao.Rewards.Columns().RewardTypeId, 1).Fields("rewards.name,rewards.grant_quantity").ScanAndCount(&list, &total, false)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &model.InternetChargeRewardListOut{
|
||||||
|
List: list,
|
||||||
|
Total: total,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
// GetLift 领取奖励
|
// GetLift 领取奖励
|
||||||
// func (s *sReward) GetLift(ctx context.Context, in *model.GetRewardIn) (out *model.GetRewardOut, err error) {
|
// func (s *sReward) GetLift(ctx context.Context, in *model.GetRewardIn) (out *model.GetRewardOut, err error) {
|
||||||
//
|
//
|
||||||
|
|||||||
@ -33,6 +33,14 @@ type Reward struct {
|
|||||||
UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` // 更新时间
|
UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"更新时间"` // 更新时间
|
||||||
DeletedAt *gtime.Time `json:"deletedAt" orm:"deleted_at" description:"删除时间(软删除)"` // 删除时间(软删除)
|
DeletedAt *gtime.Time `json:"deletedAt" orm:"deleted_at" description:"删除时间(软删除)"` // 删除时间(软删除)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type InternetChargeReward struct {
|
||||||
|
g.Meta `orm:"table:rewards"`
|
||||||
|
Id int64 `json:"id" orm:"id" description:"奖励ID"` // 奖励ID
|
||||||
|
Name string `json:"name" orm:"name" description:"奖励名称"` // 奖励名称
|
||||||
|
GrantQuantity uint64 `json:"grantQuantity" orm:"grant_quantity" description:"每次发放个数"` // 每次发放个数
|
||||||
|
}
|
||||||
|
|
||||||
type SimpleReward struct {
|
type SimpleReward struct {
|
||||||
g.Meta `orm:"table:rewards"`
|
g.Meta `orm:"table:rewards"`
|
||||||
Id int64 `json:"id" orm:"id" description:"奖励ID"` // 奖励ID
|
Id int64 `json:"id" orm:"id" description:"奖励ID"` // 奖励ID
|
||||||
@ -156,6 +164,11 @@ type RewardListOut struct {
|
|||||||
Total int
|
Total int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type InternetChargeRewardListOut struct {
|
||||||
|
List []InternetChargeReward
|
||||||
|
Total int
|
||||||
|
}
|
||||||
|
|
||||||
// RewardCallbackIn 任务奖励领取回调入参
|
// RewardCallbackIn 任务奖励领取回调入参
|
||||||
type RewardCallbackIn struct {
|
type RewardCallbackIn struct {
|
||||||
Uid string `json:"uid" ` // 用户账号
|
Uid string `json:"uid" ` // 用户账号
|
||||||
|
|||||||
@ -20,6 +20,8 @@ type (
|
|||||||
Delete(ctx context.Context, in *model.RewardDeleteIn) (out *model.RewardDeleteOut, err error)
|
Delete(ctx context.Context, in *model.RewardDeleteIn) (out *model.RewardDeleteOut, err error)
|
||||||
// List 奖励列表
|
// List 奖励列表
|
||||||
List(ctx context.Context, in *model.RewardListIn) (out *model.RewardListOut, err error)
|
List(ctx context.Context, in *model.RewardListIn) (out *model.RewardListOut, err error)
|
||||||
|
// ListInternetCharge 网费奖励列表
|
||||||
|
ListInternetCharge(ctx context.Context, in *model.RewardListIn) (out *model.InternetChargeRewardListOut, err error)
|
||||||
// GetLift 领取奖励
|
// GetLift 领取奖励
|
||||||
// func (s *sReward) GetLift(ctx context.Context, in *model.GetRewardIn) (out *model.GetRewardOut, err error) {
|
// func (s *sReward) GetLift(ctx context.Context, in *model.GetRewardIn) (out *model.GetRewardOut, err error) {
|
||||||
//
|
//
|
||||||
|
|||||||
@ -104,6 +104,7 @@ func init() {
|
|||||||
enforcer.AddPolicy("store", "/x/rewardType/*", "DELETE", "删除奖励类型")
|
enforcer.AddPolicy("store", "/x/rewardType/*", "DELETE", "删除奖励类型")
|
||||||
|
|
||||||
enforcer.AddPolicy("store", "/x/reward", "GET", "获取奖励列表")
|
enforcer.AddPolicy("store", "/x/reward", "GET", "获取奖励列表")
|
||||||
|
enforcer.AddPolicy("store", "/x/reward/internetCharge", "GET", "获取网费奖励列表")
|
||||||
enforcer.AddPolicy("store", "/x/reward", "POST", "添加奖励")
|
enforcer.AddPolicy("store", "/x/reward", "POST", "添加奖励")
|
||||||
enforcer.AddPolicy("store", "/x/reward", "PUT", "更新奖励")
|
enforcer.AddPolicy("store", "/x/reward", "PUT", "更新奖励")
|
||||||
enforcer.AddPolicy("store", "/x/reward/*", "DELETE", "删除奖励")
|
enforcer.AddPolicy("store", "/x/reward/*", "DELETE", "删除奖励")
|
||||||
|
|||||||
Reference in New Issue
Block a user