Joburgess před 5 roky
rodič
revize
efe547e544

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/event/StudentCourseChangeEvent.java

@@ -0,0 +1,34 @@
+package com.ym.mec.biz.event;
+
+import com.ym.mec.biz.dal.enums.GroupType;
+import org.springframework.context.ApplicationEvent;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.09.24
+ */
+public class StudentCourseChangeEvent extends ApplicationEvent {
+
+    private Integer userId;
+
+    private String groupId;
+
+    private GroupType groupType;
+
+    public StudentCourseChangeEvent(Object source, Integer userId, String groupId, GroupType groupType) {
+        super(source);
+        this.userId = userId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public String getGroupId() {
+        return groupId;
+    }
+
+    public GroupType getGroupType() {
+        return groupType;
+    }
+}

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/event/listener/StudentEventListener.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.event.listener;
+
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.event.StudentCourseChangeEvent;
+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 Joburgess
+ * @Date 2020.09.24
+ */
+@Component
+public class StudentEventListener{
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    private CourseScheduleDao courseScheduleDao;
+
+    @Async
+    @EventListener
+    public void onStudentCourseChangeEvent(StudentCourseChangeEvent studentCourseChangeEvent) {
+        courseScheduleDao.countGroupFinishCourse(studentCourseChangeEvent.getGroupId(), studentCourseChangeEvent.getGroupType().getCode());
+        logger.info("用户{}在{}({})团体的课程发生变化.", studentCourseChangeEvent.getUserId(), studentCourseChangeEvent.getGroupType().getDesc(), studentCourseChangeEvent.getGroupId());
+    }
+}

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/event/source/StudentEventSource.java

@@ -0,0 +1,33 @@
+package com.ym.mec.biz.event.source;
+
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.event.StudentCourseChangeEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.09.24
+ */
+@Service
+public class StudentEventSource {
+    private Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Resource
+    private ApplicationContext applicationContext;
+
+    /**
+     * @describe 学生课程计划变更通知
+     * @author Joburgess
+     * @date 2020.09.24
+     * @param userId: 用户编号
+     * @return void
+     */
+    public void studentCourseChange(Integer userId, String groupId, GroupType groupType) {
+        applicationContext.publishEvent(new StudentCourseChangeEvent(this, userId, groupId, groupType));
+    }
+}

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

@@ -14,6 +14,7 @@ import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
+import com.ym.mec.biz.event.source.StudentEventSource;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
@@ -135,6 +136,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Autowired
 	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
 
+    @Autowired
+	private StudentEventSource studentEventSource;
+
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
 
@@ -2777,6 +2781,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         vipGroupApplyDto.setSingleClassPrice(vipGroupCourseAdjustInfo.getSingleClassPrice());
         vipGroupService.appendVipGroupCourseSchedules(vipGroupApplyDto);
         classGroupService.updateClassGroupInfo(classGroup.getId());
+
+		studentEventSource.studentCourseChange(vipGroup.getUserId(), vipGroup.getId().toString(), VIP);
 //        vipGroupService.checkVipCourseIsInScore(vipGroupCourseAdjustInfo.getVipGroupId().longValue());
     }