生成门店 service 层代码
This commit is contained in:
@ -78,6 +78,5 @@ func (s *sMerchant) Audit(ctx context.Context, in *model.MerchantAuditIn) (out *
|
||||
}
|
||||
|
||||
func (s *sMerchant) Create(ctx context.Context, in *model.MerchantCreateIn) (out *model.CreateOut, err error) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@ -1 +1,77 @@
|
||||
package store
|
||||
|
||||
import (
|
||||
"context"
|
||||
"server/internal/dao"
|
||||
"server/internal/model"
|
||||
"server/internal/model/do"
|
||||
"server/internal/service"
|
||||
"server/utility/ecode"
|
||||
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
)
|
||||
|
||||
type sStore struct {
|
||||
}
|
||||
|
||||
func New() service.IStore {
|
||||
return &sStore{}
|
||||
}
|
||||
func init() {
|
||||
service.RegisterStore(New())
|
||||
}
|
||||
func (s *sStore) List(ctx context.Context, in *model.StoreListIn) (out *model.StoreListOut, err error) {
|
||||
// 1. 初始化返回数据
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sStore) Create(ctx context.Context, in *model.StoreCreateIn) (out *model.CreateOut, err error) {
|
||||
// 1. 检查门店名称是否重复
|
||||
exist, err := dao.Stores.Ctx(ctx).Where(do.Stores{Name: in.Name}).Exist()
|
||||
if err != nil {
|
||||
return nil, ecode.Fail.Sub("新增门店查重出现异常")
|
||||
}
|
||||
if exist {
|
||||
return nil, ecode.Params.Sub("门店名称已存在")
|
||||
}
|
||||
|
||||
// 2. 使用事务处理数据插入
|
||||
if err = dao.Stores.Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
||||
// 2.1 生成唯一的门店编号
|
||||
// 2.2 插入门店基本信息
|
||||
// 2.3 创建门店管理员账号
|
||||
// 2.4 初始化门店配置
|
||||
return nil
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
func (s *sStore) Update(ctx context.Context, in *model.StoreUpdateIn) (out *model.UpdateOut, err error) {
|
||||
// 1. 验证门店是否存在
|
||||
// 2. 验证操作权限(商户管理员或门店管理员)
|
||||
// 3. 检查更新后的门店名称是否重复
|
||||
// 4. 使用事务更新门店信息
|
||||
// 5. 记录操作日志
|
||||
return
|
||||
}
|
||||
func (s *sStore) Delete(ctx context.Context, in *model.StoreDeleteIn) (out *model.DeleteOut, err error) {
|
||||
// 1. 验证门店是否存在
|
||||
// 2. 验证操作权限(仅允许商户管理员)
|
||||
// 3. 检查门店状态(是否有关联数据)
|
||||
// 4. 使用事务处理删除操作
|
||||
// 5. 清理相关数据
|
||||
// 6. 记录操作日志
|
||||
return
|
||||
}
|
||||
func (s *sStore) Info(ctx context.Context, in *model.StoreInfoIn) (out *model.StoreInfoOut, err error) {
|
||||
// 1. 验证门店是否存在
|
||||
// 2. 验证访问权限
|
||||
// 3. 获取门店基本信息
|
||||
// 4. 获取门店配置信息
|
||||
// 5. 获取门店管理员信息
|
||||
// 6. 获取门店统计信息
|
||||
// 7. 处理敏感信息
|
||||
return
|
||||
}
|
||||
|
||||
@ -16,11 +16,32 @@ type Store struct {
|
||||
Status int `json:"status" orm:"status,default:1" dc:"状态:1=正常营业,2=暂停营业,3=已关闭"`
|
||||
}
|
||||
|
||||
type CreateIn struct {
|
||||
Name string `json:"name" v:"required" dc:"门店名称"`
|
||||
type StoreCreateIn struct {
|
||||
Name string
|
||||
}
|
||||
|
||||
type UpdateIn struct {
|
||||
type StoreUpdateIn struct {
|
||||
Id int
|
||||
Name string
|
||||
}
|
||||
|
||||
type StoreListIn struct {
|
||||
MerchantId int
|
||||
Page int
|
||||
Size int
|
||||
Status int
|
||||
}
|
||||
|
||||
type StoreListOut struct {
|
||||
List []Store
|
||||
Total int
|
||||
}
|
||||
type StoreInfoIn struct {
|
||||
Id int
|
||||
}
|
||||
type StoreInfoOut struct {
|
||||
}
|
||||
|
||||
type StoreDeleteIn struct {
|
||||
Id int
|
||||
}
|
||||
|
||||
@ -5,4 +5,32 @@
|
||||
|
||||
package service
|
||||
|
||||
type ()
|
||||
import (
|
||||
"context"
|
||||
"server/internal/model"
|
||||
)
|
||||
|
||||
type (
|
||||
IStore interface {
|
||||
List(ctx context.Context, in *model.StoreListIn) (out *model.StoreListOut, err error)
|
||||
Create(ctx context.Context, in *model.StoreCreateIn) (out *model.CreateOut, err error)
|
||||
Update(ctx context.Context, in *model.StoreUpdateIn) (out *model.UpdateOut, err error)
|
||||
Delete(ctx context.Context, in *model.StoreDeleteIn) (out *model.DeleteOut, err error)
|
||||
Info(ctx context.Context, in *model.StoreInfoIn) (out *model.StoreInfoOut, err error)
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
localStore IStore
|
||||
)
|
||||
|
||||
func Store() IStore {
|
||||
if localStore == nil {
|
||||
panic("implement not found for interface IStore, forgot register?")
|
||||
}
|
||||
return localStore
|
||||
}
|
||||
|
||||
func RegisterStore(i IStore) {
|
||||
localStore = i
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ type (
|
||||
Info(ctx context.Context, in *model.UserInfoIn) (out *model.UserInfoOut, err error)
|
||||
Update(ctx context.Context, in *model.UserUpdateIn) (out *model.UpdateOut, err error)
|
||||
BindPhone(ctx context.Context, in *model.UserBindPhoneIn) (out *model.UpdateOut, err error)
|
||||
List(ctx context.Context, in *model.UserListIn) (out *model.UserListOut, err error)
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user