记得上下班打卡 | git大法好,push需谨慎

Commit 55676a8c authored by jiangxiulong's avatar jiangxiulong

日历接口完成

parent 0224db2e
...@@ -18,7 +18,9 @@ import java.util.*; ...@@ -18,7 +18,9 @@ import java.util.*;
* @version 1.0 2015年10月16日 13:32:00 * @version 1.0 2015年10月16日 13:32:00
*/ */
public abstract class DateUtil { public abstract class DateUtil {
/** 定义常量 **/ /**
* 定义常量
**/
public static final String DATE_JFP_STR = "yyyyMM"; public static final String DATE_JFP_STR = "yyyyMM";
public static final String DATE_FULL_STR = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_FULL_STR = "yyyy-MM-dd HH:mm:ss";
...@@ -44,7 +46,9 @@ public abstract class DateUtil { ...@@ -44,7 +46,9 @@ public abstract class DateUtil {
english("d MMM yyyy HH:mm 'UTC'", Locale.ENGLISH), english("d MMM yyyy HH:mm 'UTC'", Locale.ENGLISH),
; ;
/** 线程安全,可共享 */ /**
* 线程安全,可共享
*/
private DateTimeFormatter formatter; private DateTimeFormatter formatter;
Formatter(String pattern) { Formatter(String pattern) {
...@@ -160,7 +164,6 @@ public abstract class DateUtil { ...@@ -160,7 +164,6 @@ public abstract class DateUtil {
* *
* @param date java8中的日期 * @param date java8中的日期
* @param formatter 格式化 * @param formatter 格式化
*
* @return 格式化字符串 * @return 格式化字符串
*/ */
public static String format(LocalDateTime date, Formatter formatter) { public static String format(LocalDateTime date, Formatter formatter) {
...@@ -176,7 +179,6 @@ public abstract class DateUtil { ...@@ -176,7 +179,6 @@ public abstract class DateUtil {
* *
* @param date java8 之前的传统日期 * @param date java8 之前的传统日期
* @param formatter 格式化 * @param formatter 格式化
*
* @return 格式化字符串 * @return 格式化字符串
*/ */
public static String format(Date date, Formatter formatter) { public static String format(Date date, Formatter formatter) {
...@@ -187,7 +189,6 @@ public abstract class DateUtil { ...@@ -187,7 +189,6 @@ public abstract class DateUtil {
* 格式化当前时间 * 格式化当前时间
* *
* @param formatter 格式化 * @param formatter 格式化
*
* @return 当前时间的格式化字符串 * @return 当前时间的格式化字符串
*/ */
public static String format(Formatter formatter) { public static String format(Formatter formatter) {
...@@ -356,7 +357,6 @@ public abstract class DateUtil { ...@@ -356,7 +357,6 @@ public abstract class DateUtil {
* *
* @param d1 较大的日期 * @param d1 较大的日期
* @param d2 较小的日期 * @param d2 较小的日期
*
* @return 如果d1>d2返回 月数差 否则返回0 * @return 如果d1>d2返回 月数差 否则返回0
*/ */
public static int getMonthDiff(Date d1, Date d2) { public static int getMonthDiff(Date d1, Date d2) {
...@@ -382,6 +382,78 @@ public abstract class DateUtil { ...@@ -382,6 +382,78 @@ public abstract class DateUtil {
return yearInterval * 12 + monthInterval; return yearInterval * 12 + monthInterval;
} }
// 获得当天开始时间和结束时间
public static HashMap oneDayStartEnd(String[] args) {
HashMap datas = new HashMap();
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date start = calendar.getTime();
datas.put("start", start);
calendar.add(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.SECOND, -1);
Date end = calendar.getTime();
datas.put("end", end);
return datas;
}
// 获取当月第一天
public static String getMonthFirst() {
//规定返回日期格式
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
Date theDate = calendar.getTime();
GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();
gcLast.setTime(theDate);
//设置为第一天
gcLast.set(Calendar.DAY_OF_MONTH, 1);
String dayFirst = sf.format(gcLast.getTime());
//打印本月第一天
return dayFirst;
}
// 获取某月第一天
public static String getMonthFirst(String month) {
return month.concat("-01");
}
// 获取当月最后一天
public static String getMonthLast() {
//获取Calendar
Calendar calendar = Calendar.getInstance();
//设置日期为本月最大日期
calendar.set(Calendar.DATE, calendar.getActualMaximum(calendar.DATE));
//设置日期格式
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String dayLast = sf.format(calendar.getTime());
return dayLast + " 23:59:59";
}
// 获取某月最后一天
public static String getMonthLast(String month) throws ParseException {
// String 转 Date
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date monthDate = simpleDateFormat.parse(month);
//获取Calendar
Calendar calendar = Calendar.getInstance();
calendar.setTime(monthDate);
//设置日期为本月最大日期
calendar.set(Calendar.DATE, calendar.getActualMaximum(calendar.DATE));
//设置日期格式
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String dayLast = sf.format(calendar.getTime());
return dayLast + " 23:59:59";
}
public static void main(String[] args) { public static void main(String[] args) {
// //
......
...@@ -6,7 +6,7 @@ import org.gavaghan.geodesy.GlobalCoordinates; ...@@ -6,7 +6,7 @@ import org.gavaghan.geodesy.GlobalCoordinates;
/** /**
* <p> * <p>
* 根据经纬度计算距离 * 经纬度
* </p> * </p>
* *
* @author jiangxiulong * @author jiangxiulong
...@@ -14,6 +14,7 @@ import org.gavaghan.geodesy.GlobalCoordinates; ...@@ -14,6 +14,7 @@ import org.gavaghan.geodesy.GlobalCoordinates;
*/ */
public class DistanceUtil { public class DistanceUtil {
// 根据经纬度计算距离
public static String getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo) { public static String getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo) {
GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom); GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom);
GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo); GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
......
...@@ -9,9 +9,11 @@ import io.swagger.annotations.Api; ...@@ -9,9 +9,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -94,11 +96,17 @@ public class KylinPerformancesController { ...@@ -94,11 +96,17 @@ public class KylinPerformancesController {
return ResponseDto.success(result); return ResponseDto.success(result);
} }
@SneakyThrows
@GetMapping(value = "calendar") @GetMapping(value = "calendar")
@ApiOperation("演出日历") @ApiOperation("演出日历")
@ApiImplicitParam(type = "query", dataType = "String", name = "yearMonth", value = "年月 2021-01", required = true) @ApiImplicitParam(type = "query", dataType = "String", name = "yearMonth", value = "年月 2021-01", required = true)
public ResponseDto<List> performanceList(@RequestParam String yearMonth) { public ResponseDto<List> performanceList(@RequestParam String yearMonth) throws ParseException {
List result = kylinPerformancesService.performanceCalendar(yearMonth); List result = null;
try {
result = kylinPerformancesService.performanceCalendar(yearMonth);
} catch (ParseException e) {
e.printStackTrace();
}
return ResponseDto.success(result); return ResponseDto.success(result);
} }
......
...@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.service.impl; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.CommonConst; import com.liquidnet.commons.lang.CommonConst;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.DistanceUtil; import com.liquidnet.commons.lang.util.DistanceUtil;
import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum; import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
...@@ -23,10 +24,12 @@ import org.springframework.data.mongodb.core.query.Criteria; ...@@ -23,10 +24,12 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
...@@ -336,11 +339,29 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM ...@@ -336,11 +339,29 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
return list; return list;
} }
public List performanceCalendar(String yearMonth) { public List performanceCalendar(String yearMonth) throws ParseException {
// 处理成正常格式
yearMonth = yearMonth.concat("-01 00:00:00");
// 获取此月开始结束时间
String monthStart = DateUtil.getMonthFirst(yearMonth);
String monthEnd = DateUtil.getMonthLast(yearMonth);
Query query = Query.query(Criteria.where("timeStart").gte(monthStart).lte(monthEnd));
query.fields().include("timeStart");
List<PerformanceVo> list = mongoTemplate.find(query, PerformanceVo.class, PerformanceVo.class.getSimpleName());
List date = new ArrayList(); List date = new ArrayList();
date.add("2021-05-01"); for (PerformanceVo v : list) {
date.add("2021-05-02"); String timeStart = v.getTimeStart();
return date; String[] timeStartArr = timeStart.split(" ");
date.add(timeStartArr[0]);
}
// 去重
List newList = (List) date.stream().distinct().collect(Collectors.toList());
return newList;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment