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