From 98f11500ba4ef94894722e8cda45b608121c1280 Mon Sep 17 00:00:00 2001 From: lilong Date: Wed, 16 Oct 2024 10:16:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20(feature/REQ-3010)=20=E8=BF=81=E7=A7=BB?= =?UTF-8?q?pudge=20saasfeature=20=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/tyr/client/feign/SaasFeatureApi.java | 5 + .../client/feign/SaasPermissionGroupApi.java | 10 ++ .../client/feign/SaasRoleUserRelationApi.java | 9 ++ .../ListByWorkspaceIdAndOuIdReq.java | 17 +++ .../ListFeatureIdByGroupIdsReq.java | 17 +++ .../tyr/client/model/req/GetByIdsReq.java | 17 +++ .../tyr/client/model/res/SaasFeatureBO.java | 106 ++++++++++++++++++ .../model/res/SaasPermissionGroupRes.java | 88 +++++++++++++++ .../res/SaasPgroupPermissionRelationRes.java | 51 +++++++++ .../permission/SaasFeatureApiImpl.java | 14 ++- .../SaasRoleUserRelationApiImpl.java | 7 ++ .../role/SaasPermissionGroupController.java | 46 ++++++++ .../entity/SaasPermissionGroup.java | 10 ++ .../service/SaasRoleUserRelationService.java | 3 + .../impl/SaasRoleUserRelationServiceImpl.java | 12 +- 15 files changed, 410 insertions(+), 2 deletions(-) create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/ListByWorkspaceIdAndOuIdReq.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/ListFeatureIdByGroupIdsReq.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetByIdsReq.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasFeatureBO.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasPermissionGroupRes.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasPgroupPermissionRelationRes.java diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasFeatureApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasFeatureApi.java index 849e6163..ff6859ad 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasFeatureApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasFeatureApi.java @@ -4,6 +4,8 @@ import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.permission.ApplicationFeatureRes; import cn.axzo.tyr.client.model.permission.GetInfoByMicroAppItemIdReq; import cn.axzo.tyr.client.model.permission.SaasFeatureRes; +import cn.axzo.tyr.client.model.req.GetByIdsReq; +import cn.axzo.tyr.client.model.res.SaasFeatureBO; import cn.azxo.framework.common.model.CommonResponse; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -28,4 +30,7 @@ public interface SaasFeatureApi { @PostMapping("/api/saasFeature/getInfoByMicroAppItemId") ApiResult> getInfoByMicroAppItemId(@RequestBody GetInfoByMicroAppItemIdReq req); + + @PostMapping("/api/saasFeature/getByIds") + ApiResult> getByIds(@RequestBody GetByIdsReq req); } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupApi.java index 5d7583d4..5c0aeb48 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupApi.java @@ -2,7 +2,11 @@ package cn.axzo.tyr.client.feign; import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.model.permission.ListByWorkspaceIdAndOuIdReq; +import cn.axzo.tyr.client.model.permission.ListFeatureIdByGroupIdsReq; import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq; +import cn.axzo.tyr.client.model.res.SaasPermissionGroupRes; +import cn.axzo.tyr.client.model.res.SaasPgroupPermissionRelationRes; import cn.axzo.tyr.client.model.vo.DeletePermissionGroupVO; import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO; import cn.axzo.tyr.client.model.vo.SaveOrUpdatePermissionGroupVO; @@ -52,4 +56,10 @@ public interface SaasPermissionGroupApi { @PostMapping("/api/saasPermissionGoup/deletePermissionGroupSpecial") ApiResult deletePermissionGroupSpecial(@RequestBody @Valid DeletePermissionGroupVO group); + + @PostMapping("/api/saasPermissionGoup/listByWorkspaceIdAndOuId") + ApiResult> listByWorkspaceIdAndOuId(@RequestBody @Valid ListByWorkspaceIdAndOuIdReq group); + + @PostMapping("/api/saasPermissionGoup/listFeatureIdByGroupIds") + ApiResult> listFeatureIdByGroupIds(@RequestBody @Valid ListFeatureIdByGroupIdsReq group); } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleUserRelationApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleUserRelationApi.java index d912a4c0..9b6b4234 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleUserRelationApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleUserRelationApi.java @@ -1,10 +1,17 @@ package cn.axzo.tyr.client.feign; +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.model.req.GetByIdsReq; +import cn.axzo.tyr.client.model.req.WorkspaceUpdateUserRoleDTO; +import cn.axzo.tyr.client.model.res.SaasFeatureBO; import cn.azxo.framework.common.model.CommonResponse; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + /** * @author yanglin */ @@ -17,4 +24,6 @@ public interface SaasRoleUserRelationApi { @PostMapping("api/roleUserRelation/deleteByPersonId") CommonResponse deleteByPersonId(@RequestParam("personId") Long personId); + @PostMapping("/api/roleUserRelation/updateWorkspaceUserRoles") + ApiResult updateWorkspaceUserRoles(@RequestBody WorkspaceUpdateUserRoleDTO req); } \ No newline at end of file diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/ListByWorkspaceIdAndOuIdReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/ListByWorkspaceIdAndOuIdReq.java new file mode 100644 index 00000000..b7dfb6b9 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/ListByWorkspaceIdAndOuIdReq.java @@ -0,0 +1,17 @@ +package cn.axzo.tyr.client.model.permission; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ListByWorkspaceIdAndOuIdReq { + + private Long workspaceId; + + private Long ouId; +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/ListFeatureIdByGroupIdsReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/ListFeatureIdByGroupIdsReq.java new file mode 100644 index 00000000..5fb2a0de --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/ListFeatureIdByGroupIdsReq.java @@ -0,0 +1,17 @@ +package cn.axzo.tyr.client.model.permission; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ListFeatureIdByGroupIdsReq { + + private List groupIds; +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetByIdsReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetByIdsReq.java new file mode 100644 index 00000000..b59e5401 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/GetByIdsReq.java @@ -0,0 +1,17 @@ +package cn.axzo.tyr.client.model.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetByIdsReq { + + private List ids; +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasFeatureBO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasFeatureBO.java new file mode 100644 index 00000000..00766f23 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasFeatureBO.java @@ -0,0 +1,106 @@ +package cn.axzo.tyr.client.model.res; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SaasFeatureBO { + + /** + * 适用单位类型 位 + */ + private Long fitOuTypeBit; + /** + * id + */ + private Long id; + /** + * 名称 + */ + private String featureName; + /** + * 描述 + */ + private String description; + /** + * code + */ + private String featureCode; + /** + * 图标地址 + */ + private String icon; + /** + * 菜单上级id + */ + private Long parentId; + /** + * 链接地址 + */ + private String linkUrl; + /** + * 1:CMS 2:小程序 4:原生 + */ + private Integer linkType; + /** + * 扩展字段 + */ + private String linkExt; + /** + * 小程序id 关联micro_app_item id + */ + private String microAppItemId; + /** + * 路径 + */ + private String path; + /** + * 排序 + */ + private Integer sort; + /** + * terminal + */ + private String terminal; + /** + * 类型 0.模块 1.菜单 2页面 3功能 + */ + private Integer featureType; + /** + * 是否需要权限 1.需要 2:不需要 + */ + private Integer needAuth; + /** + * 是否删除 + */ + private Long isDelete; + /** + * 创建人id + */ + private Long createBy; + /** + * 创建时间 + */ + private LocalDateTime createAt; + /** + * 更新时间 + */ + private LocalDateTime updateAt; + /** + * 修改人id + */ + private Long updateBy; + + private Long productId; + + private String productName; + + private String legacyLayout; +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasPermissionGroupRes.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasPermissionGroupRes.java new file mode 100644 index 00000000..ac587358 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasPermissionGroupRes.java @@ -0,0 +1,88 @@ +package cn.axzo.tyr.client.model.res; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SaasPermissionGroupRes { + + private Long id; + + /** + * 创建时间 + */ + private Date createAt; + + /** + * 修改时间 + */ + private Date updateAt; + + /** + * 是否删除 0正常,1删除 + */ + private Long isDelete = 0L; + + /** + * 权限集名称 + */ + private String name; + /** + * 权限集描述 + */ + private String description; + + /** + * 1:总包企业产品 2:总包项目产品 3:政企产品 4:分包企业产品 5:班组产品 + */ + private Integer productType; + + /** + * 权限集类型 1查看 2操作管理 + */ + private Integer legacyType; + + /** + * 创建者 + */ + private Long createBy; + /** + * 更新者 + */ + private Long updateBy; + /** + * 是否自定义 0:不是 1:是 如果为1 custom_space_id 不能为空 + */ + private Integer isCustom; + /** + * 工作台Id + */ + private Long customSpaceId; + + /** + * 适用单位类型 1:总包 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6:班组 0都可以用 + */ + private Long fitOuTypeBit; + + /** + * 适用节点类型 1:部门 2:班组 3:小组 + */ + private Long fitOuNodeTypeBit; + + /** + * 单位ID + */ + private Long ouId; + + /** + * 功能分组ID + */ + private Long productCategoryId; +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasPgroupPermissionRelationRes.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasPgroupPermissionRelationRes.java new file mode 100644 index 00000000..7520eed9 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/SaasPgroupPermissionRelationRes.java @@ -0,0 +1,51 @@ +package cn.axzo.tyr.client.model.res; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SaasPgroupPermissionRelationRes { + + private Long id; + + /** + * 创建时间 + */ + private Date createAt; + + /** + * 修改时间 + */ + private Date updateAt; + + /** + * 是否删除 0正常,1删除 + */ + private Long isDelete = 0L; + + /** + * 权限集id + */ + private Long groupId; + /** + * 功能id + */ + private Long featureId; + + /** + * 创建者 + */ + private Long createBy; + /** + * 更新者 + */ + private Long updateBy; + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/SaasFeatureApiImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/SaasFeatureApiImpl.java index fbe0d1d2..35111acb 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/SaasFeatureApiImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/SaasFeatureApiImpl.java @@ -1,14 +1,17 @@ package cn.axzo.tyr.server.controller.permission; +import cn.axzo.basics.common.BeanMapper; import cn.axzo.framework.domain.web.result.ApiResult; -import cn.axzo.pudge.core.persistence.BaseEntity; import cn.axzo.tyr.client.feign.SaasFeatureApi; import cn.axzo.tyr.client.model.permission.ApplicationFeatureRes; import cn.axzo.tyr.client.model.permission.GetInfoByMicroAppItemIdReq; import cn.axzo.tyr.client.model.permission.SaasFeatureRes; +import cn.axzo.tyr.client.model.req.GetByIdsReq; +import cn.axzo.tyr.client.model.res.SaasFeatureBO; import cn.axzo.tyr.server.repository.dao.SaasFeatureDao; import cn.axzo.tyr.server.repository.entity.SaasFeature; import cn.azxo.framework.common.model.CommonResponse; +import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.util.CollectionUtils; @@ -106,4 +109,13 @@ public class SaasFeatureApiImpl implements SaasFeatureApi { return ApiResult.ok(result); } + + @Override + public ApiResult> getByIds(GetByIdsReq req) { + if (CollectionUtils.isEmpty(req.getIds())) { + return ApiResult.ok(Lists.newArrayList()); + } + List list = saasFeatureDao.lambdaQuery().in(SaasFeature::getId, req.getIds()).list(); + return ApiResult.ok(BeanMapper.mapList(list, SaasFeatureBO.class)); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/SaasRoleUserRelationApiImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/SaasRoleUserRelationApiImpl.java index 355b17ca..6b42bbc7 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/SaasRoleUserRelationApiImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/SaasRoleUserRelationApiImpl.java @@ -1,6 +1,8 @@ package cn.axzo.tyr.server.controller.permission; +import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.SaasRoleUserRelationApi; +import cn.axzo.tyr.client.model.req.WorkspaceUpdateUserRoleDTO; import cn.axzo.tyr.server.service.SaasRoleUserRelationService; import cn.azxo.framework.common.model.CommonResponse; import lombok.RequiredArgsConstructor; @@ -21,4 +23,9 @@ public class SaasRoleUserRelationApiImpl implements SaasRoleUserRelationApi { saasRoleUserRelationService.deleteByPersonId(personId)); } + @Override + public ApiResult updateWorkspaceUserRoles(WorkspaceUpdateUserRoleDTO req) { + + return ApiResult.ok(saasRoleUserRelationService.updateWorkspaceUserRoles(req)); + } } \ No newline at end of file diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasPermissionGroupController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasPermissionGroupController.java index aea17984..fd8eed8f 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasPermissionGroupController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasPermissionGroupController.java @@ -1,12 +1,17 @@ package cn.axzo.tyr.server.controller.role; +import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.basics.common.exception.ServiceException; import cn.axzo.framework.domain.page.PageResp; import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.SaasPermissionGroupApi; +import cn.axzo.tyr.client.model.permission.ListByWorkspaceIdAndOuIdReq; +import cn.axzo.tyr.client.model.permission.ListFeatureIdByGroupIdsReq; import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq; +import cn.axzo.tyr.client.model.res.SaasPermissionGroupRes; +import cn.axzo.tyr.client.model.res.SaasPgroupPermissionRelationRes; import cn.axzo.tyr.client.model.vo.DeletePermissionGroupVO; import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO; import cn.axzo.tyr.client.model.vo.SaveOrUpdatePermissionGroupVO; @@ -14,15 +19,20 @@ import cn.axzo.tyr.client.model.vo.SavePermissionGroupPPVO; import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupDao; import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupScopeDao; import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationDao; +import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup; +import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation; import cn.axzo.tyr.server.service.PermissionGroupService; import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Slf4j @RestController @@ -33,6 +43,7 @@ public class SaasPermissionGroupController implements SaasPermissionGroupApi { private final SaasPgroupPermissionRelationDao pgroupPermissionRelationDao; private final SaasPermissionGroupScopeDao permissionGroupScopeDao; private final PermissionGroupService permissionGroupService; + private final SaasPermissionGroupDao saasPermissionGroupDao; @Override public ApiResult saveOrUpdateSpecial(SaveOrUpdatePermissionGroupVO permissionGroup) { @@ -79,4 +90,39 @@ public class SaasPermissionGroupController implements SaasPermissionGroupApi { return ApiResult.ok(); } + @Override + public ApiResult> listByWorkspaceIdAndOuId(ListByWorkspaceIdAndOuIdReq group) { + List saasPermissionGroupRes = saasPermissionGroupDao.lambdaQuery() + .eq(Objects.nonNull(group.getWorkspaceId()), SaasPermissionGroup::getCustomSpaceId, group.getWorkspaceId()) + .eq(Objects.nonNull(group.getOuId()), SaasPermissionGroup::getOuId, group.getOuId()) + .list() + .stream() + .map(e -> { + SaasPermissionGroupRes result = SaasPermissionGroupRes.builder().build(); + BeanUtils.copyProperties(e, result); + return result; + }) + .collect(Collectors.toList()); + + return ApiResult.ok(saasPermissionGroupRes); + } + + @Override + public ApiResult> listFeatureIdByGroupIds(ListFeatureIdByGroupIdsReq group) { + + List saasPgroupPermissionRelationRes = pgroupPermissionRelationDao.lambdaQuery() + .select(SaasPgroupPermissionRelation::getFeatureId) + .eq(SaasPgroupPermissionRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .in(SaasPgroupPermissionRelation::getGroupId, group.getGroupIds()) + .list() + .stream() + .map(e -> { + SaasPgroupPermissionRelationRes result = SaasPgroupPermissionRelationRes.builder().build(); + BeanUtils.copyProperties(e, result); + return result; + }) + .collect(Collectors.toList()); + + return ApiResult.ok(saasPgroupPermissionRelationRes); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPermissionGroup.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPermissionGroup.java index 8fcd2444..7d5a5524 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPermissionGroup.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPermissionGroup.java @@ -55,6 +55,16 @@ public class SaasPermissionGroup extends BaseEntity { */ private Integer isCommon; + /** + * 工作台Id + */ + private Long customSpaceId; + + /** + * 单位ID + */ + private Long ouId; + /** * 获取主键值 * diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserRelationService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserRelationService.java index 884c5f1e..0b1cb632 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserRelationService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserRelationService.java @@ -8,6 +8,7 @@ import cn.axzo.tyr.client.model.permission.QueryIdentityByPermissionDTO; import cn.axzo.tyr.client.model.permission.SaasUserRoleExBO; import cn.axzo.tyr.client.model.req.QuerySuperAdminReq; import cn.axzo.tyr.client.model.req.UpdateUserJobReq; +import cn.axzo.tyr.client.model.req.WorkspaceUpdateUserRoleDTO; import cn.axzo.tyr.client.model.res.SuperAminInfoResp; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserV2DTO; @@ -53,4 +54,6 @@ public interface SaasRoleUserRelationService extends IService getSuperAdminIdsByWorkspaceAndOu(Long workspaceId, Long ouId); List getUserRoleExListMapByIdentityIdAndWorkspaceId(List identityIds, IdentityType identityType, Long workspaceId); + + Boolean updateWorkspaceUserRoles(WorkspaceUpdateUserRoleDTO req); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java index cfabf283..4d83e80f 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java @@ -24,6 +24,7 @@ import cn.axzo.tyr.client.model.enums.SaasJobTypeEnum; import cn.axzo.tyr.client.model.permission.IdentityAndAccountDTO; import cn.axzo.tyr.client.model.permission.IdentityKey; import cn.axzo.tyr.client.model.permission.QueryIdentityByPermissionDTO; +import cn.axzo.tyr.client.model.permission.SaasUserRoleExBO; import cn.axzo.tyr.client.model.req.QuerySuperAdminReq; import cn.axzo.tyr.client.model.req.UpdateUserJobReq; import cn.axzo.tyr.client.model.req.WorkspaceUpdateUserRoleDTO; @@ -36,7 +37,6 @@ import cn.axzo.tyr.client.model.roleuser.req.PageRoleUserRelationParam; import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam; import cn.axzo.tyr.server.common.util.NumUtil; import cn.axzo.tyr.server.model.QueryUserRoleReq; -import cn.axzo.tyr.client.model.permission.SaasUserRoleExBO; import cn.axzo.tyr.server.repository.dao.SaasRoleDao; import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao; import cn.axzo.tyr.server.repository.entity.SaasRole; @@ -595,4 +595,14 @@ public class SaasRoleUserRelationServiceImpl extends ServiceImpl getUserRoleExListMapByIdentityIdAndWorkspaceId(List identityIds, IdentityType identityType, Long workspaceId) { return saasRoleUserRelationDao.listUserRoleExByIdentityIdsAndWorkspaceId(identityIds, identityType, workspaceId); } + + @Transactional(rollbackFor = Throwable.class) + @Override + public Boolean updateWorkspaceUserRoles(WorkspaceUpdateUserRoleDTO g) { + checkWorkspace(g.getWorkspaceId()); + checkRoleInWorkspaceAndFitOu(g.getUpdateRoleIds(), g.getWorkspaceId(), g.getOuId(), + Arrays.asList(RoleTypeEnum.INIT, RoleTypeEnum.COMMON)); + doUpdateWorkspaceUserRoles(g.getIdentityId(), g.getIdentityType(), g.getUpdateRoleIds(), g.getWorkspaceId(), g.getOuId(), g.getJobType()); + return Boolean.TRUE; + } }