2025-04-07 11:21:43 +08:00

85 lines
2.2 KiB
Go

package biz
import (
db "management/internal/db/sqlc"
budgetv1 "management/internal/erpserver/biz/v1/budget"
commonv1 "management/internal/erpserver/biz/v1/common"
customerv1 "management/internal/erpserver/biz/v1/customer"
expensev1 "management/internal/erpserver/biz/v1/expense"
incomev1 "management/internal/erpserver/biz/v1/income"
projectv1 "management/internal/erpserver/biz/v1/project"
systemv1 "management/internal/erpserver/biz/v1/system"
"management/internal/erpserver/store"
"management/internal/pkg/redis"
"management/internal/pkg/session"
)
// IBiz 定义了业务层需要实现的方法.
type IBiz interface {
// 获取公共业务接口.
CommonV1() commonv1.CommonBiz
// 获取系统业务接口.
SystemV1() systemv1.SystemBiz
// 项目管理
ProjectV1() projectv1.ProjectBiz
// 预算管理
BudgetV1() budgetv1.BudgetBiz
// 客户管理
CustomerV1() customerv1.CustomerBiz
// 收入管理
IncomeV1() incomev1.IncomeBiz
// 支出管理
ExpenseV1() expensev1.ExpenseBiz
}
// biz 是 IBiz 的一个具体实现.
type biz struct {
database store.IStore
store db.Store
redis redis.IRedis
session session.ISession
}
// 确保 biz 实现了 IBiz 接口.
var _ IBiz = (*biz)(nil)
// NewBiz 创建一个 IBiz 类型的实例.
func NewBiz(database store.IStore, store db.Store, redis redis.IRedis, session session.ISession) *biz {
return &biz{
database: database,
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.database, b.store, b.redis, b.session)
}
func (b *biz) ProjectV1() projectv1.ProjectBiz {
return projectv1.New(b.store, b.redis)
}
func (b *biz) BudgetV1() budgetv1.BudgetBiz {
return budgetv1.New(b.store, b.redis)
}
func (b *biz) CustomerV1() customerv1.CustomerBiz {
return customerv1.New(b.store, b.redis)
}
func (b *biz) IncomeV1() incomev1.IncomeBiz {
return incomev1.New(b.store, b.redis)
}
func (b *biz) ExpenseV1() expensev1.ExpenseBiz {
return expensev1.New(b.store, b.redis)
}