Browse Source

feat:课程计费逻辑调整

Joburgess 4 years ago
parent
commit
d13534333b

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/event/CourseStatusChangeEvent.java

@@ -0,0 +1,28 @@
+package com.ym.mec.biz.event;
+
+import org.springframework.context.ApplicationEvent;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @Author qnc99
+ * @Date 2020/12/2 0002
+ */
+public class CourseStatusChangeEvent extends ApplicationEvent {
+
+    private Set<Long> courseIds;
+
+    public CourseStatusChangeEvent(Object source, Set<Long> courseIds) {
+        super(source);
+        this.courseIds = courseIds;
+    }
+
+    public Set<Long> getCourseIds() {
+        return courseIds;
+    }
+
+    public void setCourseIds(Set<Long> courseIds) {
+        this.courseIds = courseIds;
+    }
+}

+ 31 - 0
mec-biz/src/main/java/com/ym/mec/biz/event/listener/CourseEventListener.java

@@ -0,0 +1,31 @@
+package com.ym.mec.biz.event.listener;
+
+import com.ym.mec.biz.event.CourseStatusChangeEvent;
+import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author qnc99
+ * @Date 2020/12/2 0002
+ */
+@Component
+public class CourseEventListener {
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
+
+    @Async
+    @EventListener
+    public void courseStatusChangeEvent(CourseStatusChangeEvent courseStatusChangeEvent){
+        logger.info("课程状态变更:{}", courseStatusChangeEvent.getCourseIds());
+        courseScheduleStudentPaymentService.updateCourseActualPrice();
+    }
+
+}

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/event/source/CourseEventSource.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.event.source;
+
+import com.ym.mec.biz.event.CourseStatusChangeEvent;
+import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Set;
+
+/**
+ * @Author qnc99
+ * @Date 2020/12/2 0002
+ */
+@Service
+public class CourseEventSource {
+
+    @Resource
+    private ApplicationContext applicationContext;
+
+    /**
+     * @describe 课程状态变更
+     * @author qnc99
+     * @date 2020/12/2 0002
+     * @return void
+     */
+    public void courseStatusChange(Set<Long> courseIds){
+        applicationContext.publishEvent(new CourseStatusChangeEvent(this, courseIds));
+    }
+
+}

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -34,6 +34,7 @@ import java.util.stream.Stream;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.event.source.CourseEventSource;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -213,6 +214,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private CoursesGroupModifyLogDao coursesGroupModifyLogDao;
     @Autowired
 	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
+    @Autowired
+	private CourseEventSource courseEventSource;
 
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
@@ -3425,6 +3428,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		//保存日志调整信息
 		saveModifyLog(modifyLogs,courseScheduleIds);
 
+		courseEventSource.courseStatusChange(new HashSet<>(courseScheduleIds));
+
 		// 推送
 		try {
 			Set<Integer> teacherIds = newCourseSchedules.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet());