SiteTask.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package beilv.quartz.task;
  2. import beilv.admissionticket.domain.AdmissionTicket;
  3. import beilv.admissionticket.service.IAdmissionTicketService;
  4. import beilv.common.utils.uuid.IdUtils;
  5. import beilv.session.domain.BeilvSession;
  6. import beilv.session.service.IBeilvSessionService;
  7. import beilv.site.domain.BeilvSite;
  8. import beilv.site.service.IBeilvSiteService;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Component;
  11. import java.util.ArrayList;
  12. import java.util.Calendar;
  13. import java.util.Date;
  14. import java.util.List;
  15. @Component("siteTask")
  16. public class SiteTask {
  17. @Autowired
  18. private IBeilvSessionService sessionService;
  19. @Autowired
  20. private IBeilvSiteService siteService;
  21. @Autowired
  22. private IAdmissionTicketService ticketService;
  23. public void abcd(){
  24. System.out.println("==================================================");
  25. }
  26. /**
  27. * 门票定时任务
  28. * 定时将日期下的各类型场地+时段写入到数据表中
  29. *
  30. * @param day 天数
  31. */
  32. public void addAdmissionTicket(Integer day) {
  33. // 计算写入日期 = 当前日期 + 传入的day天数
  34. Date writeDate = addDaysToDate(new Date(), day);
  35. //获取场地信息
  36. List<BeilvSite> siteList = siteService.getAllToList();
  37. //获取时段信息
  38. List<BeilvSession> sessionList = sessionService.getAllToList();
  39. //创建写入集合, 用于批量新增
  40. List<AdmissionTicket> ticketList = new ArrayList<>();
  41. siteList.forEach(site -> {
  42. sessionList.forEach(session -> {
  43. //判断场馆相同, 并且场地类型相同
  44. if (session.getVenueId().equals(site.getVenueId()) && session.getSiteType().equals(site.getSiteType())) {
  45. //创建门票实体
  46. AdmissionTicket admissionTicket = new AdmissionTicket(IdUtils.fastSimpleUUID(), String.valueOf(session.getVenueId()), site.getName(), session.getSiteType(), session.getSession(), session.getPrice(),writeDate,"0", session.getVenueName());
  47. ticketList.add(admissionTicket);
  48. }
  49. });
  50. });
  51. //批量写入门票信息
  52. ticketService.insertAdmissionTicketToList(ticketList);
  53. }
  54. // 将Date类型加上指定天数的方法
  55. private Date addDaysToDate(Date date, int days) {
  56. Calendar calendar = Calendar.getInstance();
  57. calendar.setTime(date);
  58. calendar.add(Calendar.DAY_OF_YEAR, days);
  59. return calendar.getTime();
  60. }
  61. }