50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package handler
|
|
|
|
import (
|
|
"management/internal/config"
|
|
"management/internal/erpserver/biz"
|
|
"management/internal/erpserver/handler/common"
|
|
"management/internal/erpserver/handler/system"
|
|
"management/internal/pkg/session"
|
|
"management/internal/pkg/tpl"
|
|
)
|
|
|
|
// IHandler 定义了Handler需要实现的方法.
|
|
type IHandler interface {
|
|
// 获取 Common Handler 接口.
|
|
CommonHandler() common.CommonHandler
|
|
// 获取 System Handler 接口.
|
|
SystemHandler() system.SystemHandler
|
|
}
|
|
|
|
// handler 是 IHandler 的一个具体实现.
|
|
type handler struct {
|
|
conf *config.Config
|
|
render tpl.Renderer
|
|
session session.ISession
|
|
biz biz.IBiz
|
|
}
|
|
|
|
// 确保 handler 实现了 IHandler 接口.
|
|
var _ IHandler = (*handler)(nil)
|
|
|
|
// NewHandler 创建一个 IHandler 类型的实例.
|
|
func NewHandler(conf *config.Config, render tpl.Renderer, session session.ISession, biz biz.IBiz) *handler {
|
|
return &handler{
|
|
conf: conf,
|
|
render: render,
|
|
session: session,
|
|
biz: biz,
|
|
}
|
|
}
|
|
|
|
// 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.session, h.biz)
|
|
}
|