From 985c4e4d6674cc11d7c249f77ba4014fbcfa3f33 Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Fri, 8 Sep 2023 19:10:59 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/server/repository/SaasBasicDictDao.java | 16 ++++++++++++++++ .../service/impl/SaasBasicDictServiceImpl.java | 3 +-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java index f28f79a5..30135478 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java @@ -1,10 +1,16 @@ package cn.axzo.tyr.server.repository; +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq; +import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.server.repository.entity.SaasBasicDict; import cn.axzo.tyr.server.repository.mapper.SaasBasicDictMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Objects; + /** * @author: chenwenjian * @date: 2023/9/7 17:43 @@ -15,4 +21,14 @@ import org.springframework.stereotype.Service; @Service public class SaasBasicDictDao extends ServiceImpl { + public ApiResult> getBasicDictNodeList(BasicDictQueryReq req) { + List basicDictList = lambdaQuery().eq(Objects.nonNull(req.getParentId()), SaasBasicDict::getParentId, req.getParentId()) + .eq(Objects.nonNull(req.getWorkspaceType()), SaasBasicDict::getWorkspaceType, req.getWorkspaceType().getValue()) + .eq(Objects.nonNull(req.getType()), SaasBasicDict::getType, req.getType().getValue()) + .eq(Objects.nonNull(req.getCode()), SaasBasicDict::getCode, req.getCode()) + .eq(Objects.nonNull(req.getStatus()), SaasBasicDict::getStatus, Boolean.TRUE.equals(req.getStatus()) ? 1 : 0) + .like(Objects.nonNull(req.getName()), SaasBasicDict::getName, req.getName()) + .list(); + return null; + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java index b0f12f91..f04e5258 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java @@ -29,8 +29,7 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService { @Override public ApiResult> getBasicDictNodeList(BasicDictQueryReq req) { - - return null; + return saasBasicDictDao.getBasicDictNodeList(req); } @Override From a31d8218fee64f900a9e6d299ab62e4f76eb7908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Mon, 11 Sep 2023 10:29:32 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=BA=AB=E4=BB=BD?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=A7=92=E8=89=B2=E6=8E=A5=E5=8F=A3=E8=A1=A5?= =?UTF-8?q?=E5=85=85workspaceId=20ouId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/axzo/tyr/client/feign/SaasRoleApi.java | 3 ++- .../tyr/server/controller/role/SaasRoleController.java | 4 ++-- .../server/repository/service/SaasRoleUserRelationDao.java | 7 ++++++- .../main/java/cn/axzo/tyr/server/service/RoleService.java | 2 +- .../cn/axzo/tyr/server/service/impl/RoleServiceImpl.java | 6 ++---- 5 files changed, 13 insertions(+), 9 deletions(-) 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 62332481..6500f92c 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 @@ -43,6 +43,7 @@ public interface SaasRoleApi { * @return */ @GetMapping("/api/saasRole/queryByIdentityIdType") - ApiResult> queryByIdentityIdType(@RequestParam(required = true) Long identityId,@RequestParam(required = true) Integer identityType); + ApiResult> queryByIdentityIdType(@RequestParam(required = true) Long identityId,@RequestParam(required = true) Integer identityType,@RequestParam(required = true) Long workspaceId,@RequestParam(required = true) Long ouId + ); } 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 6a6c8ee7..cc274fff 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 @@ -43,7 +43,7 @@ public class SaasRoleController implements SaasRoleApi { } @Override - public ApiResult> queryByIdentityIdType(Long identityId, Integer identityType) { - return ApiResult.ok(roleService.queryByIdentityIdType(identityId, identityType)); + public ApiResult> queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId) { + return ApiResult.ok(roleService.queryByIdentityIdType(identityId, identityType,workspaceId,ouId)); } } 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 2b21746f..3866cbf8 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 @@ -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.SaasRoleUserRelation; import cn.axzo.tyr.server.repository.mapper.SaasRoleUserRelationMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -10,10 +12,13 @@ import java.util.List; @Repository public class SaasRoleUserRelationDao extends ServiceImpl { - public List queryByIdentityIdType(Long identityId, Integer identityType) { + public List query(Long identityId, Integer identityType, Long workspaceId, Long ouId) { return this.lambdaQuery() .eq(SaasRoleUserRelation::getIdentityId,identityId) .eq(SaasRoleUserRelation::getIdentityType,identityType) + .eq(SaasRoleUserRelation::getWorkspaceId,workspaceId) + .eq(SaasRoleUserRelation::getOuId,ouId) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) .list(); } } 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 a6da59e3..3bb440cd 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 @@ -16,7 +16,7 @@ import java.util.List; public interface RoleService { - List queryByIdentityIdType(Long identityId, Integer identityType); + List queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId); List query(QuerySaasRoleReq req); } 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 6c884c60..bd5548cd 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 @@ -2,7 +2,6 @@ package cn.axzo.tyr.server.service.impl; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; 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.req.QuerySaasRoleGroupReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; @@ -13,7 +12,6 @@ import cn.axzo.tyr.server.repository.service.*; import cn.axzo.tyr.server.service.PermissionGroupService; import cn.axzo.tyr.server.service.RoleService; import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; @@ -50,9 +48,9 @@ public class RoleServiceImpl implements RoleService { SaasRoleGroupRelationDao roleGroupRelationDao; @Override - public List queryByIdentityIdType(Long identityId, Integer identityType) { + public List queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId) { // 查询人关联的角色id - List roleIds = roleUserRelationDao.queryByIdentityIdType(identityId, identityType).stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList()); + List roleIds = roleUserRelationDao.query(identityId, identityType,workspaceId,ouId).stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList()); if (CollectionUtils.isEmpty(roleIds)) { return new ArrayList<>(); } From 5c493331987b6bda8bd79fc0649d4604023863c6 Mon Sep 17 00:00:00 2001 From: yangsong Date: Mon, 11 Sep 2023 10:32:55 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=86=E7=BB=84?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/axzo/tyr/client/model/vo/SaasRoleGroupVO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 25d393a3..2f44645a 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 @@ -38,7 +38,7 @@ public class SaasRoleGroupVO { /** * 角色 */ - private List role; + private List roleIds; /** * 排序 From 1987468897e9893b94d0e59d1f4e4582ea15268c Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Mon, 11 Sep 2023 10:49:41 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/client/feign/SaasBasicDictApi.java | 6 +-- tyr-server/pom.xml | 5 +++ .../dict/SaasBasicDictController.java | 10 ++--- .../server/repository/SaasBasicDictDao.java | 24 +++++++----- .../repository/entity/SaasBasicDict.java | 2 +- .../server/service/SaasBasicDictService.java | 10 ++++- .../impl/SaasBasicDictServiceImpl.java | 39 ++++++++++++++++++- tyr-server/src/main/resources/bootstrap.yml | 2 +- 8 files changed, 75 insertions(+), 23 deletions(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java index df5dfbd4..0172590c 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java @@ -33,15 +33,15 @@ public interface SaasBasicDictApi { ApiResult> getBasicDictNodeList(@RequestBody @Validated BasicDictQueryReq req); /** - * 获取字典树,需要单测树时才传type + * 获取字典树,需要单侧树时才传type * * @param type * @return */ @PostMapping("api/dict/node-tree") ApiResult getBasicDictNodeTree(@RequestBody - @EnumValidator(enumClass = DictTypeFiledEnum.class, message = "枚举类型错误") - DictTypeFiledEnum type); + @EnumValidator(enumClass = DictTypeFiledEnum.class, message = "枚举类型错误") + DictTypeFiledEnum type); /** * 获取字典节点详情 diff --git a/tyr-server/pom.xml b/tyr-server/pom.xml index 213bd48e..06a78009 100644 --- a/tyr-server/pom.xml +++ b/tyr-server/pom.xml @@ -56,5 +56,10 @@ tyr-api 1.0.0-SNAPSHOT + + + cn.axzo.basics + basics-common + diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java index b8403019..fc602749 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java @@ -16,7 +16,7 @@ import java.util.List; /** * @author: chenwenjian * @date: 2023/9/8 14:32 - * @description: + * @description: 字典controller * @modifiedBy: * @version: 1.0 */ @@ -39,21 +39,21 @@ public class SaasBasicDictController implements SaasBasicDictApi { @Override public ApiResult getBasicDictNode(BasicDictNodeReq req) { - return null; + return saasBasicDictService.getBasicDictNode(req); } @Override public ApiResult create(BasicDictCreateReq req) { - return null; + return saasBasicDictService.create(req); } @Override public ApiResult update(BasicDictUpdateReq req) { - return null; + return saasBasicDictService.update(req); } @Override public ApiResult updateStatus(BasicDictUpdateStatusReq req) { - return null; + return saasBasicDictService.updateStauts(req); } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java index 30135478..c20343b8 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java @@ -1,10 +1,11 @@ package cn.axzo.tyr.server.repository; -import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.basics.common.BeanMapper; import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq; import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.server.repository.entity.SaasBasicDict; import cn.axzo.tyr.server.repository.mapper.SaasBasicDictMapper; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @@ -21,14 +22,17 @@ import java.util.Objects; @Service public class SaasBasicDictDao extends ServiceImpl { - public ApiResult> getBasicDictNodeList(BasicDictQueryReq req) { - List basicDictList = lambdaQuery().eq(Objects.nonNull(req.getParentId()), SaasBasicDict::getParentId, req.getParentId()) - .eq(Objects.nonNull(req.getWorkspaceType()), SaasBasicDict::getWorkspaceType, req.getWorkspaceType().getValue()) - .eq(Objects.nonNull(req.getType()), SaasBasicDict::getType, req.getType().getValue()) - .eq(Objects.nonNull(req.getCode()), SaasBasicDict::getCode, req.getCode()) - .eq(Objects.nonNull(req.getStatus()), SaasBasicDict::getStatus, Boolean.TRUE.equals(req.getStatus()) ? 1 : 0) - .like(Objects.nonNull(req.getName()), SaasBasicDict::getName, req.getName()) - .list(); - return null; + public List getBasicDictNodeList(BasicDictQueryReq req) { + LambdaQueryChainWrapper queryChainWrapper = lambdaQuery(); + if (Objects.nonNull(req)){ + queryChainWrapper.eq(Objects.nonNull(req.getParentId()), SaasBasicDict::getParentId, req.getParentId()) + .eq(Objects.nonNull(req.getWorkspaceType()), SaasBasicDict::getWorkspaceType, Objects.nonNull(req.getWorkspaceType())?req.getWorkspaceType().getValue():"") + .eq(Objects.nonNull(req.getType()), SaasBasicDict::getType, Objects.nonNull(req.getType())?req.getType().getValue():"") + .eq(Objects.nonNull(req.getCode()), SaasBasicDict::getCode, req.getCode()) + .eq(Objects.nonNull(req.getStatus()), SaasBasicDict::getStatus, Boolean.TRUE.equals(req.getStatus()) ? 1 : 0) + .like(Objects.nonNull(req.getName()), SaasBasicDict::getName, req.getName()); + } + List basicDictList = queryChainWrapper.orderByDesc(SaasBasicDict::getSort).list(); + return BeanMapper.copyList(basicDictList, BasicDictNodeResp.class, (s, b) -> b.setStatus(s.getStatus() == 1)); } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasBasicDict.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasBasicDict.java index 53b7665d..bd455c14 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasBasicDict.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasBasicDict.java @@ -91,7 +91,7 @@ public class SaasBasicDict extends BaseEntity implements Serializ /** * 扩展信息 */ - @TableField(value = "ex", typeHandler = JacksonTypeHandler.class) + @TableField(value = "ext", typeHandler = JacksonTypeHandler.class) private Map ext; } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java index c108655c..bed5e866 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java @@ -2,7 +2,7 @@ package cn.axzo.tyr.server.service; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.DictTypeFiledEnum; -import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq; +import cn.axzo.tyr.client.model.dict.request.*; import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp; @@ -19,4 +19,12 @@ public interface SaasBasicDictService { ApiResult> getBasicDictNodeList(BasicDictQueryReq req); ApiResult getBasicDictNodeTree(DictTypeFiledEnum type); + + ApiResult getBasicDictNode(BasicDictNodeReq req); + + ApiResult create(BasicDictCreateReq req); + + ApiResult update(BasicDictUpdateReq req); + + ApiResult updateStauts(BasicDictUpdateStatusReq req); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java index f04e5258..836acc50 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java @@ -2,7 +2,7 @@ package cn.axzo.tyr.server.service.impl; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.DictTypeFiledEnum; -import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq; +import cn.axzo.tyr.client.model.dict.request.*; import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp; import cn.axzo.tyr.server.repository.SaasBasicDictDao; @@ -29,11 +29,46 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService { @Override public ApiResult> getBasicDictNodeList(BasicDictQueryReq req) { - return saasBasicDictDao.getBasicDictNodeList(req); + return ApiResult.ok(saasBasicDictDao.getBasicDictNodeList(req)); } @Override public ApiResult getBasicDictNodeTree(DictTypeFiledEnum type) { +// // 获取所有节点 +// List basicDictNodeList = saasBasicDictDao.getBasicDictNodeList(null); +// // 单侧树 +// if (Objects.nonNull(type)){ +// basicDictNodeList.stream().filter(new Predicate() { +// @Override +// public boolean test(BasicDictNodeResp b) { +// return b.getType().equals(type.getValue()); +// } +// }); +// } + return null; + } + + public BasicDictTreeResp constructDictTree(List nodeList){ + return null; + } + + @Override + public ApiResult getBasicDictNode(BasicDictNodeReq req) { + return null; + } + + @Override + public ApiResult create(BasicDictCreateReq req) { + return null; + } + + @Override + public ApiResult update(BasicDictUpdateReq req) { + return null; + } + + @Override + public ApiResult updateStauts(BasicDictUpdateStatusReq req) { return null; } } diff --git a/tyr-server/src/main/resources/bootstrap.yml b/tyr-server/src/main/resources/bootstrap.yml index 91560edb..6b6b8368 100644 --- a/tyr-server/src/main/resources/bootstrap.yml +++ b/tyr-server/src/main/resources/bootstrap.yml @@ -9,7 +9,7 @@ spring: namespace: ${NACOS_NAMESPACE_ID:35eada10-9574-4db8-9fea-bc6a4960b6c7} prefix: ${spring.application.name} profiles: - active: ${NACOS_PROFILES_ACTIVE:local} + active: ${NACOS_PROFILES_ACTIVE:dev} include: swagger main: allow-bean-definition-overriding: true From b6c55627603609185980f6ac47bb5ce0532113dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Mon, 11 Sep 2023 10:55:29 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 3 +++ .../src/main/java/cn/axzo/tyr/client/feign/SaasRoleApi.java | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..761596a1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM registry.cn-hangzhou.aliyuncs.com/axzo-k8s/jdk1.8-fc:v1 +COPY tyr-server/target/tyr.jar ./tyr.jar +ENTRYPOINT [{ENTRYPOINT}] 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 6500f92c..710ceb77 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 @@ -43,7 +43,6 @@ public interface SaasRoleApi { * @return */ @GetMapping("/api/saasRole/queryByIdentityIdType") - ApiResult> queryByIdentityIdType(@RequestParam(required = true) Long identityId,@RequestParam(required = true) Integer identityType,@RequestParam(required = true) Long workspaceId,@RequestParam(required = true) Long ouId - ); + ApiResult> queryByIdentityIdType(@RequestParam(required = true) Long identityId,@RequestParam(required = true) Integer identityType,@RequestParam(required = true) Long workspaceId,@RequestParam(required = true) Long ouId); } From 775a68ee7dac33276e8c393b8dc930258da5f1a4 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 11 Sep 2023 11:00:03 +0800 Subject: [PATCH 06/16] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E5=88=A0=E9=99=A4=E5=AE=9E=E7=8E=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/tyr/server/service/impl/ProductServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java index 11f67059..40cf5a67 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java @@ -71,7 +71,7 @@ public class ProductServiceImpl implements ProductService { @Override public ApiResult update(ProductUpdateReq req) { ProductModule productModule = productModuleDao.getById(req.getId()); - BeanMapper.copyBeanIgnoreNull(req, ()-> productModule); + BeanMapper.copyBeanIgnoreNull(req, () -> productModule); productModuleDao.updateById(productModule); return ApiResult.ok(BeanMapper.copyBeanIgnoreNull(productModule, ProductVO.class)); } @@ -80,8 +80,10 @@ public class ProductServiceImpl implements ProductService { public ApiResult delete(Long id) { ProductModule productModule = productModuleDao.getById(id); AssertUtil.isTrue(Objects.nonNull(productModule), "产品不存在"); - productModule.setIsDelete(id); - productModuleDao.updateById(productModule); + productModuleDao.lambdaUpdate() + .eq(ProductModule::getId, productModule.getId()) + .set(ProductModule::getIsDelete, productModule.getId()) + .update(); return ApiResult.ok(BeanMapper.copyBean(productModule, ProductVO.class)); } } From 77bf00fadbc16ec0a3f2997935a5037aeee5e490 Mon Sep 17 00:00:00 2001 From: yangsong Date: Mon, 11 Sep 2023 11:10:13 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=86=E7=BB=84spi?= =?UTF-8?q?=20service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...RoleGoupApi.java => SaasRoleGroupApi.java} | 2 +- .../role/SaasRoleGroupController.java | 33 ++++++++++++ .../server/service/SaasRoleGroupService.java | 10 ++++ .../server/service/impl/RoleServiceImpl.java | 8 ++- .../impl/SaasRoleGroupServiceImpl.java | 51 +++++++++++++++++++ 5 files changed, 102 insertions(+), 2 deletions(-) rename tyr-api/src/main/java/cn/axzo/tyr/client/feign/{SaasRoleGoupApi.java => SaasRoleGroupApi.java} (96%) create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleGroupController.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleGroupService.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGoupApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGroupApi.java similarity index 96% rename from tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGoupApi.java rename to tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGroupApi.java index ba7c016e..457819a3 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGoupApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleGroupApi.java @@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam; * 角色分组 */ @FeignClient(name = "tyr", url = "${axzo.service.maokai:http://tyr:8080/api/saasRoleGroup}") -public interface SaasRoleGoupApi { +public interface SaasRoleGroupApi { /** * 保存/更新 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 new file mode 100644 index 00000000..e25896c0 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleGroupController.java @@ -0,0 +1,33 @@ +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; +import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO; +import cn.axzo.tyr.server.service.SaasRoleGroupService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController +@RequiredArgsConstructor +public class SaasRoleGroupController implements SaasRoleGroupApi { + private final SaasRoleGroupService saasRoleGroupService; + + @Override + public ApiResult saveOrUpdate(SaasRoleGroupVO req) { + return null; + } + + @Override + public ApiListResult getList(QuerySaasRoleGroupReq req) { + return ApiListResult.ok(saasRoleGroupService.getList(req)); + } + + @Override + public ApiResult delete(Long id) { + return null; + } +} 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 new file mode 100644 index 00000000..d50e03d2 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleGroupService.java @@ -0,0 +1,10 @@ +package cn.axzo.tyr.server.service; + +import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq; +import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO; + +import java.util.List; + +public interface SaasRoleGroupService { + List getList(QuerySaasRoleGroupReq req); +} 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 bd5548cd..51ed81bb 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 @@ -19,7 +19,10 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -128,6 +131,9 @@ public class RoleServiceImpl implements RoleService { groupRelation = roleGroupRelationDao.lambdaQuery() .in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())) .list(); + if (CollectionUtils.isEmpty(groupRelation)) { + return new ArrayList<>(); + } } // 查询角色 List list = saasRoleDao.lambdaQuery() 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 new file mode 100644 index 00000000..7a76af4f --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java @@ -0,0 +1,51 @@ +package cn.axzo.tyr.server.service.impl; + +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.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.service.SaasRoleGroupService; +import cn.hutool.core.bean.BeanUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@RequiredArgsConstructor +@Service +public class SaasRoleGroupServiceImpl implements SaasRoleGroupService { + private final SaasRoleGroupDao saasRoleGroupDao; + private final SaasRoleGroupRelationDao saasRoleGroupRelationDao; + + @Override + public List getList(QuerySaasRoleGroupReq req) { + List groups = saasRoleGroupDao.query(req); + if (CollectionUtils.isEmpty(groups)) { + return new ArrayList<>(); + } + List saasRoleGroupRelations = saasRoleGroupRelationDao.lambdaQuery().in(SaasRoleGroupRelation::getSaasRoleGroupId, groups.stream().map(SaasRoleGroup::getId)) + .eq(SaasRoleGroupRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list(); + Map> groupRoleMap = saasRoleGroupRelations.stream().collect(Collectors.groupingBy(SaasRoleGroupRelation::getSaasRoleGroupId, Collectors.mapping(SaasRoleGroupRelation::getRoleId, Collectors.toList()))); + List results = groups.stream().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.setRoleIds(groupRoleMap.get(e.getId())); + return target; + }).collect(Collectors.toList()); + + return results; + } +} From 81ab60e44f70fc2bbc79e3a0c02e46f15ccb2278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Mon, 11 Sep 2023 11:31:22 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E8=BA=AB=E4=BB=BDid=E7=B1=BB=E5=9E=8B=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/tyr/client/feign/SaasRoleApi.java | 14 +- .../model/req/QueryByIdentityIdTypeReq.java | 22 ++ .../controller/role/SaasRoleController.java | 8 + .../axzo/tyr/server/service/RoleService.java | 5 +- .../server/service/impl/RoleServiceImpl.java | 231 +++++++++--------- 5 files changed, 168 insertions(+), 112 deletions(-) create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QueryByIdentityIdTypeReq.java 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 710ceb77..c072b181 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 @@ -1,6 +1,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.vo.SaasRoleVO; import org.springframework.cloud.openfeign.FeignClient; @@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; /** * 角色 @@ -39,10 +41,20 @@ public interface SaasRoleApi { ApiResult> query(@RequestBody QuerySaasRoleReq req); /** - * 根据身份id 身份类型查询权限列表 + * 根据身份id身份类型查询权限列表(批量) + * @param identityType 身份类型 1:工人 2:班组长 3:从业人员 4:监管人员 5:运营人员 * @return */ @GetMapping("/api/saasRole/queryByIdentityIdType") ApiResult> queryByIdentityIdType(@RequestParam(required = true) Long identityId,@RequestParam(required = true) Integer identityType,@RequestParam(required = true) Long workspaceId,@RequestParam(required = true) Long ouId); + /** + * 根据身份id身份类型查询权限列表(批量) + * @return + */ + @GetMapping("/api/saasRole/queryBatchByIdentityIdType") + ApiResult>> queryBatchByIdentityIdType(@RequestBody List req); + + + } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QueryByIdentityIdTypeReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QueryByIdentityIdTypeReq.java new file mode 100644 index 00000000..e5f04f63 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QueryByIdentityIdTypeReq.java @@ -0,0 +1,22 @@ +package cn.axzo.tyr.client.model.req; + +import lombok.*; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@EqualsAndHashCode +public class QueryByIdentityIdTypeReq { + + Long identityId; + + /** + * 身份类型 1:工人 2:班组长 3:从业人员 4:监管人员 5:运营人员 + */ + Integer identityType; + + Long workspaceId; + + Long ouId; +} 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 cc274fff..e030d5d9 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 @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.controller.role; 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.vo.SaasRoleVO; import cn.axzo.tyr.server.service.RoleService; @@ -11,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Map; /** * 权限 @@ -46,4 +48,10 @@ public class SaasRoleController implements SaasRoleApi { 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) { + return ApiResult.ok(roleService.queryBatchByIdentityIdType(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 3bb440cd..b8df6dd9 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 @@ -1,10 +1,11 @@ package cn.axzo.tyr.server.service; -import cn.axzo.framework.domain.web.result.ApiListResult; +import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; import cn.axzo.tyr.client.model.vo.SaasRoleVO; import java.util.List; +import java.util.Map; /** * 角色 @@ -19,4 +20,6 @@ public interface RoleService { List queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId); List query(QuerySaasRoleReq req); + + Map> queryBatchByIdentityIdType(List req); } 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 bd5548cd..5ca1659a 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 @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.service.impl; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; +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; @@ -34,118 +35,128 @@ import java.util.stream.Collectors; @Service public class RoleServiceImpl implements RoleService { - @Autowired - SaasRoleUserRelationDao roleUserRelationDao; - @Autowired - SaasRoleDao saasRoleDao; - @Autowired - PermissionGroupService permissionGroupService; - @Autowired - SaasPgroupRoleRelationDao permissionGroupRelation; - @Autowired - SaasRoleGroupDao saasRoleGroupDao; - @Autowired - SaasRoleGroupRelationDao roleGroupRelationDao; + @Autowired + SaasRoleUserRelationDao roleUserRelationDao; + @Autowired + SaasRoleDao saasRoleDao; + @Autowired + PermissionGroupService permissionGroupService; + @Autowired + SaasPgroupRoleRelationDao permissionGroupRelation; + @Autowired + SaasRoleGroupDao saasRoleGroupDao; + @Autowired + SaasRoleGroupRelationDao roleGroupRelationDao; - @Override - public List queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId) { - // 查询人关联的角色id - List roleIds = roleUserRelationDao.query(identityId, identityType,workspaceId,ouId).stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(roleIds)) { - return new ArrayList<>(); - } - return getByIds(roleIds); - } + @Override + public List queryByIdentityIdType(Long identityId, Integer identityType, Long workspaceId, Long ouId) { + // 查询人关联的角色id + List roleIds = roleUserRelationDao.query(identityId, identityType, workspaceId, ouId).stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(roleIds)) { + return new ArrayList<>(); + } + return getByIds(roleIds); + } - /** - * 根据id查询权限详情包含权限组合权限集(底层基础方法) - * @return - */ - public List getByIds(List roleIds) { - if (CollectionUtils.isEmpty(roleIds)) { - return new ArrayList<>(); - } - // 查询角色信息 - List roles = saasRoleDao.lambdaQuery().in(BaseEntity::getId, roleIds).list(); - // 查询权限集关联关系 - List saasPgroupRoleRelations = queryPermissionGroupRelation(roleIds); - // 查询权限集 - Map> pgrouRelationMap = null; - Map> pGroupMap = null; - if (CollectionUtils.isNotEmpty(saasPgroupRoleRelations)) { - // 转map - pgrouRelationMap = saasPgroupRoleRelations.stream().collect(Collectors.groupingBy(SaasPgroupRoleRelation::getRoleId)); - // 查询权限集 - pGroupMap = permissionGroupService.query(QuerySaasPermissionGroupReq.builder() - .ids(saasPgroupRoleRelations.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())) - .build()) - // 转map - .stream().collect(Collectors.groupingBy(SaasPermissionGroupVO::getId)); - } - Map> finalPgrouRelationMap = pgrouRelationMap; - Map> finalPGroupMap = pGroupMap; - return roles.stream().map(role -> { - // 获取对应的权限集 - List pGroup = new ArrayList<>(); - if (finalPgrouRelationMap != null && finalPgrouRelationMap.containsKey(role.getId())) { - pGroup = finalPgrouRelationMap.get(role.getId()) - .stream() - .map(SaasPgroupRoleRelation::getGroupId) - .map(finalPGroupMap::get) - .filter(Objects::nonNull) - .flatMap(List::stream) - .collect(Collectors.toList()); - } - SaasRoleVO saasRoleVO = BeanUtil.copyProperties(role, SaasRoleVO.class); - saasRoleVO.setPermissionGroup(pGroup); - return saasRoleVO; - }).collect(Collectors.toList()); - } + /** + * 根据id查询权限详情包含权限组合权限集(底层基础方法) + * + * @return + */ + public List getByIds(List roleIds) { + if (CollectionUtils.isEmpty(roleIds)) { + return new ArrayList<>(); + } + // 查询角色信息 + List roles = saasRoleDao.lambdaQuery().in(BaseEntity::getId, roleIds).list(); + // 查询权限集关联关系 + List saasPgroupRoleRelations = queryPermissionGroupRelation(roleIds); + // 查询权限集 + Map> pgrouRelationMap = null; + Map> pGroupMap = null; + if (CollectionUtils.isNotEmpty(saasPgroupRoleRelations)) { + // 转map + pgrouRelationMap = saasPgroupRoleRelations.stream().collect(Collectors.groupingBy(SaasPgroupRoleRelation::getRoleId)); + // 查询权限集 + pGroupMap = permissionGroupService.query(QuerySaasPermissionGroupReq.builder() + .ids(saasPgroupRoleRelations.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())) + .build()) + // 转map + .stream().collect(Collectors.groupingBy(SaasPermissionGroupVO::getId)); + } + Map> finalPgrouRelationMap = pgrouRelationMap; + Map> finalPGroupMap = pGroupMap; + return roles.stream().map(role -> { + // 获取对应的权限集 + List pGroup = new ArrayList<>(); + if (finalPgrouRelationMap != null && finalPgrouRelationMap.containsKey(role.getId())) { + pGroup = finalPgrouRelationMap.get(role.getId()) + .stream() + .map(SaasPgroupRoleRelation::getGroupId) + .map(finalPGroupMap::get) + .filter(Objects::nonNull) + .flatMap(List::stream) + .collect(Collectors.toList()); + } + SaasRoleVO saasRoleVO = BeanUtil.copyProperties(role, SaasRoleVO.class); + saasRoleVO.setPermissionGroup(pGroup); + return saasRoleVO; + }).collect(Collectors.toList()); + } - /** - * 通用查询 - * - * @param req - * @return - */ - @Override - public List query(QuerySaasRoleReq req) { - // 根据工作台类型和单位类型查询角色分组 - List roleGroup = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(req.getWorkspaceTypeCode()) || CollectionUtils.isNotEmpty(req.getOuTypeCode())) { - roleGroup = saasRoleGroupDao.query(QuerySaasRoleGroupReq.builder() - .ids(req.getSassRoleGroupIds()) - .workspaceTypeCode(req.getWorkspaceTypeCode()) - .ouTypeCode(req.getOuTypeCode()) - .build()); - if (CollectionUtils.isEmpty(roleGroup)) { - return new ArrayList<>(); - } - } - // 根据角色分组查询角色分组关联表 - List groupRelation = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(roleGroup)) { - groupRelation = roleGroupRelationDao.lambdaQuery() - .in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())) - .list(); - } - // 查询角色 - List list = saasRoleDao.lambdaQuery() - .in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId, req.getIds()) - .in(CollectionUtils.isNotEmpty(groupRelation), BaseEntity::getId, groupRelation.stream().map(SaasRoleGroupRelation::getRoleId).collect(Collectors.toList())) - .eq(StringUtils.isNotBlank(req.getRoleType()),SaasRole::getRoleType,req.getRoleType()) - .orderByDesc(BaseEntity::getId) - .list(); - return getByIds(list.stream().map(BaseEntity::getId).collect(Collectors.toList())); - } + /** + * 通用查询 + * + * @param req + * @return + */ + @Override + public List query(QuerySaasRoleReq req) { + // 根据工作台类型和单位类型查询角色分组 + List roleGroup = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(req.getWorkspaceTypeCode()) || CollectionUtils.isNotEmpty(req.getOuTypeCode())) { + roleGroup = saasRoleGroupDao.query(QuerySaasRoleGroupReq.builder() + .ids(req.getSassRoleGroupIds()) + .workspaceTypeCode(req.getWorkspaceTypeCode()) + .ouTypeCode(req.getOuTypeCode()) + .build()); + if (CollectionUtils.isEmpty(roleGroup)) { + return new ArrayList<>(); + } + } + // 根据角色分组查询角色分组关联表 + List groupRelation = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(roleGroup)) { + groupRelation = roleGroupRelationDao.lambdaQuery() + .in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())) + .list(); + } + // 查询角色 + List list = saasRoleDao.lambdaQuery() + .in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId, req.getIds()) + .in(CollectionUtils.isNotEmpty(groupRelation), BaseEntity::getId, groupRelation.stream().map(SaasRoleGroupRelation::getRoleId).collect(Collectors.toList())) + .eq(StringUtils.isNotBlank(req.getRoleType()), SaasRole::getRoleType, req.getRoleType()) + .orderByDesc(BaseEntity::getId) + .list(); + return getByIds(list.stream().map(BaseEntity::getId).collect(Collectors.toList())); + } - /** - * 根据角色id查询权限集关联关系 - */ - public List queryPermissionGroupRelation(List roleIds) { - return permissionGroupRelation.lambdaQuery() - .in(SaasPgroupRoleRelation::getRoleId, roleIds) - .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) - .list(); - } + @Override + public Map> queryBatchByIdentityIdType(List req) { + HashMap> result = new HashMap<>(); + req.forEach(e -> { + result.put(e,queryByIdentityIdType(e.getIdentityId(),e.getIdentityType(),e.getWorkspaceId(),e.getOuId())); + }); + return result; + } + + /** + * 根据角色id查询权限集关联关系 + */ + public List queryPermissionGroupRelation(List roleIds) { + return permissionGroupRelation.lambdaQuery() + .in(SaasPgroupRoleRelation::getRoleId, roleIds) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list(); + } } From ebfa3525fe7471b4625e5c0cc6ce5dee2595a88b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Mon, 11 Sep 2023 13:41:49 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pom.xml b/pom.xml index 4bead31e..2f0541bd 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,20 @@ + + org.apache.maven.plugins + maven-assembly-plugin + + + + cn.axzo.tyr.server.TyrApplication + + + + jar-with-dependencies + + + From 475ff9fda0914d3492413c37538ab05b5078ecb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Mon, 11 Sep 2023 13:46:23 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 14 -------------- tyr-server/pom.xml | 8 ++++++++ 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index 2f0541bd..4bead31e 100644 --- a/pom.xml +++ b/pom.xml @@ -89,20 +89,6 @@ - - org.apache.maven.plugins - maven-assembly-plugin - - - - cn.axzo.tyr.server.TyrApplication - - - - jar-with-dependencies - - - diff --git a/tyr-server/pom.xml b/tyr-server/pom.xml index 1c8bee66..4ed2013e 100644 --- a/tyr-server/pom.xml +++ b/tyr-server/pom.xml @@ -71,4 +71,12 @@ basics-common + + + + org.springframework.boot + spring-boot-maven-plugin + + + From 66c173ccbc2ac5391730b3f80868abf2993e5294 Mon Sep 17 00:00:00 2001 From: yangsong Date: Mon, 11 Sep 2023 14:00:36 +0800 Subject: [PATCH 11/16] =?UTF-8?q?feign=20url=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/axzo/tyr/client/feign/SaasPermissionGroupApi.java | 2 +- .../cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java | 2 +- tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasRoleApi.java | 2 +- .../main/java/cn/axzo/tyr/client/feign/SaasRoleGroupApi.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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 1a5221c8..5ebc745e 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 @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RequestParam; /** * 权限集 */ -@FeignClient(name = "tyr", url = "${axzo.service.maokai:http://tyr:8080/api/saasPermissionGoup}") +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080/api/saasPermissionGoup}") public interface SaasPermissionGroupApi { /** diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java index 8152f66c..09c48e37 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java @@ -5,7 +5,7 @@ import org.springframework.cloud.openfeign.FeignClient; /** * 权限集作用范围 TODO */ -@FeignClient(name = "tyr", url = "${axzo.service.maokai:http://tyr:8080/api/saasPermissionGroup}") +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080/api/saasPermissionGroup}") public interface SaasPermissionGroupScopeApi { 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 c072b181..51314ede 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 @@ -16,7 +16,7 @@ import java.util.Map; /** * 角色 */ -@FeignClient(name = "tyr", url = "${axzo.service.maokai:http://tyr:8080}") +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}") public interface SaasRoleApi { /** 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 457819a3..174cb817 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 @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RequestParam; /** * 角色分组 */ -@FeignClient(name = "tyr", url = "${axzo.service.maokai:http://tyr:8080/api/saasRoleGroup}") +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080/api/saasRoleGroup}") public interface SaasRoleGroupApi { /** From f2ebf603bcd7a088c42dfd613617d9772abee09f Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 11 Sep 2023 14:06:14 +0800 Subject: [PATCH 12/16] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E5=88=A0=E9=99=A4=E5=AE=9E=E7=8E=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ServiceExceptionResultHandler.java | 29 +++++++++++++++++++ .../service/impl/ProductServiceImpl.java | 4 +-- 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/ServiceExceptionResultHandler.java diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/ServiceExceptionResultHandler.java b/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/ServiceExceptionResultHandler.java new file mode 100644 index 00000000..8d57707b --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/ServiceExceptionResultHandler.java @@ -0,0 +1,29 @@ +package cn.axzo.tyr.server.config.exception; + + +import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.framework.autoconfigure.web.exception.RespErrorCodeMappingProperties; +import cn.axzo.framework.autoconfigure.web.exception.handler.AbstractExceptionApiResultHandler; +import cn.axzo.framework.domain.web.code.IRespCode; +import cn.axzo.framework.domain.web.code.RespCode; +import org.springframework.stereotype.Component; + +/** + * 目前整体框架中 ServiceException 有多种,而常用的 {@link cn.axzo.basics.common.util.AssertUtil} 抛出的是 {@link cn.axzo.basics.common.exception.ServiceException} + * 与框架默认的异常处理器不兼容,所以新增加一个处理该异常的处理器 + * + * @author wangli + * @since 2023/9/11 11:39 + */ +@Component +public class ServiceExceptionResultHandler extends AbstractExceptionApiResultHandler { + public ServiceExceptionResultHandler(RespErrorCodeMappingProperties properties) { + super(properties); + } + + @Override + protected IRespCode decode(ServiceException error, IRespCode fallbackCode) { + return new RespCode(String.valueOf(error.getErrorCode()), error.getMessage()); + } + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java index 40cf5a67..4d0b0caa 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductServiceImpl.java @@ -81,8 +81,8 @@ public class ProductServiceImpl implements ProductService { ProductModule productModule = productModuleDao.getById(id); AssertUtil.isTrue(Objects.nonNull(productModule), "产品不存在"); productModuleDao.lambdaUpdate() - .eq(ProductModule::getId, productModule.getId()) - .set(ProductModule::getIsDelete, productModule.getId()) + .eq(ProductModule::getId, id) + .set(ProductModule::getIsDelete, id) .update(); return ApiResult.ok(BeanMapper.copyBean(productModule, ProductVO.class)); } From ab091ebb6306ce845e72fdb4b0362118b6e7b951 Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Mon, 11 Sep 2023 14:38:27 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/client/feign/SaasBasicDictApi.java | 2 +- .../model/dict/request/BasicDictNodeReq.java | 4 + .../model/dict/request/BasicDictQueryReq.java | 6 ++ .../dict/response/BasicDictTreeResp.java | 2 + .../dict/SaasBasicDictController.java | 2 +- .../server/repository/SaasBasicDictDao.java | 8 ++ .../server/service/SaasBasicDictService.java | 3 +- .../impl/SaasBasicDictServiceImpl.java | 76 +++++++++++++++---- 8 files changed, 83 insertions(+), 20 deletions(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java index 897ba00f..389d29cc 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java @@ -41,7 +41,7 @@ public interface SaasBasicDictApi { * @return */ @PostMapping("api/dict/node-tree") - ApiResult getBasicDictNodeTree(@RequestBody + ApiResult> getBasicDictNodeTree( @EnumValidator(enumClass = DictTypeFiledEnum.class, message = "枚举类型错误") DictTypeFiledEnum type); diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictNodeReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictNodeReq.java index 17aaa9fc..dc255fb6 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictNodeReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictNodeReq.java @@ -4,6 +4,8 @@ import cn.axzo.tyr.client.common.annotation.EnumValidator; import cn.axzo.tyr.client.model.DictTypeFiledEnum; import lombok.Data; +import javax.validation.constraints.NotNull; + /** * @author: chenwenjian * @date: 2023/9/6 15:46 @@ -17,9 +19,11 @@ public class BasicDictNodeReq { /** * 类型 */ + @NotNull(message = "type不能为空") @EnumValidator(enumClass = DictTypeFiledEnum.class, message = "枚举类型错误") private DictTypeFiledEnum type; + @NotNull(message = "code不能为空") private String code; } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java index 5d559efd..7ee0fe68 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java @@ -3,7 +3,10 @@ package cn.axzo.tyr.client.model.dict.request; import cn.axzo.tyr.client.common.annotation.EnumValidator; import cn.axzo.tyr.client.model.DictTypeFiledEnum; import cn.axzo.tyr.client.model.DictWorkSpaceTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * @author: chenwenjian @@ -13,6 +16,9 @@ import lombok.Data; * @version: 1.0 */ @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class BasicDictQueryReq { private Long parentId; diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/response/BasicDictTreeResp.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/response/BasicDictTreeResp.java index a5a6f1a5..9197b020 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/response/BasicDictTreeResp.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/response/BasicDictTreeResp.java @@ -16,6 +16,8 @@ public class BasicDictTreeResp { private Long id; + private Long parentId; + /** * 字典名称 */ diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java index e766f315..977009ab 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java @@ -33,7 +33,7 @@ public class SaasBasicDictController implements SaasBasicDictApi { } @Override - public ApiResult getBasicDictNodeTree(DictTypeFiledEnum type) { + public ApiResult> getBasicDictNodeTree(DictTypeFiledEnum type) { return saasBasicDictService.getBasicDictNodeTree(type); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java index c20343b8..4ce7e168 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java @@ -1,6 +1,7 @@ package cn.axzo.tyr.server.repository; import cn.axzo.basics.common.BeanMapper; +import cn.axzo.tyr.client.model.dict.request.BasicDictNodeReq; import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq; import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.server.repository.entity.SaasBasicDict; @@ -35,4 +36,11 @@ public class SaasBasicDictDao extends ServiceImpl basicDictList = queryChainWrapper.orderByDesc(SaasBasicDict::getSort).list(); return BeanMapper.copyList(basicDictList, BasicDictNodeResp.class, (s, b) -> b.setStatus(s.getStatus() == 1)); } + + public BasicDictNodeResp getBasicDictNode(BasicDictNodeReq req) { + SaasBasicDict saasBasicDict = lambdaQuery().eq(Objects.nonNull(req.getType()), SaasBasicDict::getType, req.getType().getValue()) + .eq(Objects.nonNull(req.getCode()), SaasBasicDict::getCode, req.getCode()) + .one(); + return BeanMapper.copyBean(saasBasicDict, BasicDictNodeResp.class, (s, b) -> b.setStatus(s.getStatus() == 1)); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java index 6c9aeeeb..5b481ec3 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java @@ -7,7 +7,6 @@ import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp; import java.util.List; -import cn.axzo.tyr.client.model.dict.request.*; /** * @author: chenwenjian @@ -19,7 +18,7 @@ import cn.axzo.tyr.client.model.dict.request.*; public interface SaasBasicDictService { ApiResult> getBasicDictNodeList(BasicDictQueryReq req); - ApiResult getBasicDictNodeTree(DictTypeFiledEnum type); + ApiResult> getBasicDictNodeTree(DictTypeFiledEnum type); ApiResult getById(Long id); ApiResult getBasicDictNode(BasicDictNodeReq req); diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java index e47e1551..3479a01e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java @@ -8,11 +8,16 @@ import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp; import cn.axzo.tyr.server.repository.SaasBasicDictDao; import cn.axzo.tyr.server.service.SaasBasicDictService; +import cn.hutool.core.collection.CollectionUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * @author: chenwenjian @@ -33,29 +38,67 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService { return ApiResult.ok(saasBasicDictDao.getBasicDictNodeList(req)); } + /** + * 获取节点树 + * @param type + * @return + */ @Override - public ApiResult getBasicDictNodeTree(DictTypeFiledEnum type) { -// // 获取所有节点 -// List basicDictNodeList = saasBasicDictDao.getBasicDictNodeList(null); -// // 单侧树 -// if (Objects.nonNull(type)){ -// basicDictNodeList.stream().filter(new Predicate() { -// @Override -// public boolean test(BasicDictNodeResp b) { -// return b.getType().equals(type.getValue()); -// } -// }); -// } - return null; + public ApiResult> getBasicDictNodeTree(DictTypeFiledEnum type) { + // 获取所有节点 + List basicDictNodeList = saasBasicDictDao.getBasicDictNodeList(null); + // 单侧树 + if (Objects.nonNull(type)){ + List unilateralTreeNodeList = basicDictNodeList.stream() + .filter(b -> b.getType().equals(type.getValue()) || b.getType().equals(DictTypeFiledEnum.WORKSPACE.getValue())) + .collect(Collectors.toList()); + return ApiResult.ok(constructDictTree(unilateralTreeNodeList)); + } + return ApiResult.ok(constructDictTree(basicDictNodeList)); } - public BasicDictTreeResp constructDictTree(List nodeList){ - return null; + /** + * 根据节点列表构建节点树 + * @param nodeList 节点列表 + * @return 节点树 + */ + public List constructDictTree(List nodeList) { + if (CollectionUtil.isEmpty(nodeList)) { + return null; + } + + ArrayList root = new ArrayList<>(); + LinkedHashMap map = new LinkedHashMap<>(); + + nodeList.forEach(node -> { + BasicDictTreeResp treeNode = BeanMapper.copyBean(node, BasicDictTreeResp.class); + map.put(node.getId(), treeNode); + if (node.getParentId() == 0){ + root.add(treeNode); + } + }); + map.values().forEach(treeNode -> { + BasicDictTreeResp parent = map.get(treeNode.getParentId()); + if (Objects.nonNull(parent)){ + if (Objects.isNull(parent.getChildren())){ + parent.setChildren(new ArrayList<>()); + } + parent.getChildren().add(treeNode); + } + }); + + return root; } + /** + * 获取节点详情 + * + * @param req type和code + * @return 一个字典节点 + */ @Override public ApiResult getBasicDictNode(BasicDictNodeReq req) { - return null; + return ApiResult.ok(saasBasicDictDao.getBasicDictNode(req)); } @Override @@ -72,6 +115,7 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService { public ApiResult updateStauts(BasicDictUpdateStatusReq req) { return null; } + @Override public ApiResult getById(Long id) { return ApiResult.ok(BeanMapper.copyBean(saasBasicDictDao.getById(id), BasicDictNodeResp.class)); From e380d0c9429e2f40d85bcaf8bc417a5c146e4979 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 11 Sep 2023 15:03:16 +0800 Subject: [PATCH 14/16] =?UTF-8?q?add=20-=20=E6=96=B0=E5=A2=9E=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E8=8E=B7=E5=8F=96=E5=AD=97=E5=85=B8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java | 3 +++ .../tyr/client/model/dict/request/BasicDictQueryReq.java | 4 ++-- .../tyr/server/controller/dict/SaasBasicDictController.java | 5 +++++ .../cn/axzo/tyr/server/service/SaasBasicDictService.java | 2 ++ .../tyr/server/service/impl/SaasBasicDictServiceImpl.java | 5 +++++ 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java index 389d29cc..3cec8ab8 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java @@ -83,4 +83,7 @@ public interface SaasBasicDictApi { @GetMapping("api/dict/get") ApiResult get(@RequestParam Long id); + + @GetMapping("api/dict/get-by-ids") + ApiResult> getByIds(@RequestParam List ids) ; } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java index 7ee0fe68..ddb1708f 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java @@ -26,13 +26,13 @@ public class BasicDictQueryReq { /** * workspace */ - @EnumValidator(enumClass = DictWorkSpaceTypeEnum.class, message = "枚举类型错误") +// @EnumValidator(enumClass = DictWorkSpaceTypeEnum.class, message = "枚举类型错误") private DictWorkSpaceTypeEnum workspaceType; /** * type */ - @EnumValidator(enumClass = DictTypeFiledEnum.class, message = "枚举类型错误") +// @EnumValidator(enumClass = DictTypeFiledEnum.class, message = "枚举类型错误") private DictTypeFiledEnum type; /** diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java index 977009ab..9fda27b6 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java @@ -61,4 +61,9 @@ public class SaasBasicDictController implements SaasBasicDictApi { public ApiResult get(Long id) { return saasBasicDictService.getById(id); } + + @Override + public ApiResult> getByIds(List ids) { + return saasBasicDictService.getByIds(ids); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java index 5b481ec3..e1e4f729 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java @@ -28,4 +28,6 @@ public interface SaasBasicDictService { ApiResult update(BasicDictUpdateReq req); ApiResult updateStauts(BasicDictUpdateStatusReq req); + + ApiResult> getByIds(List ids); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java index 3479a01e..1d1aacf7 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java @@ -120,4 +120,9 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService { public ApiResult getById(Long id) { return ApiResult.ok(BeanMapper.copyBean(saasBasicDictDao.getById(id), BasicDictNodeResp.class)); } + + @Override + public ApiResult> getByIds(List ids) { + return ApiResult.ok(BeanMapper.copyList(saasBasicDictDao.listByIds(ids), BasicDictNodeResp.class)); + } } From aae9578fac79daae3bf4bc26b674a638e055dbc8 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 11 Sep 2023 15:06:29 +0800 Subject: [PATCH 15/16] =?UTF-8?q?update=20-=20=E5=AD=97=E5=85=B8list=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E9=80=9A=E8=BF=87=20ID=20?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/tyr/client/feign/SaasBasicDictApi.java | 2 -- .../client/model/dict/request/BasicDictQueryReq.java | 4 ++++ .../controller/dict/SaasBasicDictController.java | 4 ---- .../axzo/tyr/server/repository/SaasBasicDictDao.java | 11 +++++++---- .../axzo/tyr/server/service/SaasBasicDictService.java | 1 - .../server/service/impl/SaasBasicDictServiceImpl.java | 4 ---- 6 files changed, 11 insertions(+), 15 deletions(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java index 3cec8ab8..b6d3ff30 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasBasicDictApi.java @@ -84,6 +84,4 @@ public interface SaasBasicDictApi { @GetMapping("api/dict/get") ApiResult get(@RequestParam Long id); - @GetMapping("api/dict/get-by-ids") - ApiResult> getByIds(@RequestParam List ids) ; } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java index ddb1708f..f4a56deb 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/dict/request/BasicDictQueryReq.java @@ -8,6 +8,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** * @author: chenwenjian * @date: 2023/9/6 14:02 @@ -21,6 +23,8 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class BasicDictQueryReq { + private List ids; + private Long parentId; /** diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java index 9fda27b6..c8715a08 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/dict/SaasBasicDictController.java @@ -62,8 +62,4 @@ public class SaasBasicDictController implements SaasBasicDictApi { return saasBasicDictService.getById(id); } - @Override - public ApiResult> getByIds(List ids) { - return saasBasicDictService.getByIds(ids); - } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java index 4ce7e168..ea881629 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java @@ -9,6 +9,7 @@ import cn.axzo.tyr.server.repository.mapper.SaasBasicDictMapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; @@ -25,10 +26,12 @@ public class SaasBasicDictDao extends ServiceImpl getBasicDictNodeList(BasicDictQueryReq req) { LambdaQueryChainWrapper queryChainWrapper = lambdaQuery(); - if (Objects.nonNull(req)){ - queryChainWrapper.eq(Objects.nonNull(req.getParentId()), SaasBasicDict::getParentId, req.getParentId()) - .eq(Objects.nonNull(req.getWorkspaceType()), SaasBasicDict::getWorkspaceType, Objects.nonNull(req.getWorkspaceType())?req.getWorkspaceType().getValue():"") - .eq(Objects.nonNull(req.getType()), SaasBasicDict::getType, Objects.nonNull(req.getType())?req.getType().getValue():"") + if (Objects.nonNull(req)) { + queryChainWrapper + .eq(!CollectionUtils.isEmpty(req.getIds()), SaasBasicDict::getId, req.getIds()) + .eq(Objects.nonNull(req.getParentId()), SaasBasicDict::getParentId, req.getParentId()) + .eq(Objects.nonNull(req.getWorkspaceType()), SaasBasicDict::getWorkspaceType, Objects.nonNull(req.getWorkspaceType()) ? req.getWorkspaceType().getValue() : "") + .eq(Objects.nonNull(req.getType()), SaasBasicDict::getType, Objects.nonNull(req.getType()) ? req.getType().getValue() : "") .eq(Objects.nonNull(req.getCode()), SaasBasicDict::getCode, req.getCode()) .eq(Objects.nonNull(req.getStatus()), SaasBasicDict::getStatus, Boolean.TRUE.equals(req.getStatus()) ? 1 : 0) .like(Objects.nonNull(req.getName()), SaasBasicDict::getName, req.getName()); diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java index e1e4f729..397658b6 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasBasicDictService.java @@ -29,5 +29,4 @@ public interface SaasBasicDictService { ApiResult updateStauts(BasicDictUpdateStatusReq req); - ApiResult> getByIds(List ids); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java index 1d1aacf7..9644a1bf 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasBasicDictServiceImpl.java @@ -121,8 +121,4 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService { return ApiResult.ok(BeanMapper.copyBean(saasBasicDictDao.getById(id), BasicDictNodeResp.class)); } - @Override - public ApiResult> getByIds(List ids) { - return ApiResult.ok(BeanMapper.copyList(saasBasicDictDao.listByIds(ids), BasicDictNodeResp.class)); - } } From 8bd09278bfc5ba201f8bb316b3463813c5266620 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 11 Sep 2023 15:24:07 +0800 Subject: [PATCH 16/16] =?UTF-8?q?update=20-=20=E5=AD=97=E5=85=B8list=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E9=80=9A=E8=BF=87=20ID=20?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java index ea881629..5f71b90c 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/SaasBasicDictDao.java @@ -28,7 +28,7 @@ public class SaasBasicDictDao extends ServiceImpl queryChainWrapper = lambdaQuery(); if (Objects.nonNull(req)) { queryChainWrapper - .eq(!CollectionUtils.isEmpty(req.getIds()), SaasBasicDict::getId, req.getIds()) + .in(!CollectionUtils.isEmpty(req.getIds()), SaasBasicDict::getId, req.getIds()) .eq(Objects.nonNull(req.getParentId()), SaasBasicDict::getParentId, req.getParentId()) .eq(Objects.nonNull(req.getWorkspaceType()), SaasBasicDict::getWorkspaceType, Objects.nonNull(req.getWorkspaceType()) ? req.getWorkspaceType().getValue() : "") .eq(Objects.nonNull(req.getType()), SaasBasicDict::getType, Objects.nonNull(req.getType()) ? req.getType().getValue() : "")