瀏覽代碼

3.4.0 update

xiaofei 11 月之前
父節點
當前提交
4f3fd45280

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkUserClassService.java

@@ -36,4 +36,6 @@ public interface MarkUserClassService extends IService<MarkUserClass> {
     IPage<MarkGroupClassProgressDto> pageClassByExamIdAndPaperNumber(Page<MarkGroupClassProgressDto> page, Long examId, String paperNumber, String className);
 
     List<MarkUserClass> listByExamIdAndPaperNumberAndUserId(Long examId, String paperNumber, Long userId);
+
+    void autoBindTeacherIdAndTeachClassName(Long examId, String paperNumber);
 }

+ 8 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkGroupServiceImpl.java

@@ -153,9 +153,14 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
                 .eq(MarkPaper::getPaperNumber, paperNumber);
         markPaperService.update(updateWrapper);
 
-        // 禁用,删除分班数据
-        if (openMarkClass != null && !openMarkClass) {
-            markUserClassService.deleteByExamIdAndPaperNumber(examId, paperNumber);
+        if (openMarkClass != null) {
+            // 开启分班阅,根据任课老师自动绑定班级
+            if (openMarkClass) {
+                markUserClassService.autoBindTeacherIdAndTeachClassName(examId, paperNumber);
+            } else {
+                // 禁用,删除分班数据
+                markUserClassService.deleteByExamIdAndPaperNumber(examId, paperNumber);
+            }
         }
     }
 

+ 29 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserClassServiceImpl.java

@@ -11,15 +11,19 @@ import com.qmth.teachcloud.common.bean.params.mark.group.MarkClassUserParams;
 import com.qmth.teachcloud.common.bean.params.mark.group.MarkGroupClassUserParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.mark.bean.student.MarkStudentQuery;
+import com.qmth.teachcloud.mark.dto.mark.MarkStudentVo;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkGroupClassProgressDto;
 import com.qmth.teachcloud.mark.dto.mark.setting.MarkUserClassDetailDto;
 import com.qmth.teachcloud.mark.dto.mark.setting.MarkUserClassDto;
 import com.qmth.teachcloud.mark.entity.MarkGroup;
+import com.qmth.teachcloud.mark.entity.MarkStudent;
 import com.qmth.teachcloud.mark.entity.MarkUserClass;
 import com.qmth.teachcloud.mark.entity.MarkUserGroup;
 import com.qmth.teachcloud.mark.mapper.MarkUserClassMapper;
 import com.qmth.teachcloud.mark.service.*;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -162,4 +166,29 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
                 .eq(MarkUserClass::getUserId, userId);
         return this.list(queryWrapper);
     }
+
+    @Override
+    public void autoBindTeacherIdAndTeachClassName(Long examId, String paperNumber) {
+        MarkStudentQuery markStudentQuery = new MarkStudentQuery();
+        markStudentQuery.setExamId(examId);
+        markStudentQuery.setPaperNumber(paperNumber);
+        List<MarkStudentVo> markStudentList = markStudentService.listMarkStudentVo(markStudentQuery);
+        Map<String, Long> map = markStudentList.stream().filter(m -> m.getTeacherId() != null).collect(Collectors.toMap(m -> m.getTeachClassName(), n -> n.getTeacherId(), (m, n) -> m));
+        if (MapUtils.isNotEmpty(map)) {
+
+            List<MarkUserClass> markUserClassList = new ArrayList<>();
+            for (Map.Entry<String, Long> entry : map.entrySet()) {
+                if (CollectionUtils.size(markUserGroupService.listByExamIdAndPaperNumberAndUserId(examId, paperNumber, entry.getValue())) > 0) {
+                    MarkUserClass markUserClass = new MarkUserClass();
+                    markUserClass.setId(SystemConstant.getDbUuid());
+                    markUserClass.setExamId(examId);
+                    markUserClass.setPaperNumber(paperNumber);
+                    markUserClass.setClassName(entry.getKey());
+                    markUserClass.setUserId(entry.getValue());
+                    markUserClassList.add(markUserClass);
+                }
+            }
+            this.saveBatch(markUserClassList);
+        }
+    }
 }