Просмотр исходного кода

修改删除催课任务 催课信息没有删除

xgb 3 недель назад
Родитель
Сommit
0b0c1a0715

+ 4 - 2
fs-admin/src/main/resources/application.yml

@@ -4,10 +4,12 @@ server:
 # Spring配置
 spring:
   profiles:
-#    active: dev-test
+    active: dev-test
+#    active: druid-bly-test
+#    active: druid-zkzh-test
 #    active: druid-hdt
 #    active: druid-yzt
-    active: druid-zkzh-test
+#    active: druid-sxjz-test
 #    active: druid-sft
 #    active: druid-fby
 #    active: dev

+ 7 - 1
fs-company/src/main/resources/application.yml

@@ -1,10 +1,16 @@
 server:
-  port: 8006
+#  port: 8006
+  port: 8888
 # Spring配置
 spring:
   profiles:
+#    active: druid-ylrz
 #    active: dev
     active: druid-zkzh-test
+#    active: druid-bly-test
+#    active: druid-heyantang-test
+#    active: druid-myhk-test
+#    active: druid-jnsyj-test
 #    active: druid-jnmy-test
 #    active: druid-jzzx-test
 #    active: druid-hdt

+ 1 - 0
fs-company/src/main/resources/logback.xml

@@ -89,6 +89,7 @@
     <!-- log4j2.xml -->
     <Logger name="com.fs.his.mapper" level="debug"/>
     <Logger name="com.fs.company.mapper" level="debug"/>
+    <Logger name="com.fs.course.mapper" level="debug"/>
     <Logger name="org.apache.ibatis" level="debug"/>
 
 	<!--系统用户操作日志-->

+ 18 - 49
fs-service/src/main/java/com/fs/im/service/impl/OpenIMServiceImpl.java

@@ -1173,7 +1173,6 @@ public class OpenIMServiceImpl implements OpenIMService {
         return openImResponseDTO;
     }
 
