提交 ca32ed2b 编写于 作者: minghao.wu's avatar minghao.wu

fix: saas系统管理员重复

上级 4ac13b43
流水线 #43209 已取消 于阶段
......@@ -70,7 +70,10 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
@Transactional
public int register(HospitalSaasUserReq req, Long doctorId) {
req.checkInsertParams();
validatorAdminRole(req.getRoleId(), req.getHospitalId().longValue());
PermissionDoctorRole existRole = doctorRoleMapper.selectByHospitalIdRoleId(req.getHospitalId(), SaasRoleEnum.SAAS_MAIN_ADMIN.getCode().intValue());
if (existRole != null) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "saas系统管理员已存在");
}
if (CollectionUtils.isNotEmpty(req.getRoleId()) &&
((req.getRoleId().contains(SaasRoleEnum.MAIN_ADMIN_ROLE.getCode())) || req.getRoleId().contains(SaasRoleEnum.ADMIN_ROLE.getCode()))) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "主管理员或系统管理员不可被操作");
......@@ -188,13 +191,6 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
return new HospitalSaasUserResp(lists, count);
}
private void validatorAdminRole(List<Long> roleId, Long hospitalId) {
int count = accountMapper.adminRoleCountByhospitalId(hospitalId);
if (count >= 1 && CollectionUtils.isNotEmpty(roleId) && roleId.contains(SaasRoleEnum.SAAS_MAIN_ADMIN.getCode())) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "当前已存在系统管理员,请勿重复设置");
}
}
@Override
public int upsert(HospitalSaasUserReq req, Long doctorId) {
if (Objects.isNull(req) || Objects.isNull(req.getHospitalId()) || CollectionUtils.isEmpty(req.getRoleId())) {
......@@ -205,6 +201,14 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
inputRoleIdList.addAll(req.getRoleId());
List<Long> delRoleIdList = new ArrayList<>();
/** 判定saas系统管理员重复 */
if (inputRoleIdList.contains(SaasRoleEnum.SAAS_MAIN_ADMIN.getCode())) {
PermissionDoctorRole existRole = doctorRoleMapper.selectByHospitalIdRoleId(req.getHospitalId(), SaasRoleEnum.SAAS_MAIN_ADMIN.getCode().intValue());
if (existRole != null && !existRole.getDoctorId().equals(req.getId())) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "saas系统管理员已存在");
}
}
/** 移除不可编辑的角色 */
if (req.getLoginFlag() == 0) {
inputRoleIdList.removeIf(ele -> ele.equals(SaasRoleEnum.MAIN_ADMIN_ROLE.getCode()));
......@@ -217,6 +221,7 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
delRoleIdList.addAll(Arrays.asList(SaasRoleEnum.MAIN_ADMIN_ROLE.getCode(), SaasRoleEnum.ADMIN_ROLE.getCode(), SaasRoleEnum.SAAS_MAIN_ADMIN.getCode()));
}
if (CollectionUtils.isNotEmpty(inputRoleIdList)) {
Map<String, Object> map = new HashMap(3);
map.put("id", req.getId());
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册