权限
This commit is contained in:
parent
16bac95dee
commit
a793020c5e
@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.jeecg.qywx.api.user.vo.User;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.constant.CommonConstant;
|
||||
@ -28,6 +29,7 @@ import org.jeecg.modules.aiol.constant.EntityLinkConst;
|
||||
import org.jeecg.modules.aiol.dto.CourseWithTeacherInfo;
|
||||
import org.jeecg.modules.aiol.dto.QuestionAnswerDTO;
|
||||
import org.jeecg.modules.aiol.dto.QuestionExcelDTO;
|
||||
import org.jeecg.modules.aiol.dto.UserPermission;
|
||||
import org.jeecg.modules.aiol.entity.*;
|
||||
import org.jeecg.modules.aiol.mapper.AiolRepoMapper;
|
||||
import org.jeecg.modules.aiol.service.*;
|
||||
@ -296,9 +298,10 @@ public class AiolRepoController extends JeecgController<AiolRepo, IAiolRepoServi
|
||||
|
||||
@GetMapping("userList")
|
||||
@Operation(summary = "获取用户")
|
||||
public Result<List<SysUser>> userList(
|
||||
public Result<List<UserPermission>> userList(
|
||||
@RequestParam(required = false) String username,
|
||||
@RequestParam(required = false) String employeeNumber) {
|
||||
@RequestParam(required = false) String employeeNumber,
|
||||
@RequestParam String repoId) {
|
||||
|
||||
// 创建查询条件
|
||||
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
@ -316,51 +319,92 @@ public class AiolRepoController extends JeecgController<AiolRepo, IAiolRepoServi
|
||||
// 执行查询
|
||||
List<SysUser> userList = sysUserService.list(queryWrapper);
|
||||
|
||||
// 获取有权限的用户列表
|
||||
Result<List<UserPermission>> result = userListByRepoId(repoId);
|
||||
List<UserPermission> userListByRepo = result != null ? result.getResult() : null;
|
||||
|
||||
// 创建ID到UserPermission的映射
|
||||
Map<String, UserPermission> userPermissionMap;
|
||||
if (userListByRepo == null || userListByRepo.isEmpty()) {
|
||||
userPermissionMap = new HashMap<>();
|
||||
} else {
|
||||
userPermissionMap = userListByRepo.stream()
|
||||
.collect(Collectors.toMap(
|
||||
UserPermission::getUserId,
|
||||
user -> user,
|
||||
(existing, replacement) -> existing
|
||||
));
|
||||
}
|
||||
List<UserPermission> userPermissionList = new ArrayList<>();
|
||||
userList.forEach(user -> {
|
||||
// 如果当前用户在用户列表中
|
||||
if (userPermissionMap.containsKey(user.getId())) {
|
||||
userPermissionList.add(userPermissionMap.get(user.getId()));
|
||||
}else {
|
||||
UserPermission userPermission = new UserPermission();
|
||||
userPermission.setUserId(user.getId()); // 用户ID
|
||||
userPermission.setUserName(user.getUsername()); // 用户名
|
||||
userPermission.setRealName(user.getRealname()); // 用户真实姓名
|
||||
userPermission.setUserAvatar(user.getAvatar()); // 用户头像
|
||||
userPermission.setPermission(false);
|
||||
userPermissionList.add(userPermission);
|
||||
}
|
||||
});
|
||||
// 返回结果
|
||||
return Result.ok(userList);
|
||||
return Result.ok(userPermissionList);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("addPermission")
|
||||
@PostMapping("addOrDeletePermission")
|
||||
@Operation(summary = "添加权限")
|
||||
@Transactional
|
||||
public Result<String> addPermission(@RequestParam String userId, @RequestParam String repoId) {
|
||||
public Result<String> addOrDeletePermission(@RequestParam String userId, @RequestParam String repoId,@RequestParam String type) {
|
||||
AiolEntityPermission aiolEntityPermission = new AiolEntityPermission();
|
||||
aiolEntityPermission.setEntityId(repoId);
|
||||
aiolEntityPermission.setEntityType("repo");
|
||||
aiolEntityPermission.setUserId(userId);
|
||||
if(type.equals("add")){
|
||||
aiolEntityPermissionService.saveOrUpdate(aiolEntityPermission);
|
||||
return Result.OK("添加成功");
|
||||
}
|
||||
else if(type.equals("delete")){
|
||||
aiolEntityPermissionService.remove(new QueryWrapper<>(aiolEntityPermission));
|
||||
return Result.OK("删除成功");
|
||||
}
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
//获取有权限的用户
|
||||
@GetMapping("userListByRepoId/{repoId}")
|
||||
@Operation(summary = "获取题库有权限的用户列表")
|
||||
public Result<List<SysUser>> userListByRepoId(@PathVariable String repoId) {
|
||||
public Result<List<UserPermission>> userListByRepoId(@PathVariable String repoId) {
|
||||
// 获取用户有权限的题库ID列表
|
||||
List<AiolEntityPermission> list = aiolEntityPermissionService.list(new QueryWrapper<AiolEntityPermission>()
|
||||
.eq("entity_id", repoId)
|
||||
.eq("entity_type", "repo")
|
||||
);
|
||||
if (list.isEmpty()) {
|
||||
return Result.error("该题库下没有有权限用户或该题库不存在");
|
||||
return Result.ok();
|
||||
}
|
||||
List<String> userIds = list.stream().map(AiolEntityPermission::getUserId).collect(Collectors.toList());
|
||||
List<SysUser> sysUsers = sysUserService.listByIds(userIds);
|
||||
List<UserPermission> userPermissionList = new ArrayList<>();
|
||||
sysUsers.forEach(user -> {
|
||||
if (user != null) {
|
||||
UserPermission userPermission = new UserPermission();
|
||||
userPermission.setUserId(user.getId()); // 用户ID
|
||||
userPermission.setUserName(user.getUsername()); // 用户名
|
||||
userPermission.setRealName(user.getRealname()); // 用户真实姓名
|
||||
userPermission.setUserAvatar(user.getAvatar()); // 用户头像
|
||||
userPermission.setPermission(true);
|
||||
userPermissionList.add(userPermission);
|
||||
}
|
||||
});
|
||||
// 根据ID列表查询用户
|
||||
return Result.ok(sysUserService.listByIds(userIds));
|
||||
return Result.ok(userPermissionList);
|
||||
}
|
||||
|
||||
@DeleteMapping("deletePermission")
|
||||
@Operation(summary = "删除权限")
|
||||
@Transactional
|
||||
public Result<String> deletePermission(@RequestParam String userId, @RequestParam String repoId) {
|
||||
AiolEntityPermission aiolEntityPermission = new AiolEntityPermission();
|
||||
aiolEntityPermission.setEntityId(repoId);
|
||||
aiolEntityPermission.setEntityType("repo");
|
||||
aiolEntityPermission.setUserId(userId);
|
||||
aiolEntityPermissionService.remove(new QueryWrapper<>(aiolEntityPermission));
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,18 @@
|
||||
package org.jeecg.modules.aiol.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserPermission {
|
||||
@Schema(description = "用户ID")
|
||||
private String userId;
|
||||
@Schema(description = "用户名")
|
||||
private String userName;
|
||||
@Schema(description = "用户真实姓名")
|
||||
private String realName;
|
||||
@Schema(description = "用户头像")
|
||||
private String userAvatar;
|
||||
@Schema(description = "用户是否有权限")
|
||||
private boolean permission;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user