Files
AI-CS/backend/controller/helper.go
T
2026-02-02 21:41:47 +08:00

53 lines
1.2 KiB
Go

package controller
import (
"strconv"
"time"
"github.com/gin-gonic/gin"
)
const timeFormat = "2006-01-02T15:04:05Z07:00"
// parseUintParam 将路径参数转换为 uint64。
func parseUintParam(c *gin.Context, name string) (uint64, error) {
value := c.Param(name)
return strconv.ParseUint(value, 10, 64)
}
// parseUintQuery 将查询参数转换为 uint64。
func parseUintQuery(c *gin.Context, name string) (uint64, error) {
value := c.Query(name)
if value == "" {
return 0, strconv.ErrSyntax
}
return strconv.ParseUint(value, 10, 64)
}
// getUserIDFromHeader 从请求头 X-User-Id 读取当前用户 ID(用于知识库开关校验)
// 若未设置则返回 0(调用方可按需放行或拒绝)
func getUserIDFromHeader(c *gin.Context) uint {
value := c.GetHeader("X-User-Id")
if value == "" {
return 0
}
id, err := strconv.ParseUint(value, 10, 64)
if err != nil {
return 0
}
return uint(id)
}
// formatTimeValue 按统一格式输出时间字符串。
func formatTimeValue(t time.Time) string {
return t.Format(timeFormat)
}
// formatTimePointer 在指针为空时返回空字符串。
func formatTimePointer(t *time.Time) string {
if t == nil {
return ""
}
return t.Format(timeFormat)
}