2025-06-17 10:50:08 +08:00

45 lines
1.0 KiB
Go

package home
import (
"net/http"
v1 "management/internal/erpserver/service/v1"
"management/internal/erpserver/templ/home"
"management/internal/pkg/mid"
"management/internal/pkg/render"
)
type App struct {
render render.Renderer
userService v1.UserService
menuService v1.MenuService
loginLogService v1.LoginLogService
}
func NewApp(
render render.Renderer,
userService v1.UserService,
menuService v1.MenuService,
loginLogService v1.LoginLogService,
) *App {
return &App{
render: render,
userService: userService,
menuService: menuService,
loginLogService: loginLogService,
}
}
func (a *App) home(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
a.render.Render(ctx, w, home.Home(ctx))
}
func (a *App) dashboard(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
auth := mid.GetUser(ctx)
lt, _ := a.loginLogService.LoginTime(ctx, auth.Email)
c := a.loginLogService.LoginCount(ctx, auth.Email)
a.render.Render(ctx, w, home.Dashboard(ctx, int(c), lt.ThisLoginTime, lt.LastLoginTime))
}