From 10dfef66b7e8dc213123233ce35056a4ed5e4cba Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期一, 11 十一月 2024 15:33:32 +0800
Subject: [PATCH] 错题本分页
---
src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java | 100 ++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 81 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
index 91d30cb..481ed76 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -3,22 +3,21 @@
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.jxkg.base.Result;
import com.ycl.jxkg.base.SystemCode;
import com.ycl.jxkg.context.WebContext;
-import com.ycl.jxkg.domain.entity.Meet;
-import com.ycl.jxkg.domain.entity.MeetStudent;
-import com.ycl.jxkg.domain.entity.StudyRecord;
+import com.ycl.jxkg.domain.entity.*;
import com.ycl.jxkg.domain.form.MeetForm;
import com.ycl.jxkg.domain.query.MeetQuery;
+import com.ycl.jxkg.domain.vo.ClassesVO;
+import com.ycl.jxkg.domain.vo.MeetClassesVo;
import com.ycl.jxkg.domain.vo.MeetVO;
+import com.ycl.jxkg.domain.vo.StudentSimpleVO;
import com.ycl.jxkg.enums.MeetStatusEnum;
-import com.ycl.jxkg.mapper.ClassesUserMapper;
-import com.ycl.jxkg.mapper.MeetMapper;
-import com.ycl.jxkg.mapper.MeetStudentMapper;
-import com.ycl.jxkg.mapper.StudyRecordMapper;
+import com.ycl.jxkg.mapper.*;
import com.ycl.jxkg.rabbitmq.msg.MeetStatusMsg;
import com.ycl.jxkg.rabbitmq.product.Producer;
import com.ycl.jxkg.service.MeetService;
@@ -28,6 +27,7 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import java.util.Date;
@@ -53,12 +53,14 @@
private final Producer producer;
private final MeetStudentMapper meetStudentMapper;
private final StudyRecordMapper studyRecordMapper;
+ private final MeetClassesMapper meetClassesMapper;
/**
* 娣诲姞
* @param form
* @return
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public Result add(MeetForm form) {
Meet entity = MeetForm.getEntityByForm(form, null);
entity.setStatus(MeetStatusEnum.Wait.getCode());
@@ -68,6 +70,13 @@
if (baseMapper.insert(entity) > 0) {
this.sendMQ(entity, 0);
}
+ // 鍚戜細璁彮绾т腑闂磋〃涓彃鍏ユ暟鎹�
+ form.getClassesIds().forEach(classId -> {
+ MeetClasses meetClasses = new MeetClasses();
+ meetClasses.setMeetId(entity.getId());
+ meetClasses.setClassesId(classId);
+ meetClassesMapper.insert(meetClasses);
+ });
return Result.ok("娣诲姞鎴愬姛");
}
@@ -82,6 +91,20 @@
// 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
BeanUtils.copyProperties(form, entity);
+
+ // 鍏堝垹闄ゅ啀鏂板
+ new LambdaUpdateChainWrapper<>(meetClassesMapper)
+ .eq(MeetClasses::getMeetId, entity.getId())
+ .remove();
+ // 鍚戜細璁彮绾т腑闂磋〃涓彃鍏ユ暟鎹�
+ form.getClassesIds().forEach(classId -> {
+ MeetClasses meetClasses = new MeetClasses();
+ meetClasses.setMeetId(entity.getId());
+ meetClasses.setClassesId(classId);
+ meetClassesMapper.insert(meetClasses);
+ });
+
+
// 濡傛灉淇敼鎴愬姛鍙戦�乵q娑堟伅
if (baseMapper.updateById(entity) > 0) {
this.sendMQ(entity, entity.getUpdateVersion());
@@ -118,12 +141,28 @@
*/
@Override
public Result page(MeetQuery query) {
- Integer id = webContext.getCurrentUser().getId();
- //鏌ヨ嚜宸卞垱寤虹殑鎴块棿
- query.setTeacherId(id);
+ Integer userId = webContext.getCurrentUser().getId();
+ //鏌ヨ嚜宸辩殑浼氳
+ List<ClassesUser> classes = new LambdaQueryChainWrapper<>(classesUserMapper)
+ .eq(ClassesUser::getUserId, userId)
+ .eq(ClassesUser::getTeacher, Boolean.TRUE)
+ .list();
+ List<Integer> classesIds = classes.stream().map(ClassesUser::getClassesId).collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(classesIds) && 3 != webContext.getCurrentUser().getRole()) {
+ throw new RuntimeException("鎮ㄦ殏鏃舵棤娉曡闂椤甸潰");
+ }
+ query.setClassesIds(classesIds);
IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class);
- baseMapper.getPage(page, query);
-
+ baseMapper.teacherPage(page, query);
+ page.getRecords().forEach(vo -> {
+ if (! CollectionUtils.isEmpty(vo.getClassesIds())) {
+ // 鏌ヤ富璁茶�佸笀
+ List<String> teacherNames = classesUserMapper.getTeachersByClassesIds(vo.getClassesIds());
+ if (! CollectionUtils.isEmpty(teacherNames)) {
+ vo.setTeacherNamesStr(teacherNames.stream().collect(Collectors.joining("銆�")));
+ }
+ }
+ });
return Result.ok().data(page.getRecords()).total(page.getTotal());
}
@@ -135,15 +174,25 @@
@Override
public Result studentPage(MeetQuery query) {
Integer userId = webContext.getCurrentUser().getId();
- //鏌ュ嚭瀛︾敓鎵�鍦ㄧ彮绾�
- List<Integer> classes = classesUserMapper.getClassesByUserId(userId);
- if(CollectionUtils.isEmpty(classes)){
- return Result.ok("鎮ㄦ殏鏈姞鍏ョ彮绾�");
+ if (CollectionUtils.isEmpty(query.getClassesIds())) {
+ //鏌ュ嚭瀛︾敓鎵�鍦ㄧ彮绾�
+ List<Integer> classes = classesUserMapper.getClassesByUserId(userId);
+ if(CollectionUtils.isEmpty(classes)){
+ return Result.fail(500, "鎮ㄦ殏鏈姞鍏ョ彮绾�");
+ }
+ query.setClassesIds(classes);
}
- query.setClassesIds(classes);
IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class);
- baseMapper.getPage(page, query);
-
+ baseMapper.studentPage(page, query);
+ for (MeetVO vo : page.getRecords()) {
+ if (! CollectionUtils.isEmpty(vo.getClassesIds())) {
+ // 鏌ヤ富璁茶�佸笀
+ List<String> teacherNames = classesUserMapper.getTeachersByClassesIds(vo.getClassesIds());
+ if (! CollectionUtils.isEmpty(teacherNames)) {
+ vo.setTeacherNamesStr(teacherNames.stream().collect(Collectors.joining("銆�")));
+ }
+ }
+ }
return Result.ok().data(page.getRecords()).total(page.getTotal());
}
@@ -222,6 +271,19 @@
return Result.ok().data(vos);
}
+ @Override
+ public Result getStudentList(Integer meetId, String keyword) {
+ List<StudentSimpleVO> studentList = baseMapper.getStudentList(meetId, keyword);
+ return Result.ok().data(studentList);
+ }
+
+ @Override
+ public Result getStudentClasses() {
+ Integer userId = webContext.getCurrentUser().getId();
+ List<ClassesVO> classes = classesUserMapper.getClassesByUserId1(userId);
+ return Result.ok().data(classes);
+ }
+
/**
* 鍙戦�乵q娑堟伅
*
--
Gitblit v1.8.0