Compare commits
2 Commits
1b4492e812
...
3299aa7804
| Author | SHA1 | Date |
|---|---|---|
|
|
3299aa7804 | |
|
|
94b735fe5d |
|
|
@ -1,10 +1,30 @@
|
|||
package com.electromagnetic.industry.software.manage.controller;
|
||||
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.service.PermissionService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/data/ed/permission")
|
||||
public class PermissionController {
|
||||
|
||||
@Resource
|
||||
private PermissionService permissionService;
|
||||
|
||||
@ApiOperation(value="查询当前用户在当前目录的功能权限",notes = "")
|
||||
@GetMapping(value="/{fileId}")
|
||||
public ElectromagneticResult<?> getUserPermission(@PathVariable("fileId") String fileId) {
|
||||
String userId = UserThreadLocal.getUserId();
|
||||
return ElectromagneticResultUtil.success(permissionService.getUserPermission(userId, fileId));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.electromagnetic.industry.software.manage.controller;
|
||||
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.*;
|
||||
import com.electromagnetic.industry.software.manage.service.UserService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -68,4 +69,14 @@ public class UserController {
|
|||
public ElectromagneticResult<?> logout(@RequestHeader("Authorization") String token) {
|
||||
return userService.logout(token);
|
||||
}
|
||||
|
||||
@ApiOperation(value="人员绑定", notes = "")
|
||||
@RequestMapping(value = "/bindRoles", method = RequestMethod.POST)
|
||||
public ElectromagneticResult<?> bindRoles(@RequestBody UserRoleRequest userRoleRequest) {
|
||||
if (userService.bindRoles(userRoleRequest)) {
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
} else {
|
||||
return ElectromagneticResultUtil.fail("500","不可绑定空用户");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package com.electromagnetic.industry.software.manage.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.Permission;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface PermissionMapper extends BaseMapper<Permission> {
|
||||
}
|
||||
|
|
@ -70,7 +70,7 @@ public interface UserMapper {
|
|||
/**
|
||||
* 通过用户ID删除用户
|
||||
*
|
||||
* @param userId
|
||||
* @param userDeleteKeyWords
|
||||
* @return
|
||||
*/
|
||||
int deleteUser(UserDeleteKeyWords userDeleteKeyWords);
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.models;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName("ed_permission")
|
||||
public class Permission {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 权限标识
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 权限名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 权限描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
}
|
||||
|
|
@ -8,27 +8,30 @@ import java.time.LocalDateTime;
|
|||
@TableName("ed_role") // 指定表名
|
||||
public class Role {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 角色编码
|
||||
*/
|
||||
@TableField(value = "role_id")
|
||||
private String roleId;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@TableField(value = "role_name")
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 角色描述
|
||||
*/
|
||||
@TableField(value = "role_desc")
|
||||
private String roleDesc;
|
||||
|
||||
/**
|
||||
* 角色状态
|
||||
*/
|
||||
@TableField(value = "role_status")
|
||||
private String roleStatus;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +42,7 @@ public class Role {
|
|||
/**
|
||||
* 创建者姓名
|
||||
*/
|
||||
@TableField(value = "creator_name")
|
||||
private String creatorName;
|
||||
|
||||
/**
|
||||
|
|
@ -55,17 +59,19 @@ public class Role {
|
|||
/**
|
||||
* 编辑者姓名
|
||||
*/
|
||||
@TableField(value = "modifier_name")
|
||||
private String modifierName;
|
||||
|
||||
/**
|
||||
* 编辑时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@TableField(value = "gmt_modified", fill = FieldFill.INSERT_UPDATE)
|
||||
private LocalDateTime gmtModified;
|
||||
|
||||
/**
|
||||
* 是否有效:0-无效 1-有效
|
||||
*/
|
||||
@TableField(value="effect_flag")
|
||||
private Integer effectFlag;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.models;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -10,15 +11,18 @@ public class RolePermission {
|
|||
/**
|
||||
* 角色编码
|
||||
*/
|
||||
@TableField(value="role_id")
|
||||
private String roleId;
|
||||
|
||||
/**
|
||||
* 文件编码
|
||||
*/
|
||||
@TableField(value = "file_id")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 权限编码
|
||||
* 权限标识
|
||||
*/
|
||||
private String permissionId;
|
||||
@TableField(value = "permission_code")
|
||||
private String permissionCode;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.models;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -10,10 +11,12 @@ public class UserRole {
|
|||
/**
|
||||
* 用户编码
|
||||
*/
|
||||
@TableField(value = "user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 角色编码
|
||||
*/
|
||||
@TableField(value="role_id")
|
||||
private String roleId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class UserRoleRequest {
|
||||
|
||||
/**
|
||||
* 用户编号
|
||||
*/
|
||||
String userId;
|
||||
|
||||
/**
|
||||
* 角色编号列表
|
||||
*/
|
||||
List<String> roleIds;
|
||||
}
|
||||
|
|
@ -1,7 +1,22 @@
|
|||
package com.electromagnetic.industry.software.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.Permission;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface PermissionService extends IService<Permission> {
|
||||
public interface PermissionService {
|
||||
|
||||
/**
|
||||
* 查询当前用户在当前目录的功能权限
|
||||
* @param userId
|
||||
* @param fileId
|
||||
* @return
|
||||
*/
|
||||
Map<String,Boolean> getUserPermission(String userId, String fileId);
|
||||
|
||||
/**
|
||||
* 获取当前用户有权限访问的目录id
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getAccessibleTree();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,4 +78,8 @@ public interface UserService {
|
|||
*/
|
||||
ElectromagneticResult<?> logout(String token);
|
||||
|
||||
/**
|
||||
* 人员绑定
|
||||
*/
|
||||
Boolean bindRoles(UserRoleRequest userRoleRequest);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,81 @@
|
|||
package com.electromagnetic.industry.software.manage.service.serviceimpl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.electromagnetic.industry.software.manage.mapper.PermissionMapper;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.Permission;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.electromagnetic.industry.software.common.enums.FilePermission;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.mapper.RolePermissionMapper;
|
||||
import com.electromagnetic.industry.software.manage.mapper.UserRoleMapper;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.RolePermission;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.UserRole;
|
||||
import com.electromagnetic.industry.software.manage.service.PermissionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission> {
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class PermissionServiceImpl implements PermissionService {
|
||||
|
||||
@Resource
|
||||
UserRoleMapper userRoleMapper;
|
||||
@Resource
|
||||
RolePermissionMapper rolePermissionMapper;
|
||||
|
||||
/**
|
||||
* 查询当前用户在当前目录的功能权限
|
||||
* @param userId
|
||||
* @param fileId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String,Boolean> getUserPermission (String userId, String fileId){
|
||||
Map<String,Boolean> result = new HashMap<>();
|
||||
|
||||
QueryWrapper<UserRole> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("role_id").eq("user_id", userId);
|
||||
List<Object> roleIds = userRoleMapper.selectObjs(queryWrapper);
|
||||
|
||||
QueryWrapper<RolePermission> queryWrapper1 = new QueryWrapper<>();
|
||||
queryWrapper1.select("permission_code")
|
||||
.eq("file_id", fileId)
|
||||
.in("role_id", roleIds);
|
||||
List<Object> permissionCodes = rolePermissionMapper.selectObjs(queryWrapper1);
|
||||
|
||||
List<String> allCodes = FilePermission.getAllCodes();
|
||||
for (String code : allCodes) {
|
||||
if (permissionCodes.contains(code)) {
|
||||
result.put(code, true);
|
||||
} else {
|
||||
result.put(code, false);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户有权限访问的目录id
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<String> getAccessibleTree() {
|
||||
String userId = UserThreadLocal.getUserId();
|
||||
QueryWrapper<UserRole> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("role_id").eq("user_id", userId);
|
||||
List<Object> roleIds = userRoleMapper.selectObjs(queryWrapper);
|
||||
|
||||
QueryWrapper<RolePermission> queryWrapper1 = new QueryWrapper<>();
|
||||
queryWrapper1.select("file_id")
|
||||
.in("role_id",roleIds)
|
||||
.eq("permission_code",FilePermission.VIEW);
|
||||
List<Object> fileIds = rolePermissionMapper.selectObjs(queryWrapper1);
|
||||
|
||||
return fileIds.stream()
|
||||
.map(Object::toString) // 将 Object 转为 String
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl;
|
|||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.SystemClock;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.electromagnetic.industry.software.common.cons.UserConstants;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.ElectromagneticErrorEnum;
|
||||
|
|
@ -12,8 +13,10 @@ import com.electromagnetic.industry.software.common.util.*;
|
|||
import com.electromagnetic.industry.software.manage.mapper.TokenMapper;
|
||||
import com.electromagnetic.industry.software.manage.mapper.UserMapper;
|
||||
import com.electromagnetic.industry.software.manage.mapper.UserMappers;
|
||||
import com.electromagnetic.industry.software.manage.mapper.UserRoleMapper;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.Token;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.User;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.UserRole;
|
||||
import com.electromagnetic.industry.software.manage.pojo.other.PublishParam;
|
||||
import com.electromagnetic.industry.software.manage.pojo.other.SearchKeyWords;
|
||||
import com.electromagnetic.industry.software.manage.pojo.other.SingleUserResponse;
|
||||
|
|
@ -31,6 +34,7 @@ import javax.annotation.Resource;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static cn.hutool.core.date.DateTime.now;
|
||||
|
||||
|
|
@ -41,6 +45,8 @@ public class UserServiceImpl implements UserService {
|
|||
private UserMapper userMapper;
|
||||
@Resource
|
||||
private TokenMapper tokenMapper;
|
||||
@Resource
|
||||
private UserRoleMapper userRoleMapper;
|
||||
|
||||
/**
|
||||
* 用户登录
|
||||
|
|
@ -236,4 +242,30 @@ public class UserServiceImpl implements UserService {
|
|||
token = token.substring(7);
|
||||
return ElectromagneticResultUtil.success(tokenMapper.deleteToken(token));
|
||||
}
|
||||
|
||||
/**
|
||||
* 人员绑定
|
||||
*/
|
||||
@Override
|
||||
public Boolean bindRoles(UserRoleRequest userRolesRequest) {
|
||||
String userId = userRolesRequest.getUserId();
|
||||
List<String> roleIds = userRolesRequest.getRoleIds();
|
||||
if (userId == null ) {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
// 删除当前用户原绑定角色
|
||||
QueryWrapper<UserRole> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("user_id", userId);
|
||||
userRoleMapper.delete(queryWrapper);
|
||||
|
||||
if (roleIds != null) {
|
||||
for (String roleId : roleIds) {
|
||||
UserRole userRole = new UserRole();
|
||||
userRole.setUserId(userId);
|
||||
userRole.setRoleId(roleId);
|
||||
userRoleMapper.insert(userRole);
|
||||
}
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -227,4 +227,5 @@
|
|||
</set>
|
||||
where user_id = #{userId}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
package com.electromagnetic.industry.software.common.enums;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public enum FilePermission {
|
||||
|
||||
// 权限枚举值
|
||||
VIEW("view", "查看文件"),
|
||||
MOVE("move", "移动/复制文件"),
|
||||
EDIT("edit", "编辑文件"),
|
||||
DELETE("delete", "删除文件"),
|
||||
UPLOAD("upload", "上传文件"),
|
||||
DOWNLOAD("download", "下载文件"),
|
||||
IMPORT("import", "导入文件"),
|
||||
EXPORT("export", "导出文件");
|
||||
|
||||
// 枚举属性
|
||||
private final String code; // 权限代码
|
||||
private final String description; // 权限描述
|
||||
|
||||
// 构造方法
|
||||
FilePermission(String code, String description) {
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
// 获取权限代码
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
// 获取权限描述
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
// 根据 code 查找对应的枚举
|
||||
public static FilePermission fromCode(String code) {
|
||||
for (FilePermission permission : FilePermission.values()) {
|
||||
if (permission.getCode().equals(code)) {
|
||||
return permission;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException("未找到对应的权限: " + code);
|
||||
}
|
||||
|
||||
// 获取所有的code
|
||||
public static List<String> getAllCodes() {
|
||||
List<String> codes = new ArrayList<>();
|
||||
for (FilePermission permission : FilePermission.values()) {
|
||||
codes.add(permission.getCode()); // 获取每个枚举实例的 code
|
||||
}
|
||||
return codes;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue