Browse Source

fix:学生直播成课失败推送

liujunchi 2 years ago
parent
commit
79dd5a6f82

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java

@@ -104,6 +104,8 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     PRACTICE_ADJUST("陪练课调整"),
     ACTIVITY_WIN("获奖消息"),
     PLATFORM_ADD_VIP("会员赠送"),
+    SMS_STUDENT_LIVE_COMPLETION_FAIL("直播课成课失败"),
+    STUDENT_LIVE_COMPLETION_FAIL("直播课成课失败"),
 
     ;
 

+ 35 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -1130,14 +1130,15 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         }
         courseGroupList.forEach(courseGroup -> {
             try {
+                List<CourseScheduleStudentPayment> list = courseScheduleStudentPaymentService.list(Wrappers.<CourseScheduleStudentPayment>lambdaQuery()
+                                           .eq(CourseScheduleStudentPayment::getCourseGroupId, courseGroup.getId()));
+                Set<Long> userIds = list.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
                 if (courseGroup.getPreStudentNum() >= courseGroup.getMixStudentNum() &&courseGroup.getStatus().equals(CourseGroupEnum.APPLY.getCode())) {
                     //人数达标则修改课程组为进行中状态
                     courseGroup.setStatus(CourseGroupEnum.ING.getCode());
                     //创建群聊 并添加人员到群中
                     String imGroupId = imGroupService.autoCreate(courseGroup.getId(), courseGroup.getType());
-                    List<CourseScheduleStudentPayment> list = courseScheduleStudentPaymentService.list(Wrappers.<CourseScheduleStudentPayment>lambdaQuery()
-                            .eq(CourseScheduleStudentPayment::getCourseGroupId, courseGroup.getId()));
-                    Set<Long> userIds = list.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
+
                     imGroupMemberService.initGroupMembers(imGroupId, userIds, ImGroupMemberRoleType.STUDENT);
                     //添加老师进群
                     imGroupMemberService.initGroupMembers(imGroupId, Collections.singleton(courseGroup.getTeacherId()), ImGroupMemberRoleType.TEACHER);
@@ -1150,8 +1151,12 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                             .eq(CourseSchedule::getCourseGroupId, courseGroup.getId())
                             .set(CourseSchedule::getStatus, CourseScheduleEnum.CANCEL.getCode())
                     );
-                    //直播课成课失败发送消息
+                    // 老师直播课成课失败发送消息
                     this.sendMessage(courseGroup);
+
+                    // 学生直播课成课失败发送消息
+                    this.sendStudentMessage(userIds,courseGroup);
+
                     //退款
                     this.refund(courseGroup);
                 }
@@ -1164,6 +1169,32 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         });
     }
 
+    private void sendStudentMessage(Set<Long> userIds, CourseGroup courseGroup) {
+        for (Long userId : userIds) {
+
+                SysUser user = sysUserFeignService.queryUserById(userId);
+                // 发短信
+                try {
+                    Map<Long, String> receivers = new HashMap<>();
+                    receivers.put(user.getId(), user.getPhone());
+                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_STUDENT_LIVE_COMPLETION_FAIL,
+                                                       receivers, null, 0, null, null, courseGroup.getName());
+                } catch (Exception e) {
+                    log.warn("学生直播课成课失败短信发送失败,{}", e.getMessage());
+                }
+
+                // 发推送
+                try {
+                    Map<Long, String> receivers = new HashMap<>();
+                    receivers.put(user.getId(), user.getPhone());
+                    sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_LIVE_COMPLETION_FAIL,
+                                                       receivers, null, 0, null, ClientEnum.STUDENT.getCode(), courseGroup.getName());
+                } catch (Exception e) {
+                    log.warn("学生直播课成课失败推送发送失败,{}", e.getMessage());
+                }
+        }
+    }
+
     /**
      * 直播课成课失败退款
      *