提交 c1e73fcb 作者: xiaowang

Merge branch 'develop' of ssh://git.mmcuav.cn:8222/iuav/cms into develop

......@@ -44,7 +44,9 @@ public enum ResultEnum implements BaseErrorInfoInterface {
UPDATE_OWNER_ROLE_MENUS_ERROR("8007", "禁止修改与当前登录账号角色相同的角色权限"),
UPDATE_OWNER_ROLE_ERROR("8008", "禁止修改当前账号的角色"),
UPDATE_ADMIN_ROLE_ERROR("8009", "禁止修改admin账号的角色"),
ONLY_ONE_ADMIN_ERROR("8010", "禁止该账号获取超级管理员角色");
ONLY_ONE_ADMIN_ERROR("8010", "禁止该账号获取超级管理员角色"),
DELETE_ADMIN_ERROR("8011", "禁止删除超级管理员角色账号"),
DELETE_YOURSELF_ERROR("8011", "禁止删除自己的账号");
/**
* 错误码
......
......@@ -47,7 +47,7 @@ public class BackUserAccountController extends BaseController {
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("removeBAccount")
public ResultBody disableBAccount(@RequestParam Integer userAccountId, HttpServletRequest request) {
return backUserAccountService.disableBAccount(userAccountId);
return backUserAccountService.disableBAccount(userAccountId, this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "账号-列表")
......
......@@ -69,7 +69,6 @@ public class RoleController extends BaseController {
return roleService.listRoleMenuInfo(roleId);
}
@ApiOperation(value = "修改角色菜单权限")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("updateRoleMenuInfo")
......
......@@ -34,10 +34,11 @@ public interface BackUserAccountService {
/**
* 禁用后台用户
*
* @param userAccountId
* @param accountId
* @param backUserAccountId
* @return
*/
ResultBody disableBAccount(Integer userAccountId);
ResultBody disableBAccount(Integer accountId, Integer backUserAccountId);
/**
* 后台用户列表
......
......@@ -47,24 +47,25 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
public ResultBody insertBAccount(BUserAccountVO bUserAccountVO) {
if (!bUserAccountVO.getPassWord().equals(bUserAccountVO.getAlertPwd())) {
// 两次密码不一致
throw new BizException(ResultEnum.PWD_ALERT_ERROR);
return ResultBody.error(ResultEnum.PWD_ALERT_ERROR);
}
// 获取新增的账户名是否已经存在
int count = backUserAccountDao.countUserAccountNo(null, bUserAccountVO.getAccountNo());
if (count > 0) {
throw new BizException(ResultEnum.ADD_USER_ACCOUNT_NAME_EXISTS);
return ResultBody.error(ResultEnum.ADD_USER_ACCOUNT_NAME_EXISTS);
}
if (bUserAccountVO.getRoleId().equals(RoleEnums.ADMIN.getId())) {
throw new BizException(ResultEnum.ONLY_ONE_ADMIN_ERROR);
return ResultBody.error(ResultEnum.ONLY_ONE_ADMIN_ERROR);
}
roleDao.insertUserRoleRel(bUserAccountVO.getId(), bUserAccountVO.getRoleId());
BackUserAccountDO backUserAccountDO = new BackUserAccountDO(bUserAccountVO);
try {
backUserAccountDO.setPassword(PwdUtil.securityPwd(bUserAccountVO.getPassWord()));
} catch (NoSuchAlgorithmException e) {
throw new BizException(ResultEnum.PWD_CREATE_ERROR);
return ResultBody.error(ResultEnum.PWD_CREATE_ERROR);
}
backUserAccountDao.insertBackUserAccount(backUserAccountDO);
// 添加角色
roleDao.insertUserRoleRel(backUserAccountDO.getId(), bUserAccountVO.getRoleId());
// 添加单位信息
if (bUserAccountVO.getCompanyId() != null) {
CompanyBackUserDO companyBackUserDO = new CompanyBackUserDO();
......@@ -86,35 +87,43 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
throw new BizException(ResultEnum.UPDATE_USER_ACCOUNT_REPEAT);
}
}
BackUserAccountDO userAccountDO = new BackUserAccountDO(bUserAccountVO);
backUserAccountDao.updateBackUserAccount(userAccountDO);
// 修改单位信息
if (bUserAccountVO.getCompanyId() != null) {
CompanyBackUserDO companyBackUserDO = new CompanyBackUserDO();
companyBackUserDO.setBackUserAccountId(userAccountDO.getId());
companyBackUserDO.setCompanyInfoId(bUserAccountVO.getCompanyId());
companyService.updateCompanyBackUser(companyBackUserDO);
}
// 当前角色不是超级管理员,则不能修改为管理员账号
RoleInfoDO roleInfoDO = roleDao.getRoleInfoByUserId(bUserAccountVO.getId());
if (!roleInfoDO.getId().equals(RoleEnums.ADMIN.getId()) && bUserAccountVO.getRoleId().equals(RoleEnums.ADMIN.getId())) {
throw new BizException(ResultEnum.ONLY_ONE_ADMIN_ERROR);
return ResultBody.error(ResultEnum.ONLY_ONE_ADMIN_ERROR);
}
// 不能修改自己的角色
if (loginSuccessDTO.getUserAccountId().toString().equals(bUserAccountVO.getId().toString())) {
throw new BizException(ResultEnum.UPDATE_OWNER_ROLE_ERROR);
if (loginSuccessDTO.getUserAccountId().toString().equals(bUserAccountVO.getId().toString())
&& !bUserAccountVO.getRoleId().toString().equals(roleInfoDO.getId())) {
return ResultBody.error(ResultEnum.UPDATE_OWNER_ROLE_ERROR);
}
// 不能修改admin账号的角色
if (bUserAccountVO.getId().equals(1) && !bUserAccountVO.getRoleId().equals(RoleEnums.ADMIN.getId())) {
throw new BizException(ResultEnum.UPDATE_ADMIN_ROLE_ERROR);
return ResultBody.error(ResultEnum.UPDATE_ADMIN_ROLE_ERROR);
}
BackUserAccountDO userAccountDO = new BackUserAccountDO(bUserAccountVO);
backUserAccountDao.updateBackUserAccount(userAccountDO);
// 修改单位信息
if (bUserAccountVO.getCompanyId() != null) {
CompanyBackUserDO companyBackUserDO = new CompanyBackUserDO();
companyBackUserDO.setBackUserAccountId(userAccountDO.getId());
companyBackUserDO.setCompanyInfoId(bUserAccountVO.getCompanyId());
companyService.updateCompanyBackUser(companyBackUserDO);
}
roleDao.updateUserRoleRel(bUserAccountVO.getId(), bUserAccountVO.getRoleId());
return ResultBody.success();
}
@Override
public ResultBody disableBAccount(Integer userAccountId) {
backUserAccountDao.disableBackUserAccountDO(userAccountId);
public ResultBody disableBAccount(Integer accountId, Integer backUserAccountId) {
RoleInfoDO roleInfoDO = roleDao.getRoleInfoByUserId(accountId);
if (roleInfoDO.getSuperAdmin().equals(RoleEnums.ADMIN.getId())) {
return ResultBody.error(ResultEnum.DELETE_ADMIN_ERROR);
}
if (accountId.toString().equals(backUserAccountId.toString())) {
return ResultBody.error(ResultEnum.DELETE_YOURSELF_ERROR);
}
backUserAccountDao.disableBackUserAccountDO(accountId);
return ResultBody.success();
}
......
......@@ -101,19 +101,17 @@ public class RoleServiceImpl implements RoleService {
if (roleMenuInfoVO.getRoleId().equals(loginSuccessDTO.getRoleInfo().getId())) {
return ResultBody.error(ResultEnum.UPDATE_OWNER_ROLE_MENUS_ERROR);
}
if (!CollectionUtils.isEmpty(roleMenuInfoVO.getMenuInfoIds())) {
List<MenuInfoDO> menuInfoDOList = roleDao.listRoleMenuInfo(roleMenuInfoVO.getRoleId());
List<Integer> existMenuIds = menuInfoDOList.stream().map(MenuInfoDO::getId).collect(Collectors.toList());
// 新添加的权限
List<Integer> addMenuIds = roleMenuInfoVO.getMenuInfoIds().stream().filter(v -> !existMenuIds.contains(v)).collect(Collectors.toList());
// 需删除的权限
List<Integer> deleteMenuIds = existMenuIds.stream().filter(v -> !roleMenuInfoVO.getMenuInfoIds().contains(v)).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(addMenuIds)) {
roleDao.batchAddMenuIds(roleMenuInfoVO.getRoleId(), addMenuIds);
}
if (!CollectionUtils.isEmpty(deleteMenuIds)) {
roleDao.batchDeleteMenuIds(roleMenuInfoVO.getRoleId(), deleteMenuIds);
}
List<MenuInfoDO> menuInfoDOList = roleDao.listRoleMenuInfo(roleMenuInfoVO.getRoleId());
List<Integer> existMenuIds = menuInfoDOList.stream().map(MenuInfoDO::getId).collect(Collectors.toList());
// 新添加的权限
List<Integer> addMenuIds = roleMenuInfoVO.getMenuInfoIds().stream().filter(v -> !existMenuIds.contains(v)).collect(Collectors.toList());
// 需删除的权限
List<Integer> deleteMenuIds = existMenuIds.stream().filter(v -> !roleMenuInfoVO.getMenuInfoIds().contains(v)).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(addMenuIds)) {
roleDao.batchAddMenuIds(roleMenuInfoVO.getRoleId(), addMenuIds);
}
if (!CollectionUtils.isEmpty(deleteMenuIds)) {
roleDao.batchDeleteMenuIds(roleMenuInfoVO.getRoleId(), deleteMenuIds);
}
return ResultBody.success();
}
......
......@@ -113,9 +113,7 @@
</select>
<delete id="removeRoleInfo" parameterType="java.lang.Integer">
delete
from role_info
where id = #{id}
update role_info set is_deleted = 1 where id = #{id}
</delete>
<delete id="batchDeleteMenuIds">
......@@ -182,7 +180,7 @@
<select id="countNotDelUserAccountByRole" resultType="java.lang.Integer">
SELECT count(*)
FROM user_role_rel ur
INNER JOIN user_account ua ON ur.back_user_account_id = ua.id
INNER JOIN back_user_account ua ON ur.back_user_account_id = ua.id
WHERE ur.role_id = #{id}
AND ua.is_deleted = 0
</select>
......
......@@ -18,4 +18,4 @@ patches:
images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms
newTag: 1b4aa203732125215528da7902fe4b68c687dfd3
newTag: 6accac4106c773d7a04f22f7ea1686607acee6b9
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论