Browse Source

系统收费每天凌晨3点清理所有未确认的乐团预排课

zouxuan 4 years ago
parent
commit
311d0bf914

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSchoolTermCourseDetailDao.java

@@ -1,10 +1,12 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermStudentCourseDetail;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermCourseDetail;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
+import java.util.List;
 
 public interface MusicGroupSchoolTermCourseDetailDao extends BaseDAO<Integer, MusicGroupSchoolTermCourseDetail> {
 
@@ -15,5 +17,13 @@ public interface MusicGroupSchoolTermCourseDetailDao extends BaseDAO<Integer, Mu
      * @param startCourseDate
      * @return
      */
-    MusicGroupSchoolTermCourseDetail findByCourseDateAndMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("startCourseDate") Date startCourseDate);
+    MusicGroupSchoolTermCourseDetail findByCourseDateAndMusicGroupId(@Param("musicGroupId") String musicGroupId,
+                                                                     @Param("startCourseDate") Date startCourseDate,
+                                                                     @Param("courseFlag") Integer courseFlag);
+
+    /**
+     * 获取所有未确认的预排课数据
+     * @return
+     */
+    List<MusicGroupSchoolTermCourseDetail> queryAllNoCourse();
 }

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/IndexErrDataRecordService.java

@@ -83,5 +83,4 @@ public interface IndexErrDataRecordService extends BaseService<Long, IndexErrDat
      * @return com.ym.mec.common.page.PageInfo<java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleEndDto>>
      */
     PageInfo<CourseScheduleEndDto> queryHistoryErrCourseData(EndCourseScheduleQueryInfo queryInfo);
-
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -3491,7 +3491,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countStudyNum(classGroupIds))), HashMap.class);
 
         Map<Integer, Long> totalNumMap = MapUtil.convertIntegerMap(courseScheduleDao.countTotalNumByClassGroupId(classGroupSet, null));
-        MusicGroupSchoolTermCourseDetail termCourseDetail = musicGroupSchoolTermCourseDetailDao.findByCourseDateAndMusicGroupId(musicGroupId, null);
+        MusicGroupSchoolTermCourseDetail termCourseDetail = musicGroupSchoolTermCourseDetailDao.findByCourseDateAndMusicGroupId(musicGroupId, null,0);
         Map<Integer, Long> preTotalNumMap = null;
         Map<Integer, Long> preSubMinutesMap = null;
         if(termCourseDetail != null){

+ 11 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java

@@ -42,7 +42,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 
     @Override
     public MusicGroupSchoolTermCourseDetail findByMusicGroupId(String musicGroupId) {
-		return musicGroupSchoolTermCourseDetailDao.findByCourseDateAndMusicGroupId(musicGroupId,null);
+		return musicGroupSchoolTermCourseDetailDao.findByCourseDateAndMusicGroupId(musicGroupId,null,0);
     }
 
 	@Override
@@ -55,11 +55,17 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 			throw new BizException("操作失败:请确保所有在读学员都在班级");
 		}
 		MusicGroupSchoolTermCourseDetail courseDetail = musicGroupSchoolTermCourseDetailDao.
-				findByCourseDateAndMusicGroupId(musicGroupId,startCourseDate);
+				findByCourseDateAndMusicGroupId(musicGroupId,startCourseDate,0);
 		Date date = DateUtil.stringToDate(DateUtil.format(new Date(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT);
-		if(startCourseDate != null && DateUtil.daysBetween(date, startCourseDate) < 0){
-			//如果所选时间小于当前时间
-			throw new BizException("操作失败:开课时间不得小于当前时间");
+		if(startCourseDate != null){
+			MusicGroupSchoolTermCourseDetail courseDetail1 = musicGroupSchoolTermCourseDetailDao.findByCourseDateAndMusicGroupId(musicGroupId,startCourseDate,1);
+			if(courseDetail1 != null){
+				throw new BizException("操作失败:所选时间段已排课,请勿重复操作");
+			}
+			if(DateUtil.daysBetween(date, startCourseDate) < 0){
+				//如果所选时间小于当前时间
+				throw new BizException("操作失败:开课时间不得小于当前时间");
+			}
 		}
 		if(courseDetail != null){
 			if(startCourseDate != null){

+ 7 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupSchoolTermCourseDetailMapper.xml

@@ -80,6 +80,12 @@
 		<if test="startCourseDate != null">
 		  AND (#{startCourseDate} >= start_school_term_ OR #{startCourseDate} &lt;= end_school_term_)
 		</if>
-		AND course_flag_ = 0
+		<if test="courseFlag != null">
+			AND course_flag_ = #{courseFlag}
+		</if>
+	</select>
+    <select id="queryAllNoCourse" resultMap="MusicGroupSchoolTermCourseDetail">
+		SELECT * FROM music_group_school_term_course_detail
+		WHERE course_flag_ = 0
 	</select>
 </mapper>

+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -195,4 +195,8 @@ public interface TaskRemoteService {
 	//历史异常数据记录
 	@GetMapping("task/indexErrDataRecordTask")
 	void indexErrDataRecord();
+
+	//每天凌晨3点清理所有的乐团预排课
+	@GetMapping("task/autoCleanPreCourseTask")
+	void autoCleanPreCourseTask();
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/AutoCleanPreCourseTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AutoCleanPreCourseTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.autoCleanPreCourseTask();
+	}
+}

+ 21 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -1,5 +1,8 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dao.MusicGroupSchoolTermCourseDetailDao;
+import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermCourseDetail;
+import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermStudentCourseDetail;
 import com.ym.mec.biz.dal.enums.IndexDataType;
 import com.ym.mec.biz.event.source.CourseEventSource;
 import com.ym.mec.biz.service.*;
@@ -104,6 +107,12 @@ public class TaskController extends BaseController {
 	@Autowired
 	private IndexErrDataRecordService indexErrDataRecordService;
 
+	@Autowired
+	private ClassGroupService classGroupService;
+
+	@Autowired
+	private MusicGroupSchoolTermCourseDetailDao musicGroupSchoolTermCourseDetailDao;
+
 	@GetMapping(value = "/autoAffirmReceiveTask")
 	// 自动确认收货
 	public void affirmReceive(){
@@ -402,4 +411,16 @@ public class TaskController extends BaseController {
 	public void indexErrDataRecordTask(String date){
 		indexErrDataRecordService.indexErrDataRecordTask(date);
 	}
+
+	//历史异常数据记录
+	@GetMapping("/autoCleanPreCourseTask")
+	public void autoCleanPreCourseTask(){
+		//获取所有未确认的预排课数据
+		List<MusicGroupSchoolTermCourseDetail> courseDetails = musicGroupSchoolTermCourseDetailDao.queryAllNoCourse();
+		if(courseDetails.size() > 0){
+			for (MusicGroupSchoolTermCourseDetail courseDetail : courseDetails) {
+				classGroupService.cancelPreCourseSchedule(courseDetail.getId(),null);
+			}
+		}
+	}
 }