Sfoglia il codice sorgente

add:直播课成课失败退款

liujunchi 3 anni fa
parent
commit
055086dd6f

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -46,5 +46,13 @@ public interface CourseScheduleStudentPaymentDao extends BaseMapper<CourseSchedu
 
     //根据查询锁定中的课程
     List<CourseScheduleStudentPaymentVo> selectPaymentList(String orderNo);
+
+    /**
+     * 查询购买直播课的订单
+     *
+     * @param courseGroupId 课程组id
+     * @return
+     */
+    List<String> selectOrderNoByGroupId(Long courseGroupId);
 }
 

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleStudentPaymentService.java

@@ -37,5 +37,13 @@ public interface CourseScheduleStudentPaymentService extends IService<CourseSche
      * @return 购买记录
      */
     CourseScheduleStudentPayment getByCourseId(Long courseId);
+
+    /**
+     * 查询购买直播课的订单
+     *
+     * @param courseGroupId 课程组
+     * @return
+     */
+    List<String> getOrderNoByGroupId( Long courseGroupId);
 }
 

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

@@ -90,6 +90,9 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     @Autowired
     private SysMessageService sysMessageService;
 
+    @Autowired
+    private UserOrderRefundService userOrderRefundService;
+
     @Override
     public CourseGroupDao getDao() {
         return this.baseMapper;
@@ -914,30 +917,10 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                             .eq(CourseSchedule::getCourseGroupId, courseGroup.getId())
                             .set(CourseSchedule::getStatus, CourseScheduleEnum.CANCEL.getCode())
                     );
-                    // 直播课成课失败通知
-                    // 发短信
-                    try {
-                        SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
-                        Map<Long, String> receivers = new HashMap<>();
-                        receivers.put(user.getId(), user.getPhone());
-                        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_LIVE_COMPLETION_FAIL,
-                                                           receivers, null, 0, null, null,
-                                                           courseGroup.getName());
-                    } catch (Exception e) {
-                        log.warn("直播课成课失败短信发送失败,{}",e.getMessage());
-                    }
+                    sendMessage(courseGroup);
+
+                    refend(courseGroup);
 
-                    // 发推送
-                    try {
-                        SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
-                        Map<Long, String> receivers = new HashMap<>();
-                        receivers.put(user.getId(), user.getPhone());
-                        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_COMPLETION_FAIL,
-                                                           receivers, null, 0, null, ClientEnum.TEACHER.getCode(),
-                                                           courseGroup.getName());
-                    } catch (Exception e) {
-                        log.warn("直播课成课失败推送发送失败,{}",e.getMessage());
-                    }
                 }
                 this.updateById(courseGroup);
             } catch (Exception ignored) {
@@ -945,5 +928,53 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         });
     }
 
+    /**
+     * 直播课成课失败退款
+     *
+     * @param courseGroup
+     */
+    private void refend(CourseGroup courseGroup) {
+        // 退款
+        List<String> orderNoList = courseScheduleStudentPaymentService.getOrderNoByGroupId(courseGroup.getId());
+
+        for (String orderNo : orderNoList) {
+            try {
+                userOrderRefundService.orderRefund(orderNo,"直播课成课失败退款");
+            } catch (Exception e) {
+                log.warn("直播课成课失败退款 退款失败,退款订单号 {}",orderNo);
+            }
+        }
+    }
+
+    /**
+     * 直播课成课失败发送消息
+     *
+     * @param courseGroup 课程组
+     */
+    private void sendMessage(CourseGroup courseGroup) {
+        // 直播课成课失败通知
+        // 发短信
+        try {
+            SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
+            Map<Long, String> receivers = new HashMap<>();
+            receivers.put(user.getId(), user.getPhone());
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_LIVE_COMPLETION_FAIL,
+                               receivers, null, 0, null, null, courseGroup.getName());
+        } catch (Exception e) {
+            log.warn("直播课成课失败短信发送失败,{}",e.getMessage());
+        }
+
+        // 发推送
+        try {
+            SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
+            Map<Long, String> receivers = new HashMap<>();
+            receivers.put(user.getId(), user.getPhone());
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_COMPLETION_FAIL,
+                               receivers, null, 0, null, ClientEnum.TEACHER.getCode(), courseGroup.getName());
+        } catch (Exception e) {
+            log.warn("直播课成课失败推送发送失败,{}",e.getMessage());
+        }
+    }
+
 }
 

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -57,5 +57,12 @@ public class CourseScheduleStudentPaymentServiceImpl extends ServiceImpl<CourseS
         return list.get(0);
     }
 
+    @Override
+    public List<String> getOrderNoByGroupId(Long courseGroupId) {
+
+        return baseMapper.selectOrderNoByGroupId(courseGroupId);
+
+    }
+
 }
 

+ 7 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -80,4 +80,11 @@
         LEFT JOIN course_schedule s ON p.course_id_ = s.id_
         WHERE p.order_no_=#{orderNo}
     </select>
+
+    <select id="selectOrderNoByGroupId" resultType="java.lang.String">
+        select
+        distinct order_no_
+        from course_schedule_student_payment cssp
+        where cssp.course_group_id_ = #{courseGroupId}
+    </select>
 </mapper>