Merge branch 'dev2' of http://110.42.96.64:19890/GoCo/OL-LearnPlatform-Backend into dev2
merge
This commit is contained in:
commit
7fca0228fd
@ -80,7 +80,7 @@ public class AiolQuestionController extends JeecgController<AiolQuestion, IAiolQ
|
||||
IPage<AiolQuestion> pageList = aiolQuestionService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
@ -93,16 +93,38 @@ public class AiolQuestionController extends JeecgController<AiolQuestion, IAiolQ
|
||||
@PostMapping(value = "/add")
|
||||
@Transactional
|
||||
public Result<String> add(@RequestBody AiolQuestion aiolQuestion,@RequestParam String repoId) {
|
||||
aiolQuestion.setStatus(1);
|
||||
aiolQuestionService.save(aiolQuestion);
|
||||
//题库题目添加
|
||||
if(repoId!=null&& !repoId.isEmpty()){
|
||||
AiolQuestionRepo aiolQuestionRepo = new AiolQuestionRepo();
|
||||
aiolQuestionRepo.setRepoId(repoId);
|
||||
aiolQuestionRepo.setQuestionId(aiolQuestion.getId());
|
||||
|
||||
aiolQuestionRepoController.add(aiolQuestionRepo);
|
||||
}
|
||||
return Result.OK(aiolQuestion.getId());
|
||||
}
|
||||
|
||||
@AutoLog(value = "题目-是否入库")
|
||||
@Operation(summary="题目-是否入库")
|
||||
@PostMapping(value = "/whetherPutStorage")
|
||||
public Result<String> whetherPutStorage(@RequestBody List<String> ids){
|
||||
try {
|
||||
// 参数校验
|
||||
if (ids == null || ids.isEmpty()) {
|
||||
return Result.error("参数不能为空");
|
||||
}
|
||||
|
||||
// 调用服务层更新状态
|
||||
aiolQuestionService.updateStatusByIds(ids);
|
||||
|
||||
return Result.OK("操作成功");
|
||||
} catch (Exception e) {
|
||||
log.error("更新题目状态失败", e);
|
||||
return Result.error("操作失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
@ -118,7 +140,7 @@ public class AiolQuestionController extends JeecgController<AiolQuestion, IAiolQ
|
||||
aiolQuestionService.updateById(aiolQuestion);
|
||||
return Result.OK("编辑成功!");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
@ -133,7 +155,7 @@ public class AiolQuestionController extends JeecgController<AiolQuestion, IAiolQ
|
||||
aiolQuestionService.removeById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
@ -148,7 +170,7 @@ public class AiolQuestionController extends JeecgController<AiolQuestion, IAiolQ
|
||||
this.aiolQuestionService.removeByIds(Arrays.asList(ids.split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
|
@ -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);
|
||||
aiolEntityPermissionService.saveOrUpdate(aiolEntityPermission);
|
||||
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;
|
||||
}
|
@ -3,6 +3,8 @@ package org.jeecg.modules.aiol.service;
|
||||
import org.jeecg.modules.aiol.entity.AiolQuestion;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 题目
|
||||
* @Author: jeecg-boot
|
||||
@ -11,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface IAiolQuestionService extends IService<AiolQuestion> {
|
||||
|
||||
void updateStatusByIds(List<String> ids);
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package org.jeecg.modules.aiol.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import org.jeecg.modules.aiol.entity.AiolQuestion;
|
||||
import org.jeecg.modules.aiol.mapper.AiolQuestionMapper;
|
||||
import org.jeecg.modules.aiol.service.IAiolQuestionService;
|
||||
@ -7,6 +9,8 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 题目
|
||||
* @Author: jeecg-boot
|
||||
@ -16,4 +20,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@Service
|
||||
public class AiolQuestionServiceImpl extends ServiceImpl<AiolQuestionMapper, AiolQuestion> implements IAiolQuestionService {
|
||||
|
||||
@Override
|
||||
public void updateStatusByIds(List<String> ids) {
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
throw new IllegalArgumentException("题目ID列表不能为空");
|
||||
}
|
||||
|
||||
// 批量更新
|
||||
LambdaUpdateWrapper<AiolQuestion> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.in(AiolQuestion::getId, ids)
|
||||
.setSql("status = CASE WHEN status IS NULL OR status = 1 THEN 0 ELSE 1 END");
|
||||
this.update(updateWrapper);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user