45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			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))
 | |
| }
 |