From 11f0af6b386e044f036f351656ffb5b13d4b5286 Mon Sep 17 00:00:00 2001 From: chy <2463300564@qq.com> Date: Fri, 4 Jul 2025 17:07:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2=E9=97=A8?= =?UTF-8?q?=E5=BA=97=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/store/v1/store.go | 4 +-- .../store/store_v1_store_member_level.go | 23 +++++++++++++--- internal/logic/store/store.go | 26 ++++++++++++++++--- internal/model/StoreMemberlevel.go | 7 ++--- internal/service/store.go | 1 + utility/myCasbin/casbin.go | 3 ++- 6 files changed, 50 insertions(+), 14 deletions(-) diff --git a/api/store/v1/store.go b/api/store/v1/store.go index 9040669..d830c8f 100644 --- a/api/store/v1/store.go +++ b/api/store/v1/store.go @@ -97,8 +97,8 @@ type DetailRes struct { type StoreMemberLevelReq struct { g.Meta `path:"/store/memberLevel" method:"get" tags:"Backend/Store" summary:"(系统、商户门店后台)门店会员等级"` StoreId int64 `json:"storeId" dc:"门店ID"` - Page int `json:"page" v:"required" dc:"页数"` - Size int `json:"size" v:"required" dc:"每页数量"` + Page int `json:"page" dc:"页数"` + Size int `json:"size" dc:"每页数量"` } type StoreMemberLevelRes struct { diff --git a/internal/controller/store/store_v1_store_member_level.go b/internal/controller/store/store_v1_store_member_level.go index ec7d5cc..d080746 100644 --- a/internal/controller/store/store_v1_store_member_level.go +++ b/internal/controller/store/store_v1_store_member_level.go @@ -2,13 +2,28 @@ package store import ( "context" - - "github.com/gogf/gf/v2/errors/gcode" - "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "server/internal/model" + "server/internal/service" "server/api/store/v1" ) func (c *ControllerV1) StoreMemberLevel(ctx context.Context, req *v1.StoreMemberLevelReq) (res *v1.StoreMemberLevelRes, err error) { - return nil, gerror.NewCode(gcode.CodeNotImplemented) + + roleName := g.RequestFromCtx(ctx).GetCtxVar("Role") + out, err := service.Store().GetStoreMemberList(ctx, &model.StoreMemberLevelsListIn{ + Page: req.Page, + Size: req.Size, + StoreId: req.StoreId, + RoleName: roleName.String(), + }) + + if err != nil { + return nil, err + } + return &v1.StoreMemberLevelRes{ + List: out.List, + Total: int64(out.Total), + }, nil } diff --git a/internal/logic/store/store.go b/internal/logic/store/store.go index 084a97c..e6ef597 100644 --- a/internal/logic/store/store.go +++ b/internal/logic/store/store.go @@ -277,7 +277,25 @@ func (s *sStore) Detail(ctx context.Context, in *model.StoreDetailIn) (out *mode }, nil } -//func (s *sStore) GetStoreMemberList(ctx context.Context, in *model.StoreMemberLevelsListIn) (out *model.StoreMemberLevelsListOut, error) { -// -// return nil, nil -//} +func (s *sStore) GetStoreMemberList(ctx context.Context, in *model.StoreMemberLevelsListIn) (out *model.StoreMemberLevelsListOut, err error) { + + if in.RoleName != consts.StoreRoleCode && in.RoleName != consts.MerchantRoleCode { + return nil, ecode.Fail.Sub("无门店权限") + } + + m := dao.StoreMemberLevels.Ctx(ctx) + if in.StoreId > 0 { + m.Where(do.StoreMemberLevels{StoreId: in.StoreId}) + } + + var data []model.StoreMemberLevels + var total int + err = m.Page(in.Page, in.Size).ScanAndCount(&data, &total, false) + if err != nil { + return nil, ecode.Fail.Sub("门店会员等级列表获取失败") + } + return &model.StoreMemberLevelsListOut{ + List: data, + Total: total, + }, nil +} diff --git a/internal/model/StoreMemberlevel.go b/internal/model/StoreMemberlevel.go index 485c92a..935cddb 100644 --- a/internal/model/StoreMemberlevel.go +++ b/internal/model/StoreMemberlevel.go @@ -16,9 +16,10 @@ type StoreMemberLevels struct { } type StoreMemberLevelsListIn struct { - Page int - Size int - StoreId int64 + Page int + Size int + StoreId int64 + RoleName string } type StoreMemberLevelsListOut struct { diff --git a/internal/service/store.go b/internal/service/store.go index 7cc79dd..a4ed0fa 100644 --- a/internal/service/store.go +++ b/internal/service/store.go @@ -23,6 +23,7 @@ type ( UpdateIP(ctx context.Context, in *model.IPUpdateIn) (*model.IPUpdateOut, error) DeleteIP(ctx context.Context, in *model.IPDeleteIn) (*model.IPDeleteOut, error) Detail(ctx context.Context, in *model.StoreDetailIn) (out *model.StoreDetailOut, err error) + GetStoreMemberList(ctx context.Context, in *model.StoreMemberLevelsListIn) (out *model.StoreMemberLevelsListOut, err error) } ) diff --git a/utility/myCasbin/casbin.go b/utility/myCasbin/casbin.go index 39b4433..979bd56 100644 --- a/utility/myCasbin/casbin.go +++ b/utility/myCasbin/casbin.go @@ -93,7 +93,8 @@ func init() { } // 门店 { - + // 获取会员 + enforcer.AddPolicy("store", "/x/store/memberLevel", "GET", "获取用户会员信息") // 门店:修改 enforcer.AddPolicy("store", "/x/task/sync", "POST", "同步任务") // 奖励类型