package handler import ( "errors" "github.com/gin-gonic/gin" "github.com/wmms/wmms/internal/middleware" "github.com/wmms/wmms/internal/service" "github.com/wmms/wmms/pkg/response" ) func (h *Handler) ListAccessibleOrganizations(c *gin.Context) { access, err := service.NewOrganizationAccessService().List(middleware.GetCurrentUserID(c)) if err != nil { response.InternalError(c, "公司访问范围加载失败") return } response.Success(c, access) } func (h *Handler) SwitchOrganizationContext(c *gin.Context) { var req struct { OrganizationID int64 `json:"organization_id" binding:"required,gt=0"` PreviousOrganizationID int64 `json:"previous_organization_id"` } if !bind(c, &req) { return } result, err := service.NewOrganizationAccessService().Switch(middleware.GetCurrentUserID(c), req.OrganizationID, req.PreviousOrganizationID) if err != nil { if errors.Is(err, service.ErrOrganizationInaccessible) { response.Forbidden(c, err.Error()) } else { response.InternalError(c, "公司切换失败") } return } response.Success(c, result) }