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 5ebc745e..4d80fbd5 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 @@ -9,16 +9,18 @@ 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; + /** * 权限集 */ -@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080/api/saasPermissionGoup}") +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}") public interface SaasPermissionGroupApi { /** * 保存/更新 */ - @PostMapping("saveOrUpdate") + @PostMapping("/api/saasPermissionGoup/saveOrUpdate") ApiResult saveOrUpdate(@RequestBody SaasPermissionGroupVO req); /** @@ -26,19 +28,19 @@ public interface SaasPermissionGroupApi { * @param id * @return */ - @PostMapping("getById") + @PostMapping("/api/saasPermissionGoup/getById") ApiResult getById(@RequestParam("id") Long id); /** * 查询 */ - @PostMapping("query") + @PostMapping("/api/saasPermissionGoup/query") ApiPageResult query(@RequestBody QuerySaasPermissionGroupReq req); /** * 删除 */ - @PostMapping("delete") - ApiResult delete(@RequestParam(required = true) Long id); + @PostMapping("/api/saasPermissionGoup/delete") + ApiResult delete(@RequestBody List id); } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleApi.java index e72b2b23..a2091a01 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleApi.java @@ -3,6 +3,7 @@ package cn.axzo.tyr.client.feign; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; import cn.axzo.tyr.client.model.vo.SaasRoleVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -12,7 +13,6 @@ import org.springframework.web.bind.annotation.RequestParam; import javax.validation.constraints.NotNull; import java.util.List; -import java.util.Map; /** * 角色 @@ -41,6 +41,12 @@ public interface SaasRoleApi { @PostMapping("/api/saasRole/query") ApiResult> query(@RequestBody QuerySaasRoleReq req); + /** + * 删除 + */ + @PostMapping("/api/saasRole/delete") + ApiResult delete(@RequestBody List id); + /** * 根据身份id身份类型查询权限列表(批量) * @param identityType 身份类型 1:工人 2:班组长 3:从业人员 4:监管人员 5:运营人员 @@ -54,7 +60,7 @@ public interface SaasRoleApi { * @return */ @GetMapping("/api/saasRole/queryBatchByIdentityIdType") - ApiResult>> queryBatchByIdentityIdType(@RequestBody List req); + ApiResult> queryBatchByIdentityIdType(@RequestBody List req); diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGroupApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGroupApi.java index 7f2886f4..d2a1d414 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGroupApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGroupApi.java @@ -1,6 +1,5 @@ package cn.axzo.tyr.client.feign; -import cn.axzo.framework.domain.web.result.ApiListResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq; import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO; @@ -9,31 +8,33 @@ 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; + /** * 角色分组 */ -@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080/api/saasRoleGroup}") +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}") public interface SaasRoleGroupApi { /** * 保存/更新 * @return */ - @PostMapping("save") - ApiResult saveOrUpdate(@RequestBody SaasRoleGroupVO req); + @PostMapping("/api/saasRoleGroup/save") + ApiResult saveOrUpdate(@RequestBody SaasRoleGroupVO req); /** * 获取权限分组列表 * @return */ - @PostMapping("getList") - ApiListResult getList(@RequestBody QuerySaasRoleGroupReq req); + @PostMapping("/api/saasRoleGroup/getList") + ApiResult> getList(@RequestBody QuerySaasRoleGroupReq req); /** - * 删除分组 + * 删除 */ - @PostMapping("delete") - ApiResult delete(@RequestParam(required = true) Long id); + @PostMapping("/api/saasRoleGroup//api/saasPermissionGoup/delete") + ApiResult delete(@RequestBody List id); } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionGroupType.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionGroupType.java index 6a92fd64..d2808dbd 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionGroupType.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionGroupType.java @@ -10,7 +10,7 @@ import java.util.Map; @AllArgsConstructor public enum PermissionGroupType { COMMON(1, "通用"), - Special (0, "例外"), + SPECIAL(0, "例外"), ; private Integer code; diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionScope.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionScope.java new file mode 100644 index 00000000..5fbd890c --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionScope.java @@ -0,0 +1,29 @@ +package cn.axzo.tyr.client.model.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +@Getter +@AllArgsConstructor +public enum PermissionScope { + INCLUDE(1, "正选"), + EXCLUDE (2, "反选"), + ; + + private Integer code; + private String desc; + + private static final Map MAPPING = new HashMap<>(); + static { + for (PermissionScope type : PermissionScope.values()) { + MAPPING.put(type.code, type); + } + } + + public static PermissionScope apply(Integer code) { + return code == null ? null :MAPPING.get(code); + } +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionScopeType.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionScopeType.java new file mode 100644 index 00000000..d08e51a0 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/enums/PermissionScopeType.java @@ -0,0 +1,29 @@ +package cn.axzo.tyr.client.model.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +@Getter +@AllArgsConstructor +public enum PermissionScopeType { + WORKSPACE("workspace", "项目部"), + OU ("ou", "单位"), + ; + + private String code; + private String desc; + + private static final Map MAPPING = new HashMap<>(); + static { + for (PermissionScopeType type : PermissionScopeType.values()) { + MAPPING.put(type.code, type); + } + } + + public static PermissionScopeType apply(Integer code) { + return code == null ? null :MAPPING.get(code); + } +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java index 978a9d01..28ed8ce6 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java @@ -3,6 +3,7 @@ package cn.axzo.tyr.client.model.permission; import lombok.Data; import java.util.List; +import java.util.Set; /** * 权限点树形查询请求参数 @@ -27,7 +28,7 @@ public class PermissionPointTreeQueryReq { private List terminalList; /** 权限点ID列表 **/ - private List ids; + private Set ids; /** 权限点terminal对应workspaceType **/ private List workspaceType; diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductFeatureRelationSearchReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductFeatureRelationSearchReq.java index e9a0cb50..169ba66b 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductFeatureRelationSearchReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductFeatureRelationSearchReq.java @@ -29,4 +29,9 @@ public class ProductFeatureRelationSearchReq { */ private Long dictCodeId; + /** + * 字典的 code + */ + private String dictCode; + } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductFeatureRelationUpdateReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductFeatureRelationUpdateReq.java index 3cdac030..6ed6fa36 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductFeatureRelationUpdateReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductFeatureRelationUpdateReq.java @@ -32,6 +32,11 @@ public class ProductFeatureRelationUpdateReq { @NotNull(message = "字典 ouType ID 不能为空") private Long dictCodeId; + /** + * 字典的 code + */ + private String dictCode; + /** * 权限点 ID */ diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/QueryBatchByIdentityIdTypeRes.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/QueryBatchByIdentityIdTypeRes.java new file mode 100644 index 00000000..a1632fc9 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/QueryBatchByIdentityIdTypeRes.java @@ -0,0 +1,31 @@ +package cn.axzo.tyr.client.model.res; + +import cn.axzo.tyr.client.model.vo.SaasRoleVO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QueryBatchByIdentityIdTypeRes { + + Long identityId; + + /** + * 身份类型 1:工人 2:班组长 3:从业人员 4:监管人员 5:运营人员 + */ + Integer identityType; + + Long workspaceId; + + Long ouId; + + List role; + + +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasPermissionGroupVO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasPermissionGroupVO.java index c22753a2..97102097 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasPermissionGroupVO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasPermissionGroupVO.java @@ -46,9 +46,18 @@ public class SaasPermissionGroupVO { */ private String type; + /** + * 是否为通用权限集 1:是 0:否 + */ + private Integer isCommon; + /** * 权限 */ private List feature; + /** + * 权限范围 + */ + private List scopes; } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleGroupVO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleGroupVO.java index 2f44645a..fb640369 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleGroupVO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleGroupVO.java @@ -1,11 +1,17 @@ package cn.axzo.tyr.client.model.vo; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.Date; import java.util.List; @Data +@AllArgsConstructor +@NoArgsConstructor +@Builder public class SaasRoleGroupVO { private Long id; @@ -13,22 +19,12 @@ public class SaasRoleGroupVO { /** * 工作台类型字典code */ - private Long workspaceTypeCode; + private String workspaceTypeCode; /** * 单位类型字典code */ - private List ouTypeCode; - - /** - * 所属工作台id - */ - private Long workspaceId; - - /** - * 所属单位id - */ - private Long ouId; + private List ouTypeCode; /** * 名称 diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRolePermissionScopeVO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRolePermissionScopeVO.java index 5923b3d7..283cec37 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRolePermissionScopeVO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRolePermissionScopeVO.java @@ -14,6 +14,8 @@ public class SaasRolePermissionScopeVO { private Long id; + private Long pgroupId; + /** * 选择类型: 1.正选 2.反选 */ diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleVO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleVO.java index 1de30b24..a2fc1ec7 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleVO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/vo/SaasRoleVO.java @@ -38,11 +38,6 @@ public class SaasRoleVO { */ private Long updateBy; - /** - * 分组id(这个关联关系应该放在上一级,从结构上看,上下级是多对多的,如果放在下级返回上级的id不太合适) - */ -// private List roleGroupIds; - /** * 权限组 */ @@ -53,7 +48,6 @@ public class SaasRoleVO { */ private Long isDelete; - private Date createAt; private Date updateAt; @@ -65,5 +59,4 @@ public class SaasRoleVO { public List getFeature(){ return this.permissionGroup.stream().map(SaasPermissionGroupVO::getFeature).flatMap(List::stream).distinct().collect(Collectors.toList()); } - } 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 new file mode 100644 index 00000000..27bc90e0 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasPermissionGroupController.java @@ -0,0 +1,57 @@ +package cn.axzo.tyr.server.controller.role; + + +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.req.QuerySaasPermissionGroupReq; +import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO; +import cn.axzo.tyr.server.repository.service.SaasPermissionGroupDao; +import cn.axzo.tyr.server.repository.service.SaasPermissionGroupScopeDao; +import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao; +import cn.axzo.tyr.server.service.PermissionGroupService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Slf4j +@RestController +@RequiredArgsConstructor +public class SaasPermissionGroupController implements SaasPermissionGroupApi { + + private final SaasPermissionGroupDao permissionGroupDao; + private final SaasPgroupPermissionRelationDao pgroupPermissionRelationDao; + private final SaasPermissionGroupScopeDao permissionGroupScopeDao; + private final PermissionGroupService permissionGroupService; + + @Override + public ApiResult saveOrUpdate(SaasPermissionGroupVO req) { + return null; + } + + @Override + public ApiResult getById(Long id) { + return null; + } + + @Override + public ApiPageResult query(QuerySaasPermissionGroupReq req) { + return ApiPageResult.ok(permissionGroupService.page(req)); + } + + @Transactional + @Override + public ApiResult delete(List id) { + // 删除权限集 + permissionGroupDao.delete(id); + // 删除权限集权限关联关系 + pgroupPermissionRelationDao.deleteByPGroupId(id); + // 删除权限集作用范围 + permissionGroupScopeDao.deleteByPGroupId(id); + return ApiResult.ok(); + } + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java index 79f018e9..e87f63a9 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java @@ -6,6 +6,7 @@ import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.SaasRoleApi; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; import cn.axzo.tyr.client.model.vo.SaasRoleVO; import cn.axzo.tyr.server.service.RoleService; import com.google.common.collect.Lists; @@ -16,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; import java.util.List; -import java.util.Map; /** * 权限 @@ -53,13 +53,18 @@ public class SaasRoleController implements SaasRoleApi { return ApiResult.ok(roleService.query(req)); } + @Override + public ApiResult delete(List id) { + return null; + } + @Override public ApiResult> queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId) { return ApiResult.ok(roleService.queryByIdentityIdType(identityId, identityType,workspaceId,ouId)); } @Override - public ApiResult>> queryBatchByIdentityIdType(List req) { + public ApiResult> queryBatchByIdentityIdType(List req) { return ApiResult.ok(roleService.queryBatchByIdentityIdType(req)); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleGroupController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleGroupController.java index e25896c0..4971b46d 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleGroupController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleGroupController.java @@ -1,6 +1,5 @@ package cn.axzo.tyr.server.controller.role; -import cn.axzo.framework.domain.web.result.ApiListResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.SaasRoleGroupApi; import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq; @@ -10,24 +9,29 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @Slf4j @RestController @RequiredArgsConstructor public class SaasRoleGroupController implements SaasRoleGroupApi { + private final SaasRoleGroupService saasRoleGroupService; @Override - public ApiResult saveOrUpdate(SaasRoleGroupVO req) { - return null; + public ApiResult saveOrUpdate(SaasRoleGroupVO req) { + saasRoleGroupService.saveOrUpdate(req); + return ApiResult.ok(); } @Override - public ApiListResult getList(QuerySaasRoleGroupReq req) { - return ApiListResult.ok(saasRoleGroupService.getList(req)); + public ApiResult> getList(QuerySaasRoleGroupReq req) { + return ApiResult.ok(saasRoleGroupService.getList(req)); } @Override - public ApiResult delete(Long id) { - return null; + public ApiResult delete(List id) { + + return ApiResult.ok(); } } 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 23c6491b..ea68f23a 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 @@ -36,11 +36,15 @@ public class SaasPermissionGroup extends BaseEntity { * 创建者 */ private Long createBy; + + private String createName; /** * 更新者 */ private Long updateBy; + private String updateName; + /** * 权限集类型:feature data */ diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPermissionGroupScope.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPermissionGroupScope.java index 32ebafaa..ad530253 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPermissionGroupScope.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPermissionGroupScope.java @@ -23,6 +23,12 @@ public class SaasPermissionGroupScope extends BaseEntity { + public void delete(List id) { + lambdaUpdate() + .in(BaseEntity::getId,id) + .set(BaseEntity::getIsDelete,id) + .update(); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPermissionGroupScopeDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPermissionGroupScopeDao.java index 00587ebd..17ee34a8 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPermissionGroupScopeDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPermissionGroupScopeDao.java @@ -1,5 +1,7 @@ package cn.axzo.tyr.server.repository.service; +import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup; import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope; import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupMapper; @@ -7,8 +9,16 @@ import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupScopeMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public class SaasPermissionGroupScopeDao extends ServiceImpl { + public void deleteByPGroupId(List pgroupId) { + lambdaUpdate() + .in(SaasPermissionGroupScope::getPgroupId,pgroupId) + .set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value) + .update(); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPgroupPermissionRelationDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPgroupPermissionRelationDao.java index f0c9efb9..f7317bd7 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPgroupPermissionRelationDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPgroupPermissionRelationDao.java @@ -1,5 +1,7 @@ package cn.axzo.tyr.server.repository.service; +import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation; import cn.axzo.tyr.server.repository.entity.SaasRole; import cn.axzo.tyr.server.repository.mapper.SaasPgroupPermissionRelationMapper; @@ -17,5 +19,13 @@ public class SaasPgroupPermissionRelationDao extends ServiceImpl() .in(SaasPgroupPermissionRelation::getFeatureId, permissionPointIds)); } + + public void deleteByPGroupId(List pgroupId) { + lambdaUpdate() + .in(SaasPgroupPermissionRelation::getGroupId,pgroupId) + .set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value) + .update(); + } + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPgroupRoleRelationDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPgroupRoleRelationDao.java index 624e7e5d..27057033 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPgroupRoleRelationDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasPgroupRoleRelationDao.java @@ -1,5 +1,7 @@ package cn.axzo.tyr.server.repository.service; +import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup; import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation; import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupMapper; @@ -7,8 +9,17 @@ import cn.axzo.tyr.server.repository.mapper.SaasPgroupRoleRelationMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public class SaasPgroupRoleRelationDao extends ServiceImpl { + public void deleteByRoleId(List roleId) { + lambdaUpdate() + .in(SaasPgroupRoleRelation::getRoleId,roleId) + .set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value) + .update(); + } + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleDao.java index 3d413049..68234eda 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleDao.java @@ -1,5 +1,6 @@ package cn.axzo.tyr.server.repository.service; +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.server.repository.entity.SaasRole; import cn.axzo.tyr.server.repository.entity.SaasRoleGroup; import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper; @@ -7,8 +8,17 @@ import cn.axzo.tyr.server.repository.mapper.SaasRoleMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public class SaasRoleDao extends ServiceImpl { + public void delete(List id) { + lambdaUpdate() + .in(BaseEntity::getId,id) + .set(BaseEntity::getIsDelete,id) + .update(); + } + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleGroupDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleGroupDao.java index 5fdc2ffb..6900378d 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleGroupDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleGroupDao.java @@ -45,5 +45,12 @@ public class SaasRoleGroupDao extends ServiceImpl id) { + lambdaUpdate() + .in(BaseEntity::getId,id) + .set(BaseEntity::getIsDelete,id) + .update(); + } + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleGroupRelationDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleGroupRelationDao.java index f8a24f9f..05eba429 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleGroupRelationDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleGroupRelationDao.java @@ -1,5 +1,7 @@ package cn.axzo.tyr.server.repository.service; +import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.server.repository.entity.SaasRoleGroup; import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation; import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper; @@ -7,8 +9,17 @@ import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupRelationMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public class SaasRoleGroupRelationDao extends ServiceImpl { + public void deleteByRoleGroupId(List roleGroupId) { + lambdaUpdate() + .in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroupId) + .set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value) + .update(); + } + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleUserRelationDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleUserRelationDao.java index 3866cbf8..fde44b5f 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleUserRelationDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/service/SaasRoleUserRelationDao.java @@ -21,5 +21,13 @@ public class SaasRoleUserRelationDao extends ServiceImpl roleId) { + lambdaUpdate() + .in(SaasRoleUserRelation::getRoleId,roleId) + .set(BaseEntity::getIsDelete,TableIsDeleteEnum.DELETE.value) + .update(); + } + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/PermissionGroupService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/PermissionGroupService.java index 19017dc6..d6f96b88 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/PermissionGroupService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/PermissionGroupService.java @@ -1,5 +1,6 @@ package cn.axzo.tyr.server.service; +import cn.axzo.framework.domain.page.PageResp; import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq; import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO; @@ -19,6 +20,6 @@ public interface PermissionGroupService { */ public List query(QuerySaasPermissionGroupReq req); - + PageResp page(QuerySaasPermissionGroupReq req); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java index b8df6dd9..97d42ee5 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.service; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; import cn.axzo.tyr.client.model.vo.SaasRoleVO; import java.util.List; @@ -21,5 +22,5 @@ public interface RoleService { List query(QuerySaasRoleReq req); - Map> queryBatchByIdentityIdType(List req); + List queryBatchByIdentityIdType(List req); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleGroupService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleGroupService.java index d50e03d2..456d2f59 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleGroupService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleGroupService.java @@ -7,4 +7,8 @@ import java.util.List; public interface SaasRoleGroupService { List getList(QuerySaasRoleGroupReq req); + + void saveOrUpdate(SaasRoleGroupVO req); + + void delete(Long id); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java index b7f04ebe..777362cc 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java @@ -1,18 +1,24 @@ package cn.axzo.tyr.server.service.impl; +import cn.axzo.basics.common.BeanMapper; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; +import cn.axzo.framework.domain.page.PageResp; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq; import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO; +import cn.axzo.tyr.client.model.vo.SaasRolePermissionScopeVO; import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup; +import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope; import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation; import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation; import cn.axzo.tyr.server.repository.service.SaasPermissionGroupDao; +import cn.axzo.tyr.server.repository.service.SaasPermissionGroupScopeDao; import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao; import cn.axzo.tyr.server.repository.service.SaasPgroupRoleRelationDao; import cn.axzo.tyr.server.service.PermissionGroupService; import cn.axzo.tyr.server.service.PermissionPointService; +import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; @@ -44,6 +50,8 @@ public class PermissionGroupImpl implements PermissionGroupService { SaasPgroupPermissionRelationDao permissionRelationDao; @Autowired PermissionPointService featureService; + @Autowired + SaasPermissionGroupScopeDao saasPermissionGroupScopeDao; @Override public List query(QuerySaasPermissionGroupReq req) { @@ -54,6 +62,12 @@ public class PermissionGroupImpl implements PermissionGroupService { .in(SaasPgroupRoleRelation::getRoleId, req.getRoleIds()) .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) .list(); + List hitIds = relationList.stream().map(SaasPgroupRoleRelation::getGroupId).distinct().collect(Collectors.toList()); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(req.getIds())) { + req.getIds().retainAll(hitIds); + } else { + req.setIds(hitIds); + } // 如果没查询到关联关系则直接返回 if (CollectionUtils.isEmpty(relationList)) { return new ArrayList<>(); @@ -66,6 +80,7 @@ public class PermissionGroupImpl implements PermissionGroupService { .eq(req.getCreateBy() != null, SaasPermissionGroup::getCreateBy, req.getCreateBy()) .eq(req.getUpdateBy() != null, SaasPermissionGroup::getUpdateBy, req.getUpdateBy()) .eq(StringUtils.isNotBlank(req.getType()), SaasPermissionGroup::getType, req.getType()) + .like(StringUtils.isNotBlank(req.getName()), SaasPermissionGroup::getName, req.getName()) .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) .orderByDesc(BaseEntity::getId) .list(); @@ -73,9 +88,10 @@ public class PermissionGroupImpl implements PermissionGroupService { if (CollectionUtils.isEmpty(groupList)) { return new ArrayList<>(); } + List groupIds = groupList.stream().map(BaseEntity::getId).collect(Collectors.toList()); // 查询权限集关联的权限 List permissionList = permissionRelationDao.lambdaQuery() - .in(SaasPgroupPermissionRelation::getGroupId, groupList.stream().map(BaseEntity::getId).collect(Collectors.toList())) + .in(SaasPgroupPermissionRelation::getGroupId, groupIds) .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) .list(); List feature = null; @@ -83,6 +99,10 @@ public class PermissionGroupImpl implements PermissionGroupService { // 查询featureCode feature = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())); } + List saasPermissionGroupScopes = saasPermissionGroupScopeDao.lambdaQuery() + .in(SaasPermissionGroupScope::getPgroupId, groupIds) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list(); // 组装填充字段 List finalFeature = feature; return groupList.stream().map(group -> @@ -90,11 +110,81 @@ public class PermissionGroupImpl implements PermissionGroupService { .id(group.getId()) .name(group.getName()) .feature(finalFeature) + .scopes(saasPermissionGroupScopes.stream().map(e -> BeanMapper.copyBean(e, SaasRolePermissionScopeVO.class)).collect(Collectors.toList())) .createBy(group.getCreateBy()) .updateBy(group.getUpdateBy()) .type(group.getType()) + .isCommon(group.getIsCommon()) .build() ).collect(Collectors.toList()); } + + @Override + public PageResp page(QuerySaasPermissionGroupReq req) { + // 如果角色id不为空则先查询角色权限集关联表 + IPage iPage = req.toPage(); + if (CollectionUtils.isNotEmpty(req.getRoleIds())) { + List relationList = roleRelationDao.lambdaQuery() + .in(SaasPgroupRoleRelation::getRoleId, req.getRoleIds()) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list(); + List hitIds = relationList.stream().map(SaasPgroupRoleRelation::getGroupId).distinct().collect(Collectors.toList()); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(req.getIds())) { + req.getIds().retainAll(hitIds); + } else { + req.setIds(hitIds); + } + // 如果没查询到关联关系则直接返回 + if (CollectionUtils.isEmpty(relationList)) { + return PageResp.zero(iPage.getCurrent(), iPage.getSize()); + } + } + // 查询权限集 + iPage = permissionGroupDao.lambdaQuery() + .in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId, req.getIds()) + .eq(req.getIsCommon() != null, SaasPermissionGroup::getIsCommon, req.getIsCommon()) + .eq(req.getCreateBy() != null, SaasPermissionGroup::getCreateBy, req.getCreateBy()) + .eq(req.getUpdateBy() != null, SaasPermissionGroup::getUpdateBy, req.getUpdateBy()) + .eq(StringUtils.isNotBlank(req.getType()), SaasPermissionGroup::getType, req.getType()) + .like(StringUtils.isNotBlank(req.getName()), SaasPermissionGroup::getName, req.getName()) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .orderByAsc(BaseEntity::getCreateAt).orderByAsc(BaseEntity::getId) + .page(iPage); + List groupList = iPage.getRecords(); + // 如果权限集为空则直接返回 + if (CollectionUtils.isEmpty(groupList)) { + return PageResp.zero(iPage.getCurrent(), iPage.getSize()); + } + List groupIds = groupList.stream().map(BaseEntity::getId).collect(Collectors.toList()); + // 查询权限集关联的权限 + List permissionList = permissionRelationDao.lambdaQuery() + .in(SaasPgroupPermissionRelation::getGroupId, groupIds) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list(); + List feature = null; + if (CollectionUtils.isNotEmpty(permissionList)) { + // 查询featureCode + feature = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())); + } + List saasPermissionGroupScopes = saasPermissionGroupScopeDao.lambdaQuery() + .in(SaasPermissionGroupScope::getPgroupId, groupIds) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list(); + // 组装填充字段 + List finalFeature = feature; + List pageList = groupList.stream().map(group -> + SaasPermissionGroupVO.builder() + .id(group.getId()) + .name(group.getName()) + .feature(finalFeature) + .scopes(saasPermissionGroupScopes.stream().map(e -> BeanMapper.copyBean(e, SaasRolePermissionScopeVO.class)).collect(Collectors.toList())) + .createBy(group.getCreateBy()) + .updateBy(group.getUpdateBy()) + .type(group.getType()) + .isCommon(group.getIsCommon()) + .build() + ).collect(Collectors.toList()); + return PageResp.list(iPage.getCurrent(), iPage.getSize(), iPage.getTotal(), pageList); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java index 001fe90f..2078213c 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java @@ -140,7 +140,8 @@ public class PermissionPointServiceImpl implements PermissionPointService { private List filterTreeNode(PermissionPointTreeQueryReq request, List treeList) { //过滤条件 boolean needFilter = StrUtil.isNotBlank(request.getKeyword()) - || request.getDelegateType() != 0; + || request.getDelegateType() != 0 + || CollectionUtil.isNotEmpty(request.getIds()); if (needFilter) { return treeList.stream().filter(x -> this.recursionFilter(request, x)).collect(Collectors.toList()); @@ -149,14 +150,17 @@ public class PermissionPointServiceImpl implements PermissionPointService { } private boolean recursionFilter(PermissionPointTreeQueryReq request, PermissionPointTreeNode node) { - + // 过滤参数为空时 认为匹配成功 //条件匹配 - 关键字 boolean matchKeyword = request.getKeyword() == null || node.getPermissionName().contains(request.getKeyword()); //条件匹配 - 授权策略类型 boolean matchDelegateType = request.getDelegateType() == 0 || Objects.equals(request.getDelegateType(), node.getDelegatedType()); - if (matchKeyword && matchDelegateType) { + //条件匹配 - ID + boolean matchId = CollectionUtil.isEmpty(request.getIds()) || request.getIds().contains(node.getPermissionPointId()); + + if (matchKeyword && matchDelegateType && matchId) { //如果匹配直接返回,否则过滤子节点 return true; } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductFeatureRelationServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductFeatureRelationServiceImpl.java index cbd35b81..5dbd6134 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductFeatureRelationServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductFeatureRelationServiceImpl.java @@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; @@ -37,6 +38,7 @@ public class ProductFeatureRelationServiceImpl implements ProductFeatureRelation List list = saasProductModuleFeatureRelationDao.lambdaQuery() .eq(SaasProductModuleFeatureRelation::getProductModuleId, req.getProductModuleId()) .eq(Objects.nonNull(req.getDictCodeId()), SaasProductModuleFeatureRelation::getDictCodeId, req.getDictCodeId()) + .eq(StringUtils.hasLength(req.getDictCode()), SaasProductModuleFeatureRelation::getDictCode, req.getDictCode()) .list(); return ApiResult.ok(BeanMapper.copyList(list, ProductFeatureRelationVO.class)); } @@ -54,6 +56,7 @@ public class ProductFeatureRelationServiceImpl implements ProductFeatureRelation SaasProductModuleFeatureRelation relation = new SaasProductModuleFeatureRelation(); relation.setProductModuleId(i.getProductModuleId()); relation.setDictCodeId(i.getDictCodeId()); + relation.setDictCode(i.getDictCode()); relation.setFeatureId(featureId); saveList.add(relation); })); diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java index 4c0ff699..4450c7b9 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java @@ -6,6 +6,7 @@ import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO; import cn.axzo.tyr.client.model.vo.SaasRoleVO; import cn.axzo.tyr.server.repository.entity.*; @@ -145,10 +146,16 @@ public class RoleServiceImpl implements RoleService { } @Override - public Map> queryBatchByIdentityIdType(List req) { - HashMap> result = new HashMap<>(); + public List queryBatchByIdentityIdType(List req) { + List result = new ArrayList<>(); req.forEach(e -> { - result.put(e,queryByIdentityIdType(e.getIdentityId(),e.getIdentityType(),e.getWorkspaceId(),e.getOuId())); + result.add(QueryBatchByIdentityIdTypeRes.builder() + .identityId(e.getIdentityId()) + .identityType(e.getIdentityType()) + .workspaceId(e.getWorkspaceId()) + .ouId(e.getOuId()) + .role(queryByIdentityIdType(e.getIdentityId(),e.getIdentityType(),e.getWorkspaceId(),e.getOuId())) + .build()); }); return result; } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java index d7dfa8c2..a2a5cac6 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java @@ -1,12 +1,13 @@ package cn.axzo.tyr.server.service.impl; +import java.util.Date; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq; import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO; +import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation; import cn.axzo.tyr.server.repository.entity.SaasRoleGroup; import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation; -import cn.axzo.tyr.server.repository.service.SaasRoleGroupDao; -import cn.axzo.tyr.server.repository.service.SaasRoleGroupRelationDao; +import cn.axzo.tyr.server.repository.service.*; import cn.axzo.tyr.server.service.SaasRoleGroupService; import cn.hutool.core.bean.BeanUtil; import lombok.RequiredArgsConstructor; @@ -27,6 +28,11 @@ import java.util.stream.Collectors; public class SaasRoleGroupServiceImpl implements SaasRoleGroupService { private final SaasRoleGroupDao saasRoleGroupDao; private final SaasRoleGroupRelationDao saasRoleGroupRelationDao; + private final SaasRoleDao roleDao; + private final SaasPgroupRoleRelationDao pgroupRoleRelationDao; + private final SaasPermissionGroupDao permissionGroupDao; + private final SaasPgroupPermissionRelationDao pgroupPermissionRelationDao; + private final SaasRoleUserRelationDao roleUserRelationDao; @Override public List getList(QuerySaasRoleGroupReq req) { @@ -57,7 +63,7 @@ public class SaasRoleGroupServiceImpl implements SaasRoleGroupService { .map(e -> { SaasRoleGroupVO target = BeanUtil.copyProperties(e, SaasRoleGroupVO.class); if (StringUtils.isNotBlank(e.getOuTypeCode())) { - target.setOuTypeCode(Arrays.stream(e.getOuTypeCode().split(",")).filter(StringUtils::isNotBlank).map(s -> Long.parseLong(s.trim())).collect(Collectors.toList())); + target.setOuTypeCode(Arrays.stream(e.getOuTypeCode().split(",")).filter(StringUtils::isNotBlank).map(s -> s.trim()).collect(Collectors.toList())); } target.setRoleIds(groupRoleMap.get(e.getId())); return target; @@ -65,4 +71,35 @@ public class SaasRoleGroupServiceImpl implements SaasRoleGroupService { return results; } + + @Override + public void saveOrUpdate(SaasRoleGroupVO req) { + // 拼接ouTypeCode字符串 + String ouTypeCodeStr = null; + if (CollectionUtils.isNotEmpty(req.getOuTypeCode())) { + ouTypeCodeStr = StringUtils.join(req.getOuTypeCode(),","); + } + SaasRoleGroup saasRoleGroup = new SaasRoleGroup(); + saasRoleGroup.setId(req.getId()); + saasRoleGroup.setWorkspaceTypeCode(req.getWorkspaceTypeCode()); + saasRoleGroup.setOuTypeCode(ouTypeCodeStr); + saasRoleGroup.setName(req.getName()); + saasRoleGroup.setSort(req.getSort()); + saasRoleGroupDao.saveOrUpdate(saasRoleGroup); + } + + @Override + public void delete(Long id) { + // 删除分组 + + // 删除角色分组关联关系 + + // + + + // 删除权限分组关联关系 + // 删除权限 + // 删除权限集关联关系 + // 删除权限集 + } }