| package com.dsh.course.util; | 
|   | 
| import com.alibaba.fastjson.JSON; | 
| import com.alibaba.fastjson.JSONObject; | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
| import com.dsh.course.entity.CoursePackageScheduling; | 
| import com.dsh.course.entity.CoursePackageStudent; | 
| import com.dsh.course.entity.TCoursePackagePayment; | 
| import com.dsh.course.service.CoursePackageStudentService; | 
| import com.dsh.course.service.ICoursePackageSchedulingService; | 
| import com.dsh.course.service.TCoursePackagePaymentService; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.http.HttpEntity; | 
| import org.springframework.http.HttpHeaders; | 
| import org.springframework.http.MediaType; | 
| import org.springframework.scheduling.annotation.Scheduled; | 
| import org.springframework.stereotype.Component; | 
| import org.springframework.util.LinkedMultiValueMap; | 
| import org.springframework.util.MultiValueMap; | 
| import org.springframework.web.client.RestTemplate; | 
|   | 
| import java.text.SimpleDateFormat; | 
| import java.util.*; | 
|   | 
| /** | 
|  * @author zhibing.pu | 
|  * @Date 2023/8/11 15:01 | 
|  */ | 
| @Component | 
| public class TaskUtil { | 
|   | 
|     @Autowired | 
|     private ICoursePackageSchedulingService coursePackageSchedulingService; | 
|   | 
|     @Autowired | 
|     private CoursePackageStudentService coursePackageStudentService; | 
|   | 
|   | 
|     @Autowired | 
|     private RestTemplate internalRestTemplate; | 
|   | 
|     /** | 
|      * 每隔一分钟去处理的定时任务 | 
|      */ | 
|     @Scheduled(fixedRate = 60000) | 
|     public void taskMinute(){ | 
|         try { | 
|             //定时修改排课状态 | 
|             coursePackageSchedulingService.taskSetStatus(); | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|     } | 
|     /** | 
|      * 每隔一分钟去处理的定时任务   预约课时 | 
|      */ | 
|     @Scheduled(cron = "0 0 18 * * ?") | 
|     public void pushOne(){ | 
|         try { | 
|             Calendar instance = Calendar.getInstance(); | 
|             instance.add(Calendar.DATE,1); | 
|             Date time = instance.getTime(); | 
|             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); | 
|             String format1 = format.format(time); | 
|             // 获取明天排课 | 
|             List<CoursePackageScheduling> list = coursePackageSchedulingService.list(new LambdaQueryWrapper<CoursePackageScheduling>().like(CoursePackageScheduling::getClassDate, format1)); | 
|             for (CoursePackageScheduling coursePackageScheduling : list) { | 
|                 CoursePackageStudent one = coursePackageStudentService.getOne(new LambdaQueryWrapper<CoursePackageStudent>().eq(CoursePackageStudent::getCoursePackageSchedulingId, coursePackageScheduling.getId())); | 
|                 if(one!=null && one.getReservationStatus()==1){ | 
|                     Integer appUserId = one.getAppUserId(); | 
|   | 
|                     //调用推送 | 
|                     HttpHeaders headers = new HttpHeaders(); | 
|                     // 以表单的方式提交 | 
|                     headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); | 
|                     String s1 = appUserId + "_" + "Class"; | 
|                     //定时修改排课状态 | 
|                     String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id="+s1, String.class); | 
|                     JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); | 
|                     if(jsonObject1.getIntValue("code") != 200){ | 
|                         System.err.println(jsonObject1.getString("msg")); | 
|                     } | 
|                 } | 
|             } | 
|   | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
|     /** | 
|      * 零时任务 | 
|      */ | 
|     @Scheduled(cron = "0 0 0 * * *") | 
|     public void zeroTask(){ | 
|         //定时添加排课数据 | 
|         coursePackageSchedulingService.taskAddData(); | 
|     } | 
| } |