浏览代码

课程定时任务

cy 3 年之前
父节点
当前提交
3b2705e37d

+ 8 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/TeacherFeignService.java

@@ -32,4 +32,12 @@ public interface TeacherFeignService {
      */
     @GetMapping("/task/courseRemind")
     HttpResponseResult<Object> courseRemind();
+
+    /**
+     * @Description: 更行课程状态
+     * @Author: cy
+     * @Date: 2022/5/17
+     */
+    @GetMapping("/task/courseStatus")
+    HttpResponseResult<Object> courseStatus();
 }

+ 5 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/TeacherFeignServiceFallback.java

@@ -21,4 +21,9 @@ public class TeacherFeignServiceFallback implements TeacherFeignService {
     public HttpResponseResult<Object> courseRemind() {
         return null;
     }
+
+    @Override
+    public HttpResponseResult<Object> courseStatus() {
+        return null;
+    }
 }

+ 22 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/CourseStatusTask.java

@@ -0,0 +1,22 @@
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.api.feign.TeacherFeignService;
+import com.yonge.cooleshow.task.core.BaseTask;
+import com.yonge.cooleshow.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022/4/25 10:30
+ */
+@Service
+public class CourseStatusTask extends BaseTask {
+    @Autowired
+    private TeacherFeignService teacherFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        teacherFeignService.courseStatus();
+    }
+}

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java

@@ -210,4 +210,8 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
     BigDecimal selectPrice(@Param("teacherId") Long teacherId, @Param("subjectId") Long subjectId);
 
     List<CourseSchedule> selectSchedule(Integer courseId);
+
+    void updateStartTime();
+
+    void updateEndTime();
 }

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java

@@ -233,5 +233,6 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
 
     Map<String, String> selectRoomConfig();
     void test();
+    void scheduleTask();
 }
 

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

@@ -1396,4 +1396,14 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         }
         return rList;
     }
+
+    /**
+     * @Description: 定时修改课程状态
+     * @Author: cy
+     * @Date: 2022/5/17
+     */
+    public void scheduleTask(){
+        baseMapper.updateStartTime();
+        baseMapper.updateEndTime();
+    }
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -754,4 +754,10 @@
             WHERE user_id_=(SELECT user_id_ FROM course_schedule_student_payment WHERE course_id_=#{courseId} AND course_type_='PRACTICE')
         )
     </select>
+    <update id="updateStartTime">
+        UPDATE course_schedule SET status_='ING' WHERE <![CDATA[ start_time_ <= NOW() ]]> <![CDATA[ AND NOW() <= end_time_ ]]>
+    </update>
+    <update id="updateEndTime">
+        UPDATE course_schedule SET status_='COMPLETE' WHERE <![CDATA[ end_time_ <= NOW() ]]>
+    </update>
 </mapper>

+ 6 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/task/TaskController.java

@@ -58,4 +58,10 @@ public class TaskController extends BaseController {
         scheduleService.courseRemind();
         return HttpResponseResult.succeed();
     }
+
+    @GetMapping("/courseStatus")
+    public HttpResponseResult<Object> courseStatus() {
+        scheduleService.scheduleTask();
+        return HttpResponseResult.succeed();
+    }
 }