2026-03-13 08:35:54 +00:00
|
|
|
|
// 这是handler层的基础函数,不必要求规范的方法名格式
|
2026-03-12 09:28:19 +00:00
|
|
|
|
package handler
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
2026-03-13 08:35:54 +00:00
|
|
|
|
"strconv"
|
|
|
|
|
|
"strings"
|
|
|
|
|
|
"time"
|
|
|
|
|
|
|
2026-03-12 09:28:19 +00:00
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
|
"myschools.me/heritage/heritage-api/model"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// 获取当前用户
|
|
|
|
|
|
func currentUser(c *gin.Context) *model.User {
|
|
|
|
|
|
usr, ok := c.Get("user")
|
|
|
|
|
|
if !ok {
|
|
|
|
|
|
return nil
|
|
|
|
|
|
}
|
|
|
|
|
|
u, ok := usr.(*model.User)
|
|
|
|
|
|
if !ok || u == nil || u.ID == "" {
|
|
|
|
|
|
return nil
|
|
|
|
|
|
}
|
|
|
|
|
|
return u
|
|
|
|
|
|
}
|
2026-03-13 08:35:54 +00:00
|
|
|
|
|
|
|
|
|
|
func pageAndSize(c *gin.Context) (int, int) {
|
|
|
|
|
|
page, _ := strconv.Atoi(c.Query("page"))
|
|
|
|
|
|
size, _ := strconv.Atoi(c.Query("size"))
|
|
|
|
|
|
if page <= 0 {
|
|
|
|
|
|
page = 1
|
|
|
|
|
|
}
|
|
|
|
|
|
if size <= 0 {
|
|
|
|
|
|
size = 20
|
|
|
|
|
|
}
|
|
|
|
|
|
if size > 200 {
|
|
|
|
|
|
size = 200
|
|
|
|
|
|
}
|
|
|
|
|
|
return page, size
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func parseDateOnly(s *string) (*time.Time, error) {
|
|
|
|
|
|
*s = strings.TrimSpace(*s)
|
|
|
|
|
|
if *s == "" {
|
|
|
|
|
|
return nil, nil
|
|
|
|
|
|
}
|
|
|
|
|
|
t, err := time.ParseInLocation("2006-01-02", *s, time.Local)
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
}
|
|
|
|
|
|
return &t, nil
|
|
|
|
|
|
}
|