refactor(权限点):详情返回对象变更;追加信息

This commit is contained in:
zhansihu 2023-09-08 16:29:13 +08:00
parent ad02d292c2
commit 750bbce2be
6 changed files with 29 additions and 14 deletions

View File

@ -4,6 +4,7 @@ import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.permission.PermissionPointDTO; import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@ -29,7 +30,7 @@ public interface PermissionPointApi {
/** 根据权限点ID查询详情 **/ /** 根据权限点ID查询详情 **/
@GetMapping(value = "/api/v1/permissionPoint/getDetail/{permissionId}") @GetMapping(value = "/api/v1/permissionPoint/getDetail/{permissionId}")
ApiResult<PermissionPointDTO> getDetail(@PathVariable Long permissionId); ApiResult<PermissionPointVO> getDetail(@PathVariable Long permissionId);
/** 根据权限点ID批量查询节点信息 **/ /** 根据权限点ID批量查询节点信息 **/
@PostMapping(value = "/api/v1/permissionPoint/listTreeNodesByIds") @PostMapping(value = "/api/v1/permissionPoint/listTreeNodesByIds")

View File

@ -2,6 +2,8 @@ package cn.axzo.tyr.client.model.permission;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ -23,11 +25,13 @@ public class PermissionPointDTO {
/** /**
* 权限点名称 * 权限点名称
*/ */
@NotBlank(message = "权限点名称不能为空")
private String featureName; private String featureName;
/** /**
* 元素code * 元素code
*/ */
@NotBlank(message = "权限点元素code不能为空")
private String featureCode; private String featureCode;
/** /**
@ -80,11 +84,13 @@ public class PermissionPointDTO {
/** /**
* 菜单适用工作台 * 菜单适用工作台
*/ */
@NotBlank(message = "所属工作台不能为空")
private String terminal; private String terminal;
/** /**
* 元素类别 0.模块 1.菜单 2页面 3按钮 * 元素类别 0.模块 1.菜单 2页面 3按钮
*/ */
@NotNull(message = "元素类别不能为空")
private Integer featureType; private Integer featureType;

View File

@ -5,6 +5,7 @@ import cn.axzo.tyr.client.feign.PermissionPointApi;
import cn.axzo.tyr.client.model.permission.PermissionPointDTO; import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
import cn.axzo.tyr.server.service.PermissionPointService; import cn.axzo.tyr.server.service.PermissionPointService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -35,7 +36,7 @@ public class PermissionPointController implements PermissionPointApi {
} }
@Override @Override
public ApiResult<PermissionPointDTO> getDetail(Long permissionId) { public ApiResult<PermissionPointVO> getDetail(Long permissionId) {
return ApiResult.ok(permissionPointService.getDetail(permissionId)); return ApiResult.ok(permissionPointService.getDetail(permissionId));
} }

View File

@ -3,6 +3,7 @@ package cn.axzo.tyr.server.service;
import cn.axzo.tyr.client.model.permission.PermissionPointDTO; import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
import java.util.List; import java.util.List;
@ -28,7 +29,7 @@ public interface PermissionPointService {
/** /**
* 根据权限点ID查询详情 * 根据权限点ID查询详情
* **/ * **/
PermissionPointDTO getDetail(Long permissionId); PermissionPointVO getDetail(Long permissionId);
/** 保存权限点 **/ /** 保存权限点 **/
void save(PermissionPointDTO dto); void save(PermissionPointDTO dto);

View File

@ -8,6 +8,7 @@ import cn.axzo.tyr.client.model.enums.FeatureType;
import cn.axzo.tyr.client.model.permission.PermissionPointDTO; import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
import cn.axzo.tyr.server.repository.entity.SaasFeature; import cn.axzo.tyr.server.repository.entity.SaasFeature;
import cn.axzo.tyr.server.repository.service.SaasFeatureDao; import cn.axzo.tyr.server.repository.service.SaasFeatureDao;
import cn.axzo.tyr.server.service.PermissionPointService; import cn.axzo.tyr.server.service.PermissionPointService;
@ -138,25 +139,26 @@ public class PermissionPointServiceImpl implements PermissionPointService {
} }
@Override @Override
public PermissionPointDTO getDetail(Long permissionId) { public PermissionPointVO getDetail(Long permissionId) {
SaasFeature feature = this.saasFeatureDao.getById(permissionId); SaasFeature feature = this.saasFeatureDao.getById(permissionId);
if (feature == null) { if (feature == null) {
log.warn("no saasFeature found for:{}", permissionId); log.warn("no saasFeature found for:{}", permissionId);
throw new BizException(BaseCode.BAD_REQUEST); throw new BizException(BaseCode.BAD_REQUEST);
} }
PermissionPointDTO dto = BeanMapper.copyBean(feature, PermissionPointDTO.class); PermissionPointVO vo = BeanMapper.copyBean(feature, PermissionPointVO.class);
vo.setFeatureTypeDesc(FeatureType.apply(vo.getFeatureType()).getDesc());
//补充上级信息 //补充上级信息
//TODO:@Zhan 依赖字典接口构建上级 //TODO:@Zhan 依赖字典接口构建上级
List<String> pathName = new ArrayList<>(); List<String> pathName = new ArrayList<>();
if (dto.getParentId() == null || dto.getParentId() == 0) { if (vo.getParentId() == null || vo.getParentId() == 0) {
//没有parent直接挂在工作台下 //没有parent直接挂在工作台下
dto.setParentName(""); vo.setParentName("");
dto.setPathName(pathName); vo.setPathName(pathName);
return dto; return vo;
} }
//所有父级处理 //所有父级处理
List<String> split = StrUtil.split(dto.getPath(), FEATURE_PATH_DELIMITER, true, true); List<String> split = StrUtil.split(vo.getPath(), FEATURE_PATH_DELIMITER, true, true);
List<Long> ids = split.stream() List<Long> ids = split.stream()
.filter(x -> !StrUtil.equals(FEATURE_NO_PARENT, x)) .filter(x -> !StrUtil.equals(FEATURE_NO_PARENT, x))
.map(Long::valueOf) .map(Long::valueOf)
@ -167,10 +169,13 @@ public class PermissionPointServiceImpl implements PermissionPointService {
for (Long parentId : ids) { for (Long parentId : ids) {
pathName.add(parentsMapping.get(parentId).getFeatureName()); pathName.add(parentsMapping.get(parentId).getFeatureName());
} }
dto.setPathName(pathName); vo.setPathName(pathName);
dto.setParentName(parentsMapping.get(dto.getParentId()).getFeatureName()); SaasFeature parent = parentsMapping.get(vo.getParentId());
vo.setParentName(parent.getFeatureName());
vo.setParentFeatureType(parent.getFeatureType());
vo.setParentFeatureTypeDes(FeatureType.apply(parent.getFeatureType()).getDesc());
return dto; return vo;
} }
@Override @Override

View File

@ -4,6 +4,7 @@ import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.permission.PermissionPointDTO; import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
import cn.axzo.tyr.server.controller.permission.PermissionPointController; import cn.axzo.tyr.server.controller.permission.PermissionPointController;
import cn.axzo.tyr.server.repository.entity.SaasFeature; import cn.axzo.tyr.server.repository.entity.SaasFeature;
import cn.axzo.tyr.server.repository.service.SaasFeatureDao; import cn.axzo.tyr.server.repository.service.SaasFeatureDao;
@ -49,7 +50,7 @@ public class PermissionPointTest {
@Test @Test
public void testGetDetail() { public void testGetDetail() {
Long permissionId = 360L; Long permissionId = 360L;
ApiResult<PermissionPointDTO> result = controller.getDetail(permissionId); ApiResult<PermissionPointVO> result = controller.getDetail(permissionId);
System.out.println(JSON.toJSONString(result)); System.out.println(JSON.toJSONString(result));
} }