Browse Source

👣 修复角色bug

master
wangxiang 3 years ago
parent
commit
8fecb50e81
  1. 17
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/RoleController.java
  2. 7
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleServiceImpl.java
  3. 8
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml

17
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/RoleController.java

@ -12,15 +12,17 @@ import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.util.PinyinUtil; import com.cloud.kicc.common.core.util.PinyinUtil;
import com.cloud.kicc.common.log.annotation.SysLog; import com.cloud.kicc.common.log.annotation.SysLog;
import com.cloud.kicc.system.api.entity.Role; import com.cloud.kicc.system.api.entity.*;
import com.cloud.kicc.system.api.entity.RoleMenu;
import com.cloud.kicc.system.service.RoleMenuService; import com.cloud.kicc.system.service.RoleMenuService;
import com.cloud.kicc.system.service.RoleService; import com.cloud.kicc.system.service.RoleService;
import com.cloud.kicc.system.service.RoleTenantService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/** /**
*<p> *<p>
@ -37,6 +39,7 @@ public class RoleController {
private final RoleService roleService; private final RoleService roleService;
private final RoleMenuService roleMenuService; private final RoleMenuService roleMenuService;
private final RoleTenantService tenantService;
private LambdaQueryWrapper<Role> getQueryWrapper(Role role) { private LambdaQueryWrapper<Role> getQueryWrapper(Role role) {
return new LambdaQueryWrapper<Role>() return new LambdaQueryWrapper<Role>()
@ -53,7 +56,15 @@ public class RoleController {
@GetMapping("/{id:\\w+}") @GetMapping("/{id:\\w+}")
public R getById(@PathVariable("id") String id) { public R getById(@PathVariable("id") String id) {
return R.ok(roleService.getById(id)); Role role = roleService.getById(id);
List<String> tenantIds;
// 设置角色多租户信息
if (role != null) {
tenantIds = tenantService.list(new LambdaQueryWrapper<RoleTenant>().eq(RoleTenant::getRoleId, role.getId()))
.stream().map(roleTenant -> roleTenant.getMultiTenantId()).collect(Collectors.toList());
role.setTenantIds(ArrayUtil.toArray(tenantIds, String.class));
}
return R.ok(role);
} }
@SysLog("角色新增") @SysLog("角色新增")

7
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleServiceImpl.java

@ -29,7 +29,7 @@ import java.util.List;
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService { public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
private final RoleMenuService roleMenuService; private final RoleMenuService roleMenuService;
private final RoleTenantService RoleTenantService; private final RoleTenantService roleTenantService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -46,6 +46,9 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
baseMapper.updateById(role); baseMapper.updateById(role);
// 删除角色与菜单关联 // 删除角色与菜单关联
roleMenuService.remove(new LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, role.getId())); roleMenuService.remove(new LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, role.getId()));
// 删除角色与多租户关联
roleTenantService.remove(new LambdaQueryWrapper<RoleTenant>().eq(RoleTenant::getRoleId, role.getId()));
insertRoleTenant(role);
return insertRoleMenu(role); return insertRoleMenu(role);
} }
@ -76,7 +79,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
list.add(rt); list.add(rt);
} }
if (list.size() > 0) { if (list.size() > 0) {
rows = RoleTenantService.saveBatch(list); rows = roleTenantService.saveBatch(list);
} }
return rows; return rows;
} }

8
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml

@ -39,15 +39,15 @@
<select id="selectPermsByRoleId" parameterType="String" resultType="String"> <select id="selectPermsByRoleId" parameterType="String" resultType="String">
select m.permission select m.permission
from sys_menu m left join sys_role_menu rm on m.id = rm.menu_id from sys_menu m left join sys_role_menu rm on m.id = rm.menu_id
where rm.role_id = #{roleId} and m.id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.id = rm.menu_id and rm.role_id = #{roleId}) where m.del_flag = 0 and rm.role_id = #{roleId} and m.type = 'F'
order by m.parent_id, m.sort order by m.sort
</select> </select>
<select id="selectMenusByRoleId" parameterType="String" resultType="String"> <select id="selectMenusByRoleId" parameterType="String" resultType="String">
select m.id select m.id
from sys_menu m left join sys_role_menu rm on m.id = rm.menu_id from sys_menu m left join sys_role_menu rm on m.id = rm.menu_id
where rm.role_id = #{roleId} and m.id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.id = rm.menu_id and rm.role_id = #{roleId}) where m.del_flag = 0 and rm.role_id = #{roleId}
order by m.parent_id, m.sort order by m.sort
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save