refactor(权限点):保存接口增加返回当前信息

This commit is contained in:
zhansihu 2023-09-11 15:24:26 +08:00
parent a79b7419d3
commit 60b7f72655
6 changed files with 22 additions and 12 deletions

View File

@ -38,7 +38,7 @@ public interface PermissionPointApi {
/** 保存权限点 - 新增或更新 **/
@PostMapping(value = "/api/v1/permissionPoint/save")
ApiResult<Void> savePermissionPoint(@RequestBody PermissionPointDTO dto);
ApiResult<PermissionPointDTO> savePermissionPoint(@RequestBody PermissionPointDTO dto);
/** 删除权限点 - 直接删除 **/
@PostMapping(value = "/api/v1/permissionPoint/delete/{permissionId}")

View File

@ -156,4 +156,7 @@ public class PermissionPointDTO {
*/
private Integer delegatedType;
/** 业务编码 **/
private String businessNo;
}

View File

@ -25,4 +25,7 @@ public class PermissionPointTreeQueryReq {
/** 权限点所属工作台 **/
private List<String> terminalList;
/** 权限点ID列表 **/
private List<Long> ids;
}

View File

@ -46,7 +46,7 @@ public class PermissionPointController implements PermissionPointApi {
}
@Override
public ApiResult<Void> savePermissionPoint(PermissionPointDTO dto) {
public ApiResult<PermissionPointDTO> savePermissionPoint(PermissionPointDTO dto) {
permissionPointService.save(dto);
return ApiResult.ok();
}

View File

@ -33,7 +33,7 @@ public interface PermissionPointService {
PermissionPointVO getDetail(Long permissionId);
/** 保存权限点 **/
void save(PermissionPointDTO dto);
PermissionPointDTO save(PermissionPointDTO dto);
/** 删除权限点 **/
void delete(Long permissionId);

View File

@ -4,7 +4,6 @@ import cn.axzo.basics.common.BeanMapper;
import cn.axzo.basics.common.util.TreeUtil;
import cn.axzo.framework.domain.web.BizException;
import cn.axzo.framework.domain.web.code.BaseCode;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import cn.axzo.tyr.client.model.enums.FeatureType;
import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
@ -158,7 +157,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
vo.setPathName(pathName);
return vo;
}
//所有父级处理
//查询所有父级
List<String> split = StrUtil.split(vo.getPath(), FEATURE_PATH_DELIMITER, true, true);
List<Long> ids = split.stream()
.filter(x -> !StrUtil.equals(FEATURE_NO_PARENT, x))
@ -167,6 +166,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
Map<Long, SaasFeature> parentsMapping = this.saasFeatureDao.listByIds(ids)
.stream()
.collect(Collectors.toMap(SaasFeature::getId, Function.identity()));
//填充层级父级名称 直接父级信息
for (Long parentId : ids) {
pathName.add(parentsMapping.get(parentId).getFeatureName());
}
@ -180,16 +180,14 @@ public class PermissionPointServiceImpl implements PermissionPointService {
}
@Override
public void save(PermissionPointDTO dto) {
public PermissionPointDTO save(PermissionPointDTO dto) {
if (dto.getId() == null) {
doInsert(dto);
} else {
doUpdate(dto);
return doInsert(dto);
}
return doUpdate(dto);
}
private void doUpdate(PermissionPointDTO dto) {
private PermissionPointDTO doUpdate(PermissionPointDTO dto) {
SaasFeature feature = getAndCheck(dto.getId());
SaasFeature saasFeature = BeanMapper.copyBean(dto, SaasFeature.class);
//清理不可更新的数据
@ -198,7 +196,10 @@ public class PermissionPointServiceImpl implements PermissionPointService {
saasFeature.setPath(null);
saasFeature.setSort(null);
saasFeature.setTerminal(null);
saasFeature.setBusinessNo(null);
this.saasFeatureDao.updateById(saasFeature);
dto.setBusinessNo(feature.getBusinessNo());
return dto;
}
private SaasFeature getAndCheck(Long permissionId) {
@ -210,7 +211,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
return feature;
}
private void doInsert(PermissionPointDTO dto) {
private PermissionPointDTO doInsert(PermissionPointDTO dto) {
SaasFeature saasFeature = BeanMapper.copyBean(dto, SaasFeature.class);
SaasFeature parent;
if (dto.getParentId() == null || dto.getParentId() < 1) {
@ -225,6 +226,9 @@ public class PermissionPointServiceImpl implements PermissionPointService {
saasFeature.setParentBusinessNo(parent.getBusinessNo());
saasFeature.setPath(parent.getPath() + parent.getId() + FEATURE_PATH_DELIMITER);
this.saasFeatureDao.save(saasFeature);
dto.setId(saasFeature.getId());
dto.setBusinessNo(saasFeature.getBusinessNo());
return dto;
}
@Transactional(rollbackFor = Throwable.class)