Selaa lähdekoodia

课表发布后通知消息优化

dzx 6 kuukautta sitten
vanhempi
commit
5e2806afb8

+ 25 - 24
src/main/java/com/xjrsoft/module/job/JianyuekbScheduleTask.java

@@ -280,29 +280,30 @@ public class JianyuekbScheduleTask {
     }
 
     void sendMsg(Set<String> techerIds, Map<String, Object> receiveMsg) {
-        try {
-            JianyueData jianyueData = jianyueDataService.getOne(
-                    new QueryWrapper<JianyueData>().lambda()
-                            .eq(JianyueData::getJianyueId, receiveMsg.get("edu_year_serial_no").toString())
-            );
-            String[] sourceId = jianyueData.getSourceId().split("_");
-            Department department = departmentService.getById(sourceId[0]);
-
-            BaseGrade grade = gradeService.getById(sourceId[1]);
-            //通知对应教师
-            List<User> userList = userService.listByIds(new ArrayList<>(techerIds));
-            List<User> userList1 = userService.list(
-                    new MPJLambdaWrapper<User>()
-                            .distinct()
-                            .select(User::getId)
-                            .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
-                            .innerJoin(UserRoleRelation.class, UserRoleRelation::getUserId, User::getId)
-                            .innerJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
-                            .eq(Role::getCode, "KEBIAOGX")
-            );
-            userList.addAll(userList1);
 
-            for (User user : userList) {
+        JianyueData jianyueData = jianyueDataService.getOne(
+                new QueryWrapper<JianyueData>().lambda()
+                        .eq(JianyueData::getJianyueId, receiveMsg.get("edu_year_serial_no").toString())
+        );
+        String[] sourceId = jianyueData.getSourceId().split("_");
+        Department department = departmentService.getById(sourceId[0]);
+
+        BaseGrade grade = gradeService.getById(sourceId[1]);
+        //通知对应教师
+        List<User> userList = userService.listByIds(new ArrayList<>(techerIds));
+        List<User> userList1 = userService.list(
+                new MPJLambdaWrapper<User>()
+                        .distinct()
+                        .select(User::getId)
+                        .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
+                        .innerJoin(UserRoleRelation.class, UserRoleRelation::getUserId, User::getId)
+                        .innerJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
+                        .eq(Role::getCode, "KEBIAOGX")
+        );
+        userList.addAll(userList1);
+
+        for (User user : userList) {
+            try {
                 WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
                 weChatSendMessageDto.setTemplateId(noticeTeacherTemplate);
                 JSONObject paramJson = new JSONObject();
@@ -331,9 +332,9 @@ public class JianyuekbScheduleTask {
                     weChatSendMessageDto.setUserId(openId);
                     weChatService.sendTemplateMessage(weChatSendMessageDto);
                 }
+            } catch (Exception e) {
+                Log.error(e.getMessage(), e);
             }
-        } catch (Exception e) {
-            Log.error(e.getMessage(), e);
         }
     }
 

+ 8 - 5
src/test/java/com/xjrsoft/module/job/JianyuekbScheduleTaskTest.java

@@ -209,9 +209,9 @@ class JianyuekbScheduleTaskTest {
                 LocalDate startDateObj = LocalDate.parse(startDateStr);
                 String endDateStr = receiveMsg.get("end_date").toString();
                 LocalDate endDateObj = LocalDate.parse(endDateStr);
-                if(today.isAfter(startDateObj)){
-                    startDateStr = today.format(formatter);
-                }
+//                if(today.isAfter(startDateObj)){
+//                    startDateStr = today.format(formatter);
+//                }
 
                 //删除课表信息;
                 List<Long> classIdList = gradeClassMaps.get(eduYearSerialNo);
@@ -282,7 +282,7 @@ class JianyuekbScheduleTaskTest {
 
         Set<String> techerIds = dataUtil.insertCourseTableEntiy(scheduleInfo, classroomMap, courseMap, semesterMap,
                 teacherMap, classMap, String.valueOf(courseReceiveMsgId), startDate, endDate);
-        //sendMsg(techerIds, courseReceiveMsgId);
+        sendMsg(techerIds, courseReceiveMsgId);
         dataUtil.insertClassTime(scheduleInfo);
     }
 
@@ -299,6 +299,9 @@ class JianyuekbScheduleTaskTest {
             //通知对应教师
             List<User> userList = userService.listByIds(new ArrayList<>(techerIds));
             for (User user : userList) {
+                if(14954805247174L == user.getId()){
+                    System.out.println(user.getName());
+                }
                 WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
                 weChatSendMessageDto.setTemplateId(noticeTeacherTemplate);
                 JSONObject paramJson = new JSONObject();
@@ -365,7 +368,7 @@ class JianyuekbScheduleTaskTest {
      * 3、顶课数据,如果顶课日期那天那个老师没有课,但是新发布的课表又有课了,需要把原来的顶课数据作废
      */
     public void handleCourseAdjust(List<Long> classIds, String startDate, String endDate){
-        classService.listByIds(classIds)
+        List<BaseClass> classList = classService.listByIds(classIds);
         Map<Long, String> classMap = classList.stream().collect(Collectors.toMap(BaseClass::getId, BaseClass::getName));
         List<CourseTableBak> bakList = courseTableBakService.list(
                 new QueryWrapper<CourseTableBak>().lambda()