refactor: 拆分超标控制器文件至行数≤120行
- auth_controller.go(238→54): 拆出auth_api_login.go(107)+auth_api_register.go(96) - settings_controller.go(289→101): 拆出settings_api_profile(116)+account(59)+error_handlers(41) - message_controller.go(129→85): 拆出message_page_controller.go(55) - 所有拆分后文件均≤120行,符合code-style.md瘦控制器规范
This commit is contained in:
55
internal/controller/message_page_controller.go
Normal file
55
internal/controller/message_page_controller.go
Normal file
@ -0,0 +1,55 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"metazone.cc/metalab/internal/common"
|
||||
"metazone.cc/metalab/internal/model"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// MessagesPage 消息中心页面(需登录,noindex)
|
||||
func (mc *MessageController) MessagesPage(c *gin.Context) {
|
||||
uidVal, exists := c.Get("uid")
|
||||
if !exists {
|
||||
c.Redirect(http.StatusFound, "/auth/login")
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
uid := uidVal.(uint)
|
||||
|
||||
// 从 query 取分页参数
|
||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||
if page < 1 {
|
||||
page = 1
|
||||
}
|
||||
pageSize := 20
|
||||
|
||||
result, err := mc.notifService.List(uid, page, pageSize)
|
||||
if err != nil {
|
||||
result = &model.NotificationListResult{Items: []model.Notification{}, Total: 0, Page: 1}
|
||||
}
|
||||
|
||||
totalPages := result.TotalPages
|
||||
if totalPages == 0 && result.Total > 0 {
|
||||
totalPages = int((result.Total + int64(pageSize) - 1) / int64(pageSize))
|
||||
}
|
||||
|
||||
c.HTML(http.StatusOK, "messages/index.html", common.BuildPageData(c, gin.H{
|
||||
"Title": "消息中心",
|
||||
"ExtraCSS": "/static/css/messages.css",
|
||||
"Messages": result.Items,
|
||||
"Total": result.Total,
|
||||
"Page": result.Page,
|
||||
"TotalPages": totalPages,
|
||||
"PrevPage": result.Page - 1,
|
||||
"NextPage": result.Page + 1,
|
||||
"HasPrev": result.Page > 1,
|
||||
"HasNext": result.Page < totalPages,
|
||||
"UnreadCount": result.Unread,
|
||||
"NotifyTypeNames": model.NotifyTypeNames,
|
||||
"AuditTypeNames": model.AuditTypeNames,
|
||||
}))
|
||||
}
|
||||
Reference in New Issue
Block a user