|
@@ -7,6 +7,7 @@ import com.ym.mec.auth.service.SysRoleService;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
+import com.ym.mec.common.tenant.TenantContextHolder;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -40,7 +41,7 @@ public class SysRoleServiceImpl extends BaseServiceImpl<Integer, SysRole> imple
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void addRole(SysRole sysRole) {
|
|
|
- SysRole findByName = sysRoleDao.findByRoleName(sysRole.getRoleName(), sysRole.getTenantId());
|
|
|
+ SysRole findByName = sysRoleDao.findByRoleName(sysRole.getRoleName(),sysRole.getTenantId());
|
|
|
if(findByName != null){
|
|
|
throw new BizException("操作失败:角色 {} 已存在",sysRole.getRoleName());
|
|
|
}
|
|
@@ -48,10 +49,19 @@ public class SysRoleServiceImpl extends BaseServiceImpl<Integer, SysRole> imple
|
|
|
batchSave(sysRole);
|
|
|
}
|
|
|
|
|
|
+ public void checkManageRole(Integer id){
|
|
|
+ Integer tenantId = TenantContextHolder.getTenantId();
|
|
|
+ Integer roleId = sysRoleDao.getMinRoleId(tenantId);
|
|
|
+ if(roleId.equals(id)){
|
|
|
+ throw new BizException("操作失败:机构管理员角色不允许调整");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateRole(SysRole sysRole) {
|
|
|
- SysRole findByName = sysRoleDao.findByRoleName(sysRole.getRoleName(), sysRole.getTenantId());
|
|
|
+ this.checkManageRole(sysRole.getId());
|
|
|
+ SysRole findByName = sysRoleDao.findByRoleName(sysRole.getRoleName(),sysRole.getTenantId());
|
|
|
if(findByName != null && !findByName.getId().equals(sysRole.getId())){
|
|
|
throw new BizException("操作失败:角色 {} 已存在",sysRole.getRoleName());
|
|
|
}
|
|
@@ -64,6 +74,7 @@ public class SysRoleServiceImpl extends BaseServiceImpl<Integer, SysRole> imple
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void delRole(Integer id) {
|
|
|
+ this.checkManageRole(id);
|
|
|
sysRoleDao.delete(id);
|
|
|
sysRoleMenuDao.deleteAllMenu(id);
|
|
|
}
|
|
@@ -78,12 +89,7 @@ public class SysRoleServiceImpl extends BaseServiceImpl<Integer, SysRole> imple
|
|
|
private void batchSave(SysRole sysRole){
|
|
|
List<Integer> menuIds = sysRole.getMenuIds();
|
|
|
if(menuIds != null && menuIds.size() > 0){
|
|
|
-// SysRoleMenu sysRoleMenu = new SysRoleMenu(sysRole.getId(),null);
|
|
|
sysRoleMenuDao.batchAdd(sysRole.getId(),menuIds, sysRole.getTenantId());
|
|
|
-// menuIds.forEach(e->{
|
|
|
-// sysRoleMenu.setMenuId(e);
|
|
|
-// sysRoleMenuDao.insert(sysRoleMenu);
|
|
|
-// });
|
|
|
}
|
|
|
}
|
|
|
|