package controller import ( "errors" "git.huangwc.com/pig/pig-farm-controller/internal/infra/models" "github.com/gin-gonic/gin" ) var ( // ErrUserNotFoundInContext 表示在 gin.Context 中未找到用户信息。 ErrUserNotFoundInContext = errors.New("context中未找到用户信息") // ErrInvalidUserType 表示从 gin.Context 中获取的用户信息类型不正确。 ErrInvalidUserType = errors.New("context中用户信息类型不正确") ) // GetOperatorIDFromContext 从 gin.Context 中提取操作者ID。 // 假设操作者ID是由 AuthMiddleware 存储到 context 中的 *models.User 对象的 ID 字段。 func GetOperatorIDFromContext(c *gin.Context) (uint, error) { userVal, exists := c.Get(models.ContextUserKey.String()) if !exists { return 0, ErrUserNotFoundInContext } user, ok := userVal.(*models.User) if !ok { return 0, ErrInvalidUserType } return user.ID, nil } // GetOperatorFromContext 从 gin.Context 中提取操作者。 // 假设操作者是由 AuthMiddleware 存储到 context 中的 *models.User 对象的 字段。 func GetOperatorFromContext(c *gin.Context) (*models.User, error) { userVal, exists := c.Get(models.ContextUserKey.String()) if !exists { return nil, ErrUserNotFoundInContext } user, ok := userVal.(*models.User) if !ok { return nil, ErrInvalidUserType } return user, nil }