2025-04-14 15:28:51 +08:00

44 lines
1.1 KiB
Go

package system
import (
"net/http"
v1 "management/internal/erpserver/service/v1"
"management/internal/pkg/middleware"
"management/internal/pkg/tpl"
)
type homeHandler struct {
render tpl.Renderer
mi middleware.Middleware
usersvc v1.UserService
loginLogsvc v1.LoginLogService
}
func NewHomeHandler(render tpl.Renderer, mi middleware.Middleware, usersvc v1.UserService, loginLogsvc v1.LoginLogService) *homeHandler {
return &homeHandler{
render: render,
mi: mi,
usersvc: usersvc,
loginLogsvc: loginLogsvc,
}
}
func (h *homeHandler) Home(w http.ResponseWriter, r *http.Request) {
h.render.HTML(w, r, "home/home.tmpl", nil)
}
func (h *homeHandler) Dashboard(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
auth := h.mi.AuthUser(ctx)
user, _ := h.usersvc.Get(ctx, auth.ID)
t := h.loginLogsvc.LoginLatestTime(ctx, auth.Email)
c := h.loginLogsvc.LoginCount(ctx, auth.Email)
h.render.HTML(w, r, "home/dashboard.tmpl", map[string]any{
"Auth": auth,
"User": user,
"LastLoginTime": t,
"LoginCount": c,
})
}