91 lines
2.9 KiB
Go
91 lines
2.9 KiB
Go
package handler
|
|
|
|
import (
|
|
"management/internal/erpserver/biz"
|
|
"management/internal/erpserver/handler/budget"
|
|
"management/internal/erpserver/handler/common"
|
|
"management/internal/erpserver/handler/customer"
|
|
"management/internal/erpserver/handler/expense"
|
|
"management/internal/erpserver/handler/income"
|
|
"management/internal/erpserver/handler/project"
|
|
"management/internal/erpserver/handler/system"
|
|
"management/internal/pkg/config"
|
|
"management/internal/pkg/middleware"
|
|
"management/internal/pkg/redis"
|
|
"management/internal/pkg/session"
|
|
"management/internal/pkg/tpl"
|
|
)
|
|
|
|
// IHandler 定义了Handler需要实现的方法.
|
|
type IHandler interface {
|
|
// 获取 Common Handler 接口.
|
|
CommonHandler() common.CommonHandler
|
|
// 获取 System Handler 接口.
|
|
SystemHandler() system.SystemHandler
|
|
ProjectHandler() project.ProjectHandler
|
|
BudgetHandler() budget.BudgetHandler
|
|
CustomerHandler() customer.CustomerHandler
|
|
IncomeHandler() income.IncomeHandler
|
|
ExpenseHandler() expense.ExpenseHandler
|
|
}
|
|
|
|
// handler 是 IHandler 的一个具体实现.
|
|
type handler struct {
|
|
conf *config.Config
|
|
render tpl.Renderer
|
|
redis redis.IRedis
|
|
session session.ISession
|
|
biz biz.IBiz
|
|
mi middleware.IMiddleware
|
|
}
|
|
|
|
// 确保 handler 实现了 IHandler 接口.
|
|
var _ IHandler = (*handler)(nil)
|
|
|
|
// NewHandler 创建一个 IHandler 类型的实例.
|
|
func NewHandler(conf *config.Config, render tpl.Renderer, redis redis.IRedis, session session.ISession, biz biz.IBiz, mi middleware.IMiddleware) *handler {
|
|
return &handler{
|
|
conf: conf,
|
|
render: render,
|
|
redis: redis,
|
|
session: session,
|
|
biz: biz,
|
|
mi: mi,
|
|
}
|
|
}
|
|
|
|
// CommonHandler 返回一个实现了 CommonHandler 接口的实例.
|
|
func (h *handler) CommonHandler() common.CommonHandler {
|
|
return common.NewCommonHandler(h.conf, h.render, h.biz.CommonV1())
|
|
}
|
|
|
|
// SystemHandler 返回一个实现了 SystemHandler 接口的实例.
|
|
func (h *handler) SystemHandler() system.SystemHandler {
|
|
return system.NewSystemHandler(h.render, h.redis, h.session, h.biz, h.mi)
|
|
}
|
|
|
|
// ProjectHandler 返回一个实现了 ProjectHandler 接口的实例.
|
|
func (h *handler) ProjectHandler() project.ProjectHandler {
|
|
return project.NewProjectHandler(h.render, h.biz, h.mi)
|
|
}
|
|
|
|
// BudgetHandler 返回一个实现了 BudgetHandler 接口的实例.
|
|
func (h *handler) BudgetHandler() budget.BudgetHandler {
|
|
return budget.NewBudgetHandler(h.render, h.biz, h.mi)
|
|
}
|
|
|
|
// CustomerHandler 返回一个实现了 CustomerHandler 接口的实例.
|
|
func (h *handler) CustomerHandler() customer.CustomerHandler {
|
|
return customer.NewCustomerHandler(h.render, h.biz, h.mi)
|
|
}
|
|
|
|
// IncomeHandler 返回一个实现了 IncomeHandler 接口的实例.
|
|
func (h *handler) IncomeHandler() income.IncomeHandler {
|
|
return income.NewIncomeHandler(h.render, h.biz, h.mi)
|
|
}
|
|
|
|
// ExpenseHandler 返回一个实现了 ExpenseHandler 接口的实例.
|
|
func (h *handler) ExpenseHandler() expense.ExpenseHandler {
|
|
return expense.NewExpenseHandler(h.render, h.biz, h.mi)
|
|
}
|