首先门店对网费进行 激励设置
This commit is contained in:
@ -2,6 +2,7 @@ package store
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
"server/internal/consts"
|
||||
@ -299,3 +300,77 @@ func (s *sStore) GetStoreMemberList(ctx context.Context, in *model.StoreMemberLe
|
||||
Total: total,
|
||||
}, nil
|
||||
}
|
||||
func (s *sStore) GetStoreAreaList(ctx context.Context, in *model.StoreAreaListIn) (out *model.StoreAreaListOut, err error) {
|
||||
|
||||
// 根据角色权限获取门店ID
|
||||
switch in.OperatorRole {
|
||||
case consts.MerchantRoleCode:
|
||||
exist, err := dao.MerchantAdmins.Ctx(ctx).Where(do.MerchantAdmins{
|
||||
MerchantId: in.OperatorId,
|
||||
}).LeftJoin(dao.Stores.Table(), fmt.Sprintf("%s.%s = %s.%s", dao.Stores.Table(), dao.Stores.Columns().MerchantId, dao.MerchantAdmins.Table(), dao.MerchantAdmins.Columns().MerchantId)).Where("stores.id = ?", in.StoreId).Exist()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("检查商户权限失败")
|
||||
}
|
||||
if !exist {
|
||||
return nil, ecode.Params.Sub("无门店权限")
|
||||
}
|
||||
case consts.StoreRoleCode:
|
||||
// 检查门店管理员是否有该门店权限
|
||||
value, err := dao.StoreAdmins.Ctx(ctx).WherePri(in.OperatorId).Fields(dao.StoreAdmins.Columns().StoreId).Value()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("检查门店权限失败")
|
||||
}
|
||||
if value.IsEmpty() || value.Int64() != in.StoreId {
|
||||
return nil, ecode.Params.Sub("无门店权限")
|
||||
}
|
||||
default:
|
||||
return nil, ecode.Params.Sub("无操作权限")
|
||||
}
|
||||
out = &model.StoreAreaListOut{}
|
||||
if err = dao.StoreAreas.Ctx(ctx).Where(do.StoreAreas{StoreId: in.StoreId}).ScanAndCount(&out.List, &out.Total, false); err != nil {
|
||||
return nil, ecode.Fail.Sub("门店区域列表获取失败")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sStore) GetNetfeeSetting(ctx context.Context, in *model.GetNetfeeSettingIn) (out *model.StoreNetfeeAreaLevel, err error) {
|
||||
out = &model.StoreNetfeeAreaLevel{}
|
||||
one, err := dao.StoreNetfeeAreaLevel.Ctx(ctx).Where(do.StoreNetfeeAreaLevel{StoreId: in.StoreId, RewardId: in.RewardId, AreaId: in.AreaId, MemberLevelId: in.MemberLevelId}).One()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("门店区域价格获取失败")
|
||||
}
|
||||
if one.IsEmpty() {
|
||||
return
|
||||
}
|
||||
if err = one.Struct(out); err != nil {
|
||||
return nil, ecode.Fail.Sub("门店区域价格获取失败")
|
||||
}
|
||||
return
|
||||
}
|
||||
func (s *sStore) SaveNetfeeSetting(ctx context.Context, in *model.SaveNetfeeSettingIn) (out *model.SaveNetfeeSettingOut, err error) {
|
||||
exist, err := dao.StoreNetfeeAreaLevel.Ctx(ctx).Where(do.StoreNetfeeAreaLevel{StoreId: in.StoreId, RewardId: in.RewardId, AreaId: in.AreaId, MemberLevelId: in.MemberLevelId}).Exist()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("门店区域价格保存失败")
|
||||
}
|
||||
if exist {
|
||||
_, err = dao.StoreNetfeeAreaLevel.Ctx(ctx).Where(do.StoreNetfeeAreaLevel{StoreId: in.StoreId, RewardId: in.RewardId, AreaId: in.AreaId, MemberLevelId: in.MemberLevelId}).
|
||||
Update(do.StoreNetfeeAreaLevel{PriceData: in.PriceData})
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("门店区域价格保存失败")
|
||||
}
|
||||
} else {
|
||||
_, err = dao.StoreNetfeeAreaLevel.Ctx(ctx).Insert(do.StoreNetfeeAreaLevel{
|
||||
AreaId: in.AreaId,
|
||||
MemberLevelId: in.MemberLevelId,
|
||||
PriceData: in.PriceData,
|
||||
RewardId: in.RewardId,
|
||||
StoreId: in.StoreId,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("门店区域价格保存失败")
|
||||
}
|
||||
}
|
||||
return &model.SaveNetfeeSettingOut{
|
||||
Success: true,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user