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/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 { 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) 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) }