DateSelectUtil.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.jtzx.crm.module.sys.util;
  2. import cn.hutool.core.date.DateField;
  3. import cn.hutool.core.date.DateTime;
  4. import cn.hutool.core.date.DateUtil;
  5. import cn.hutool.json.JSONUtil;
  6. import com.google.common.collect.Lists;
  7. import com.jtzx.crm.module.sys.model.response.DateSelectBO;
  8. import java.time.LocalDateTime;
  9. import java.util.List;
  10. public class DateSelectUtil {
  11. public static List<DateSelectBO> getDateData() {
  12. List<DateSelectBO> dateData = Lists.newArrayList();
  13. dateData.add(getBO("全部",0,null));
  14. dateData.add(getBO("今天",0, DateField.DAY_OF_YEAR));
  15. dateData.add(getBO("昨天",1, DateField.DAY_OF_YEAR));
  16. dateData.add(getBO("近3天",3, DateField.DAY_OF_YEAR));
  17. dateData.add(getBO("近1周",7, DateField.DAY_OF_YEAR));
  18. dateData.add(getBO("近1月",1,DateField.MONTH));
  19. dateData.add(getBO("近3月",3,DateField.MONTH));
  20. dateData.add(getBO("近半年",6,DateField.MONTH));
  21. dateData.add(getBO("自定义",null,null));
  22. return dateData;
  23. }
  24. public static void main(String[] args) {
  25. // DateSelectBO bo = getBO("本周", 7, DateField.DAY_OF_WEEK);
  26. DateSelectBO bo = getBO("最近3个月",3,DateField.MONTH);
  27. // DateSelectBO bo = getBO("近1周",7,DateField.DAY_OF_YEAR);
  28. System.out.println(JSONUtil.toJsonStr(bo));
  29. }
  30. /**
  31. * 获取对象
  32. * @param name
  33. * @param number
  34. * @param dateField
  35. * @return
  36. */
  37. public static DateSelectBO getBO(String name, Integer number, DateField dateField) {
  38. DateSelectBO bo = DateSelectBO.builder().build();
  39. bo.setName(name);
  40. bo.setSortCode(number);
  41. bo.setSelectStatus(false);
  42. if (dateField == null && number == null) {
  43. bo.setSelectStatus(true);
  44. } else {
  45. //取当天的最后一秒,往前计算开始时间
  46. DateTime endDay = DateUtil.endOfDay(DateUtil.date());
  47. LocalDateTime endDateTime = DateUtil.toLocalDateTime(endDay);
  48. bo.setEndDate(endDateTime);
  49. if(dateField != null && dateField.equals(DateField.DAY_OF_WEEK)){
  50. DateTime dateTime = DateUtil.beginOfWeek(DateUtil.date());
  51. bo.setStartDate(DateUtil.toLocalDateTime(dateTime));
  52. }else {
  53. bo.setStartDate(getStartDate(number, dateField, DateUtil.date()));
  54. }
  55. }
  56. return bo;
  57. }
  58. public static LocalDateTime getStartDate(Integer number, DateField dateField, DateTime endDay) {
  59. DateTime startDate = DateUtil.offset(endDay, dateField, -number);
  60. String str = DateUtil.formatDateTime(startDate);
  61. return DateUtil.toLocalDateTime(DateUtil.parse(str));
  62. }
  63. }