-
     @Override
     public OpenImResponseDTO batchSendCourseLimit(BatchSendCourseDTO batchSendCourseDTO) {
         ObjectMapper objectMapper = new ObjectMapper();
@@ -1285,59 +1284,29 @@ public class OpenIMServiceImpl implements OpenIMService {
                     // 组装催课消息数据
                     OpenImBatchMsgDTO openImBatchUrgeCourse = makeOpenImBatchMsgDTO(batchSendCourseDTO, courseUrl, objectMapper, batchUserIds, planSendTimeStamp, "催课");
 
-                    //缓存定时催课消息
-                    int urgSendType;
-                    if(batchSendCourseDTO.getUrgeTime() != null && batchSendCourseDTO.getUrgeTime().compareTo(new Date()) > 0) {
-                        urgSendType = 1; //定时
-                    } else {
-                        urgSendType = 2; //实时
-                    }
-
-                    // 催课也按批次拆分,使用与发课相同的 sendUnionId
-                    if (urgSendType == 1 && batchUserIds.size() > BATCH_SIZE) {
-                        log.info("定时催课消息接收人{}人,超过{}人,拆分缓存", batchUserIds.size(), BATCH_SIZE);
-
-                        // 进一步拆分催课批次(如果必要)
-                        for (int j = 0; j < batchUserIds.size(); j += BATCH_SIZE) {
-                            int urgeEnd = Math.min(j + BATCH_SIZE, batchUserIds.size());
-                            List<String> urgeBatchUserIds = batchUserIds.subList(j, urgeEnd);
+                    // 催课使用与发课相同的批次(batchUserIds),不需要再次拆分
+                    List<FsImMsgSendDetail> imMsgSendDetailUrgeList = createImMsgSendLog("催课", batchSendCourseDTO, planSendTimeStamp, 1, batchUserIds, sendUnionId);
 
-                            OpenImBatchMsgDTO batchUrgeMsgDTO = makeOpenImBatchMsgDTO(batchSendCourseDTO, courseUrl, objectMapper, urgeBatchUserIds, planSendTimeStamp, "催课");
-                            List<FsImMsgSendDetail> imMsgSendDetailUrgeList = createImMsgSendLog("催课", batchSendCourseDTO, planSendTimeStamp, urgSendType, urgeBatchUserIds, sendUnionId);
+                    // 定时催课 - 缓存到 Redis
+                    String redisKey = "openIm:batchSendMsg:urgeCourse";
+                    Map<String, Object> redisMap = redisCache.getCacheMap(redisKey);
+                    if (redisMap == null) {
+                        redisMap = new HashMap<>();
+                    }
 
-                            String redisKey = "openIm:batchSendMsg:urgeCourse";
-                            Map<String, Object> redisMap = redisCache.getCacheMap(redisKey);
-                            if (redisMap == null) {
-                                redisMap = new HashMap<>();
-                            }
+                    BatchSendCourseAllDTO batchSendCourseAllDTO = new BatchSendCourseAllDTO();
+                    batchSendCourseAllDTO.setOpenImBatchMsgDTO(openImBatchUrgeCourse)
+                            .setImMsgSendDetailList(imMsgSendDetailUrgeList);
 
-                            BatchSendCourseAllDTO batchSendCourseAllDTO = new BatchSendCourseAllDTO();
-                            batchSendCourseAllDTO.setOpenImBatchMsgDTO(batchUrgeMsgDTO)
-                                    .setImMsgSendDetailList(imMsgSendDetailUrgeList);
+                    // 使用唯一的 key:课程 ID+ 视频 ID+ 时间戳+logId
+                    String batchKey = batchSendCourseDTO.getCourseId() + ":" +
+                            batchSendCourseDTO.getVideoId() + ":" +
+                            batchSendCourseDTO.getUrgeTime().getTime() + ":" +
+                            imMsgSendDetailUrgeList.get(0).getLogId();
 
-                            // 使用唯一的 key
-                            String batchKey = batchSendCourseDTO.getCourseId() + ":" +
-                                    batchSendCourseDTO.getVideoId() + ":" +
-                                    batchSendCourseDTO.getUrgeTime().getTime() + ":" +
-                                    imMsgSendDetailUrgeList.get(0).getLogId();
+                    redisMap.put(batchKey, batchSendCourseAllDTO);
+                    redisCache.setCacheMap(redisKey, redisMap);
 
-                            redisMap.put(batchKey, batchSendCourseAllDTO);
-                            redisCache.setCacheMap(redisKey, redisMap);
-                        }
-                    } else {
-                        // 不超过 100 人或实时发送,按原逻辑,使用与发课相同的 sendUnionId
-                        List<FsImMsgSendDetail> imMsgSendDetailUrgeList = createImMsgSendLog("催课", batchSendCourseDTO, planSendTimeStamp, urgSendType, batchUserIds, sendUnionId);
-                        String redisKey = "openIm:batchSendMsg:urgeCourse";
-                        Map<String, Object> redisMap = new HashMap<>();
-                        BatchSendCourseAllDTO batchSendCourseAllDTO = new BatchSendCourseAllDTO();
-                        batchSendCourseAllDTO.setOpenImBatchMsgDTO(openImBatchUrgeCourse)
-                                .setImMsgSendDetailList(imMsgSendDetailUrgeList);
-
-                        String batchKey = batchSendCourseDTO.getCourseId()+":"+batchSendCourseDTO.getVideoId()+":"+batchSendCourseDTO.getUrgeTime().getTime()+imMsgSendDetailUrgeList.get(0).getLogId();
-
-                        redisMap.put(batchKey, batchSendCourseAllDTO);
-                        redisCache.setCacheMap(redisKey, redisMap);
-                    }
                 }
 
             } catch (Exception e) {

+ 4 - 3
fs-user-app/src/main/resources/application.yml

@@ -7,12 +7,13 @@ server:
 # Spring配置
 spring:
   profiles:
-    active: druid-zkzh-test
 #    active: dev
+    active: dev-test
+#    active: druid-xzt-test
 #    active: druid-jzzx
 #    active: druid-yzt
 #    active: druid-hdt
 #    active: druid-sxjz
-#    active: druid-qdtst
 #    active: druid-yzt
-#    active: druid-bjzm-test
+#    active: druid-fcky-test
+