61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package biz
|
|
|
|
import (
|
|
db "management/internal/db/sqlc"
|
|
commonv1 "management/internal/erpserver/biz/v1/common"
|
|
customerv1 "management/internal/erpserver/biz/v1/customer"
|
|
projectv1 "management/internal/erpserver/biz/v1/project"
|
|
systemv1 "management/internal/erpserver/biz/v1/system"
|
|
"management/internal/pkg/redis"
|
|
"management/internal/pkg/session"
|
|
)
|
|
|
|
// IBiz 定义了业务层需要实现的方法.
|
|
type IBiz interface {
|
|
// 获取公共业务接口.
|
|
CommonV1() commonv1.CommonBiz
|
|
// 获取系统业务接口.
|
|
SystemV1() systemv1.SystemBiz
|
|
// 项目管理
|
|
ProjectV1() projectv1.ProjectBiz
|
|
// 客户管理
|
|
CustomerV1() customerv1.CustomerBiz
|
|
}
|
|
|
|
// biz 是 IBiz 的一个具体实现.
|
|
type biz struct {
|
|
store db.Store
|
|
redis redis.IRedis
|
|
session session.ISession
|
|
}
|
|
|
|
// 确保 biz 实现了 IBiz 接口.
|
|
var _ IBiz = (*biz)(nil)
|
|
|
|
// NewBiz 创建一个 IBiz 类型的实例.
|
|
func NewBiz(store db.Store, redis redis.IRedis, session session.ISession) *biz {
|
|
return &biz{
|
|
store: store,
|
|
redis: redis,
|
|
session: session,
|
|
}
|
|
}
|
|
|
|
// CommonV1 返回一个实现了 CommonBiz 接口的实例.
|
|
func (b *biz) CommonV1() commonv1.CommonBiz {
|
|
return commonv1.New()
|
|
}
|
|
|
|
// SystemV1 返回一个实现了 SystemBiz 接口的实例.
|
|
func (b *biz) SystemV1() systemv1.SystemBiz {
|
|
return systemv1.New(b.store, b.redis, b.session)
|
|
}
|
|
|
|
func (b *biz) ProjectV1() projectv1.ProjectBiz {
|
|
return projectv1.New(b.store, b.redis)
|
|
}
|
|
|
|
func (b *biz) CustomerV1() customerv1.CustomerBiz {
|
|
return customerv1.New(b.store, b.redis)
|
|
}
|