52 lines
900 B
Go
52 lines
900 B
Go
// 这是handler层的基础函数,不必要求规范的方法名格式
|
||
package handler
|
||
|
||
import (
|
||
"strconv"
|
||
"strings"
|
||
"time"
|
||
|
||
"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
|
||
}
|
||
|
||
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
|
||
}
|