diff --git a/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/domain/SysDeptRole.java b/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/domain/SysDeptRole.java index 08d31cebf..ed6d4530b 100644 --- a/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/domain/SysDeptRole.java +++ b/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/domain/SysDeptRole.java @@ -1,8 +1,10 @@ package com.microservices.system.domain; import com.microservices.common.core.web.domain.BaseEntity; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; +import com.microservices.system.api.domain.SysDept; +import com.microservices.system.api.domain.SysRole; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; /** * 部门下可选角色对象 sys_dept_role @@ -10,6 +12,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; * @author otto * @date 2023-04-12 */ +@Data public class SysDeptRole extends BaseEntity { public SysDeptRole(Long deptId, Long roleId) { this.deptId = deptId; @@ -27,28 +30,15 @@ public class SysDeptRole extends BaseEntity { * 角色ID */ private Long roleId; + /** + * 部门对象 + */ + @ApiModelProperty(value = "部门对象", hidden = true) + private SysDept sysDept; - public void setDeptId(Long deptId) { - this.deptId = deptId; - } - - public Long getDeptId() { - return deptId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getRoleId() { - return roleId; - } - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("deptId", getDeptId()) - .append("roleId", getRoleId()) - .toString(); - } + /** + * 角色对象 + */ + @ApiModelProperty(value = "角色对象", hidden = true) + private SysRole sysRole; } diff --git a/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/service/ISysDeptRoleService.java b/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/service/ISysDeptRoleService.java index 8d367b8a7..eac12b428 100644 --- a/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/service/ISysDeptRoleService.java +++ b/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/service/ISysDeptRoleService.java @@ -30,7 +30,7 @@ public interface ISysDeptRoleService { * @param roleIds 角色主键列表 * @return 结果 */ - int addSysRoleListForSysDept(Long deptId, Long[] roleIds); + boolean addSysRoleListForSysDept(Long deptId, Long[] roleIds); /** * 批量删除部门下可选角色 diff --git a/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/service/impl/SysDeptRoleServiceImpl.java b/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/service/impl/SysDeptRoleServiceImpl.java index 642426473..c41a99dfd 100644 --- a/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/service/impl/SysDeptRoleServiceImpl.java +++ b/microservices-modules/microservices-modules-system/src/main/java/com/microservices/system/service/impl/SysDeptRoleServiceImpl.java @@ -186,8 +186,7 @@ public class SysDeptRoleServiceImpl implements ISysDeptRoleService { @Override @Transactional(rollbackFor = Exception.class) - public int addSysRoleListForSysDept(Long deptId, Long[] roleIds) { - int success = 0; + public boolean addSysRoleListForSysDept(Long deptId, Long[] roleIds) { selectSysDeptById(deptId); List newRoleIdList = Arrays.asList(roleIds); List oldDeptRoleList = sysDeptRoleMapper.selectSysDeptRoleListByDeptId(deptId, null); @@ -197,6 +196,13 @@ public class SysDeptRoleServiceImpl implements ISysDeptRoleService { if (oldDeptRoleList != null && !oldDeptRoleList.isEmpty()) { List oldRoleIdList = oldDeptRoleList .stream() + .filter(x -> { + SysRole sysRole = x.getSysRole(); + if (sysRole != null) { + return !SystemRole.isVirtual(sysRole.getRoleKey()); + } + return false; + }) .map(SysDeptRole::getRoleId) .collect(Collectors.toList()); @@ -206,7 +212,7 @@ public class SysDeptRoleServiceImpl implements ISysDeptRoleService { List delRoleIdList = new ArrayList<>(oldRoleIdList); delRoleIdList.removeAll(newRoleIdList); if (!delRoleIdList.isEmpty()) { - success += deleteSysRoleListForSysDept(deptId, delRoleIdList.toArray(new Long[0])); + deleteSysRoleListForSysDept(deptId, delRoleIdList.toArray(new Long[0])); } } @@ -216,12 +222,10 @@ public class SysDeptRoleServiceImpl implements ISysDeptRoleService { .selectSysDeptRoleByDeptIdAndRoleId(deptId, roleId); if (sysDeptRole == null) { sysDeptRole = new SysDeptRole(deptId, roleId); - success += sysDeptRoleMapper.insertSysDeptRole(sysDeptRole); - } else { - success++; + sysDeptRoleMapper.insertSysDeptRole(sysDeptRole); } } - return success; + return true; } @Override diff --git a/microservices-modules/microservices-modules-system/src/main/resources/mapper/system/SysDeptRoleMapper.xml b/microservices-modules/microservices-modules-system/src/main/resources/mapper/system/SysDeptRoleMapper.xml index cdfd04d5c..44422352e 100644 --- a/microservices-modules/microservices-modules-system/src/main/resources/mapper/system/SysDeptRoleMapper.xml +++ b/microservices-modules/microservices-modules-system/src/main/resources/mapper/system/SysDeptRoleMapper.xml @@ -7,6 +7,29 @@ + + + + + + + + + + + + + + + + + + + + + @@ -14,12 +37,24 @@ from sys_dept_role - - SELECT sdr.dept_id, - sdr.role_id, - sr.role_name - FROM sys_dept_role sdr - LEFT JOIN sys_role sr ON sr.role_id = sdr.role_id + + select sd.dept_id, + sd.parent_id, + sd.ancestors, + sd.dept_name, + sd.order_num, + sd.dept_type, + sd.leader, + sd.status as dept_status, + sr.role_id, + sr.role_name, + sr.role_key, + sr.role_sort, + sr.data_scope, + sr.status as role_status + from sys_dept_role sdr + left join sys_dept sd on sdr.dept_id = sd.dept_id + left join sys_role sr on sr.role_id = sdr.role_id - + where sdr.dept_id = #{deptId} @@ -58,7 +93,7 @@ WHERE role_id = #{roleId}