实现了门店奖励的增删改查
This commit is contained in:
@ -3,6 +3,7 @@ package reward
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"server/internal/consts"
|
||||
"server/internal/dao"
|
||||
"server/internal/model"
|
||||
@ -89,7 +90,6 @@ func (s *sRewardType) Create(ctx context.Context, in *model.RewardTypeCreateIn)
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Update 更新奖励类型
|
||||
// Update 更新奖励类型
|
||||
func (s *sRewardType) Update(ctx context.Context, in *model.RewardTypeUpdateIn) (out *model.RewardTypeUpdateOut, err error) {
|
||||
// 查询原始记录,确保存在,并获取 store_id 和 source 字段用于权限判断
|
||||
@ -257,15 +257,27 @@ func (s *sRewardType) List(ctx context.Context, in *model.RewardTypeListIn) (out
|
||||
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()
|
||||
|
||||
).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: // 门店
|
||||
|
||||
// 追加限制:source = 1 或 store_id = 当前门店
|
||||
orm = orm.Where(
|
||||
fmt.Sprintf("%s.%s = ?", dao.RewardTypes.Table(), dao.RewardTypes.Columns().Source),
|
||||
1,
|
||||
).WhereOr(
|
||||
fmt.Sprintf("%s.%s IN (?)", dao.RewardTypes.Table(), dao.RewardTypes.Columns().StoreId),
|
||||
g.Slice{in.StoreId},
|
||||
)
|
||||
|
||||
case consts.StoreRoleCode:
|
||||
// 检查门店是否有权限
|
||||
exist, err := dao.StoreAdmins.Ctx(ctx).
|
||||
Where(do.StoreAdmins{Id: in.OperatorId}).
|
||||
@ -285,21 +297,41 @@ func (s *sRewardType) List(ctx context.Context, in *model.RewardTypeListIn) (out
|
||||
if !exist {
|
||||
return nil, ecode.Params.Sub("无门店权限")
|
||||
}
|
||||
|
||||
// 追加限制:source = 1 或 store_id = 当前门店
|
||||
orm = orm.Where(
|
||||
fmt.Sprintf("%s.%s = ?", dao.RewardTypes.Table(), dao.RewardTypes.Columns().Source),
|
||||
1,
|
||||
).WhereOr(
|
||||
fmt.Sprintf("%s.%s IN (?)", dao.RewardTypes.Table(), dao.RewardTypes.Columns().StoreId),
|
||||
g.Slice{in.StoreId},
|
||||
)
|
||||
}
|
||||
|
||||
// 其他筛选
|
||||
if in.Status != 0 {
|
||||
orm = orm.Where(do.RewardTypes{Status: in.Status})
|
||||
orm = orm.Where(
|
||||
fmt.Sprintf("%s.%s = ?", dao.RewardTypes.Table(), dao.RewardTypes.Columns().Status),
|
||||
in.Status,
|
||||
)
|
||||
}
|
||||
if in.Name != "" {
|
||||
orm = orm.WhereLike(dao.RewardTypes.Columns().Name, "%"+in.Name+"%")
|
||||
orm = orm.WhereLike(
|
||||
fmt.Sprintf("%s.%s", dao.RewardTypes.Table(), dao.RewardTypes.Columns().Name),
|
||||
"%"+in.Name+"%",
|
||||
)
|
||||
}
|
||||
|
||||
// 查询总数
|
||||
count, err := orm.Count()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 查询结果
|
||||
err = orm.Page(in.Page, in.Size).OrderAsc(dao.RewardTypes.Columns().Source).Scan(&list)
|
||||
// 查询分页数据
|
||||
err = orm.Page(in.Page, in.Size).
|
||||
OrderAsc(fmt.Sprintf("%s.%s", dao.RewardTypes.Table(), dao.RewardTypes.Columns().Source)).
|
||||
Scan(&list)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user