fix: 数据权限

This commit is contained in:
2024-05-06 14:38:56 +08:00
parent daf7efad70
commit 75369312ea
6 changed files with 59 additions and 32 deletions

View File

@@ -1,5 +1,6 @@
package org.nl.system.service.permission.dao;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
@@ -39,6 +40,12 @@ public class SysDataScope implements Serializable {
* 用户权限列表
*/
private String user_id;
@TableField(exist = false)
private String deptName;
@TableField(exist = false)
private String person_name;
@TableField(exist = false)
private String permissionName;
}

View File

@@ -106,16 +106,27 @@ public class SysDataPermissionServiceImpl extends ServiceImpl<SysDataPermissionM
public List<UserDataPermissionDto> getDataShow(String userId) {
List<UserDataPermissionDto> userDataPermissionDtoList = userService.getUserDataPermissionByUserId(userId);
userDataPermissionDtoList.forEach(userDataPermissionDto -> {
SysDataPermission sysDataPermission = dataPermissionMapper.selectOne(new LambdaQueryWrapper<SysDataPermission>().eq(SysDataPermission::getPermission_id, userDataPermissionDto.getPermission_id()));
SysDataPermission sysDataPermission = dataPermissionMapper.selectOne(
new LambdaQueryWrapper<SysDataPermission>()
.eq(SysDataPermission::getPermission_id, userDataPermissionDto.getPermission_id()));
if (sysDataPermission.getCode().equals(DataScopeEnum.USER.getCode())) { // 用户权限
List<String> userIds = dataPermissionMapper.findDataScopeUserIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermission_scope_type());
if (ObjectUtil.isNotEmpty(userIds)) userDataPermissionDto.setUsers(userIds);
List<String> userIds = dataPermissionMapper.findDataScopeUserIdBySelfUserIdAndScopeType(
userId, userDataPermissionDto.getPermission_scope_type());
if (ObjectUtil.isNotEmpty(userIds)) {
userDataPermissionDto.setUsers(userIds);
}
} else if (sysDataPermission.getCode().equals(DataScopeEnum.DEPT.getCode())) { // 部门权限
List<String> deptIds = dataPermissionMapper.findDataScopeDeptIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermission_scope_type());
if (ObjectUtil.isNotEmpty(deptIds)) userDataPermissionDto.setDepts(deptIds);
List<String> deptIds = dataPermissionMapper.findDataScopeDeptIdBySelfUserIdAndScopeType(
userId, userDataPermissionDto.getPermission_scope_type());
if (ObjectUtil.isNotEmpty(deptIds)) {
userDataPermissionDto.setDepts(deptIds);
}
} else if (sysDataPermission.getCode().equals(DataScopeEnum.SELF.getCode())) { // 自身
List<String> userIds = dataPermissionMapper.findDataScopeUserIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermission_scope_type());
if (ObjectUtil.isNotEmpty(userIds)) userDataPermissionDto.setUsers(userIds);
List<String> userIds = dataPermissionMapper.findDataScopeUserIdBySelfUserIdAndScopeType(
userId, userDataPermissionDto.getPermission_scope_type());
if (ObjectUtil.isNotEmpty(userIds)) {
userDataPermissionDto.setUsers(userIds);
}
}
// 其他不做处理
});
@@ -127,7 +138,9 @@ public class SysDataPermissionServiceImpl extends ServiceImpl<SysDataPermissionM
public void savePermission(JSONObject datas) {
String user_id = datas.getString("user_id");
JSONArray data = datas.getJSONArray("datas");
if (ObjectUtil.isEmpty(user_id)) throw new BadRequestException(LangProcess.msg("error_isNull",user_id));
if (ObjectUtil.isEmpty(user_id)) {
throw new BadRequestException(LangProcess.msg("error_isNull",user_id));
}
// 删除用户绑定的数据
userService.deleteDataPermissionById(user_id);
dataPermissionMapper.deleteScopeBySelfUserId(user_id);
@@ -145,8 +158,7 @@ public class SysDataPermissionServiceImpl extends ServiceImpl<SysDataPermissionM
// 如果是用户直接将用户的id绑定进去
if (ObjectUtil.isNotEmpty(users)) {
for (int j = 0; j < users.size(); j++) {
JSONObject user = users.getJSONObject(j);
String userId = user.getString("user_id");
String userId = users.getString(j);
SysDataScope dataScope = new SysDataScope();
dataScope.setUser_id(userId);
dataScope.setSelf_user_id(user_id);