2025-03-28 17:51:34 +08:00

56 lines
1.4 KiB
Go

package handler
import (
"net/http"
"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
// 获取首页
Home(w http.ResponseWriter, req *http.Request)
// 获取 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)
}