大数据与最优化研究所 пре 7 месеци
родитељ
комит
9b4cafbe74

+ 36 - 32
src/main/java/com/xjrsoft/module/teacher/service/impl/ClassHomeworkServiceImpl.java

@@ -96,7 +96,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
 
     @Override
     public IPage<ClassHomeworkPageVo> pageClassHomework(ClassHomeworkPageDto dto) {
-        if(com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty(dto.getEndDate())){
+        if (com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty(dto.getEndDate())) {
             dto.setEndDate(dto.getEndDate().plusDays(1));
         }
 
@@ -128,7 +128,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         queryWrapper
                 .disableSubLogicDel()
                 .select(ClassHomework::getId)
-                .select(ClassHomework.class,x -> VoToColumnUtil.fieldsToColumns(ClassHomeworkPageVo.class).contains(x.getProperty()))
+                .select(ClassHomework.class, x -> VoToColumnUtil.fieldsToColumns(ClassHomeworkPageVo.class).contains(x.getProperty()))
                 .select("(select\n" +
                         "            group_concat(b.name)\n" +
                         "        from class_homework_class a\n" +
@@ -143,7 +143,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
                 .leftJoin(XjrUser.class, XjrUser::getId, ClassHomework::getTeacherId,
                         wrapper -> wrapper
                                 .selectAs(XjrUser::getName, ClassHomeworkPageVo::getTeacherIdCn)
-                        )
+                )
 //                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, ClassHomework::getBaseCourseSubjectId,
 //                        wrapper -> wrapper
 //                                .selectAs(BaseCourseSubject::getName, ClassHomeworkPageVo::getBaseCourseSubjectIdCn)
@@ -153,12 +153,12 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
                 .le(ObjectUtils.isNotEmpty(dto.getEndDate()), ClassHomework::getCreateDate, dto.getEndDate())
                 .orderByDesc(ClassHomework::getCreateDate)
         ;
-        if(roleType == 2){
+        if (roleType == 2) {
             queryWrapper
                     .eq(ClassHomework::getTeacherId, userId);
         }
 
-        if(roleType == 3){
+        if (roleType == 3) {
             queryWrapper
                     .innerJoin(ClassHomeworkClass.class, ClassHomeworkClass::getClassHomeworkId, ClassHomework::getId)
                     .in(CollectionUtils.isNotEmpty(classIds), ClassHomeworkClass::getClassId, classIds);
@@ -172,19 +172,19 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
                 .distinct()
                 .selectAs(CourseTable::getCourseId, CourseTable::getCourseId)
                 .selectAs(CourseTable::getCourseName, CourseTable::getCourseName)
-                ;
+        ;
 
         List<CourseTable> courseTables = courseTableMapper.selectJoinList(CourseTable.class, courseTableMPJLambdaWrapper);
         Map<Long, String> courseTableMap = courseTables.stream()
                 .collect(Collectors.toMap(CourseTable::getCourseId, CourseTable::getCourseName, (n1, n2) -> n1));
 
-        for (ClassHomeworkPageVo vo : page.getRecords()){
-            if(ObjectUtils.isNotEmpty(vo.getBaseCourseSubjectId()) && MapUtils.isNotEmpty(courseTableMap)){
+        for (ClassHomeworkPageVo vo : page.getRecords()) {
+            if (ObjectUtils.isNotEmpty(vo.getBaseCourseSubjectId()) && MapUtils.isNotEmpty(courseTableMap)) {
                 String baseCourseSubjectIdCn = courseTableMap.get(vo.getBaseCourseSubjectId());
                 vo.setBaseCourseSubjectIdCn(baseCourseSubjectIdCn);
             }
 
-            if(ObjectUtils.isNotEmpty(vo.getFolderId())){
+            if (ObjectUtils.isNotEmpty(vo.getFolderId())) {
                 List<File> files = fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, vo.getFolderId()));
                 vo.setFiles(files);
             }
@@ -199,7 +199,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         queryWrapper
                 .disableSubLogicDel()
                 .select(ClassHomework::getId)
-                .select(ClassHomework.class,x -> VoToColumnUtil.fieldsToColumns(ClassHomeworkVo.class).contains(x.getProperty()))
+                .select(ClassHomework.class, x -> VoToColumnUtil.fieldsToColumns(ClassHomeworkVo.class).contains(x.getProperty()))
                 .select("(select\n" +
                         "            group_concat(b.name)\n" +
                         "        from class_homework_class a\n" +
@@ -240,12 +240,12 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         Map<Long, String> courseTableMap = courseTables.stream()
                 .collect(Collectors.toMap(CourseTable::getCourseId, CourseTable::getCourseName, (n1, n2) -> n1));
 
-        if(ObjectUtils.isNotEmpty(vo.getBaseCourseSubjectId()) && MapUtils.isNotEmpty(courseTableMap)){
+        if (ObjectUtils.isNotEmpty(vo.getBaseCourseSubjectId()) && MapUtils.isNotEmpty(courseTableMap)) {
             String baseCourseSubjectIdCn = courseTableMap.get(vo.getBaseCourseSubjectId());
             vo.setBaseCourseSubjectIdCn(baseCourseSubjectIdCn);
         }
 
-        if(ObjectUtils.isNotEmpty(vo.getFolderId())){
+        if (ObjectUtils.isNotEmpty(vo.getFolderId())) {
             List<File> files = fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, vo.getFolderId()));
             vo.setFiles(files);
         }
@@ -266,7 +266,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         classHomework.setCreateDate(nowLocalDateTime);
 
         this.save(classHomework);
-        for (Long classId : dto.getClassIds()){
+        for (Long classId : dto.getClassIds()) {
             ClassHomeworkClass classHomeworkClass = new ClassHomeworkClass();
             classHomeworkClass.setClassHomeworkId(classHomework.getId());
             classHomeworkClass.setClassId(classId);
@@ -285,6 +285,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
                 .select(User::getId)
                 .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
                 .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, User::getId)
+                .isNotNull(User::getOpenId)
                 .in(BaseStudentSchoolRoll::getClassId, dto.getClassIds());
         List<User> stuList = userMapper.selectJoinList(User.class, stuMPJLambdaWrapper);
 
@@ -293,12 +294,15 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         parentMPJLambdaWrapper
                 .distinct()
                 .disableSubLogicDel()
-                .select(User::getId).select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
-                .leftJoin(UserStudent.class, UserStudent::getUserId, User::getId)
-                .leftJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormKeyValue, UserStudent::getId)
-                .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, User::getId)
+                .select(User::getId)
+                .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
+                .innerJoin(UserStudent.class, UserStudent::getUserId, User::getId)
+                .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, UserStudent::getStudentId)
+                .innerJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormKeyValue, UserStudent::getId)
+                .in(BaseStudentSchoolRoll::getClassId, dto.getClassIds())
                 .eq(WorkflowFormRelation::getCurrentState, HistoricProcessInstance.STATE_COMPLETED)
-                .in(BaseStudentSchoolRoll::getClassId, dto.getClassIds());
+                .isNotNull(User::getOpenId)
+        ;
         List<User> parentList = userMapper.selectJoinList(User.class, parentMPJLambdaWrapper);
 
         // 合并两个列表,并根据 User 的 id 去重
@@ -313,12 +317,12 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         // 发布作业的教师
         User releaseUser = userMapper.selectById(loginId);
 
-        try {
-            for (User user : combinedList) {
+        for (User user : combinedList) {
+            try {
                 WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
                 weChatSendMessageDto.setUserId(user.getOpenId());
                 weChatSendMessageDto.setTemplateId("qmpXORPM1Cocqn503Qa4On6BJhR92UZ00eod2-6IcGo");
-                weChatSendMessageDto.setUrl(StrUtil.format("{}/pages/homework/info?id=={}", commonPropertiesConfig.getDomainApp(), classHomework.getId()));
+                weChatSendMessageDto.setUrl(StrUtil.format("{}/pages/homework/info?id={}", commonPropertiesConfig.getDomainApp(), classHomework.getId()));
                 weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextId() + "");
                 JSONObject paramJson = new JSONObject();
 
@@ -336,9 +340,9 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
 
                 weChatSendMessageDto.setContent(paramJson);
                 weChatService.sendTemplateMessage(weChatSendMessageDto);
+            } catch (Exception e) {
+                log.error("发送消息错误,Error processing event data", e);
             }
-        } catch (Exception e) {
-            log.error("发送消息错误,Error processing event data", e);
         }
         return true;
     }
@@ -362,7 +366,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
                 .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
         ;
 
-        if(ObjectUtils.isEmpty(dto.getClassId())){
+        if (ObjectUtils.isEmpty(dto.getClassId())) {
             LambdaQueryWrapper<ClassHomeworkClass> classLambdaQueryWrapper = new LambdaQueryWrapper<>();
             classLambdaQueryWrapper
                     .eq(ClassHomeworkClass::getClassHomeworkId, dto.getClassHomeworkId())
@@ -370,7 +374,7 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
             ;
 
             List<ClassHomeworkClass> classHomeworkClassList = classHomeworkClassMapper.selectList(classLambdaQueryWrapper);
-            if(CollectionUtils.isEmpty(classHomeworkClassList)){
+            if (CollectionUtils.isEmpty(classHomeworkClassList)) {
                 return new ArrayList<>();
             }
 
@@ -381,8 +385,8 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
                     .collect(Collectors.toList()); // 收集为 List
 
             xjrUserMPJLambdaWrapper
-                .in(BaseStudentSchoolRoll::getClassId, uniqueClassIds);
-        }else {
+                    .in(BaseStudentSchoolRoll::getClassId, uniqueClassIds);
+        } else {
             xjrUserMPJLambdaWrapper
                     .eq(BaseStudentSchoolRoll::getClassId, dto.getClassId());
         }
@@ -411,13 +415,13 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         }
 
         List<ClassHomeworkReadListVo> result = new ArrayList<>();
-        if(ObjectUtils.isNotEmpty(dto.getIsRead())){
+        if (ObjectUtils.isNotEmpty(dto.getIsRead())) {
             for (ClassHomeworkReadListVo vo : list) {
-                if(Objects.equals(vo.getIsRead(), dto.getIsRead())){
+                if (Objects.equals(vo.getIsRead(), dto.getIsRead())) {
                     result.add(vo);
                 }
             }
-        }else {
+        } else {
             return list;
         }
 
@@ -431,13 +435,13 @@ public class ClassHomeworkServiceImpl extends MPJBaseServiceImpl<ClassHomeworkMa
         // 查询用户是否已经阅读当前作业
         LambdaQueryWrapper<ClassHomeworkRead> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper
-                .select(ClassHomeworkRead.class,x -> VoToColumnUtil.fieldsToColumns(ClassHomeworkRead.class).contains(x.getProperty()))
+                .select(ClassHomeworkRead.class, x -> VoToColumnUtil.fieldsToColumns(ClassHomeworkRead.class).contains(x.getProperty()))
                 .eq(ClassHomeworkRead::getClassHomeworkId, dto.getClassHomeworkId())
                 .eq(ClassHomeworkRead::getUserId, loginId)
         ;
         ClassHomeworkRead classHomeworkRead = classHomeworkReadMapper.selectOne(queryWrapper);
 
-        if(ObjectUtils.isEmpty(classHomeworkRead)){
+        if (ObjectUtils.isEmpty(classHomeworkRead)) {
             ClassHomeworkRead insert = BeanUtil.toBean(dto, ClassHomeworkRead.class);
             insert.setUserId(loginId);
 

+ 14 - 9
src/main/java/com/xjrsoft/module/teacher/service/impl/ClassInternshipDynamicServiceImpl.java

@@ -305,6 +305,7 @@ public class ClassInternshipDynamicServiceImpl extends MPJBaseServiceImpl<ClassI
                 .select(User::getId)
                 .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
                 .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, User::getId)
+                .isNotNull(User::getOpenId)
                 .in(BaseStudentSchoolRoll::getClassId, dto.getClassIds());
         List<User> stuList = userMapper.selectJoinList(User.class, stuMPJLambdaWrapper);
 
@@ -313,12 +314,15 @@ public class ClassInternshipDynamicServiceImpl extends MPJBaseServiceImpl<ClassI
         parentMPJLambdaWrapper
                 .distinct()
                 .disableSubLogicDel()
-                .select(User::getId).select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
-                .leftJoin(UserStudent.class, UserStudent::getUserId, User::getId)
-                .leftJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormKeyValue, UserStudent::getId)
-                .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, User::getId)
+                .select(User::getId)
+                .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
+                .innerJoin(UserStudent.class, UserStudent::getUserId, User::getId)
+                .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, UserStudent::getStudentId)
+                .innerJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormKeyValue, UserStudent::getId)
+                .in(BaseStudentSchoolRoll::getClassId, dto.getClassIds())
                 .eq(WorkflowFormRelation::getCurrentState, HistoricProcessInstance.STATE_COMPLETED)
-                .in(BaseStudentSchoolRoll::getClassId, dto.getClassIds());
+                .isNotNull(User::getOpenId)
+        ;
         List<User> parentList = userMapper.selectJoinList(User.class, parentMPJLambdaWrapper);
 
         // 根据 roleType 添加对应的角色对象到集合中
@@ -335,8 +339,9 @@ public class ClassInternshipDynamicServiceImpl extends MPJBaseServiceImpl<ClassI
 
         // 发布作业的教师
         User releaseUser = userMapper.selectById(loginId);
-        try {
-            for (User user : combinedUserSet) {
+
+        for (User user : combinedUserSet) {
+            try {
                 WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
                 weChatSendMessageDto.setUserId(user.getOpenId());
                 weChatSendMessageDto.setTemplateId("qmpXORPM1Cocqn503Qa4On6BJhR92UZ00eod2-6IcGo");
@@ -358,9 +363,9 @@ public class ClassInternshipDynamicServiceImpl extends MPJBaseServiceImpl<ClassI
 
                 weChatSendMessageDto.setContent(paramJson);
                 weChatService.sendTemplateMessage(weChatSendMessageDto);
+            } catch (Exception e) {
+                log.error("发送消息错误,Error processing event data", e);
             }
-        } catch (Exception e) {
-            log.error("发送消息错误,Error processing event data", e);
         }
         return true;
     }