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

Commit 55676a8c authored by jiangxiulong's avatar jiangxiulong

日历接口完成

parent 0224db2e
......@@ -18,7 +18,9 @@ import java.util.*;
* @version 1.0 2015年10月16日 13:32:00
*/
public abstract class DateUtil {
/** 定义常量 **/
/**
* 定义常量
**/
public static final String DATE_JFP_STR = "yyyyMM";
public static final String DATE_FULL_STR = "yyyy-MM-dd HH:mm:ss";
......@@ -44,7 +46,9 @@ public abstract class DateUtil {
english("d MMM yyyy HH:mm 'UTC'", Locale.ENGLISH),
;
/** 线程安全,可共享 */
/**
* 线程安全,可共享
*/
private DateTimeFormatter formatter;
Formatter(String pattern) {
......@@ -160,7 +164,6 @@ public abstract class DateUtil {
*
* @param date java8中的日期
* @param formatter 格式化
*
* @return 格式化字符串
*/
public static String format(LocalDateTime date, Formatter formatter) {
......@@ -176,7 +179,6 @@ public abstract class DateUtil {
*
* @param date java8 之前的传统日期
* @param formatter 格式化
*
* @return 格式化字符串
*/
public static String format(Date date, Formatter formatter) {
......@@ -187,7 +189,6 @@ public abstract class DateUtil {
* 格式化当前时间
*
* @param formatter 格式化
*
* @return 当前时间的格式化字符串
*/
public static String format(Formatter formatter) {
......@@ -356,7 +357,6 @@ public abstract class DateUtil {
*
* @param d1 较大的日期
* @param d2 较小的日期
*
* @return 如果d1>d2返回 月数差 否则返回0
*/
public static int getMonthDiff(Date d1, Date d2) {
......@@ -382,6 +382,78 @@ public abstract class DateUtil {
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) {
//
......
......@@ -6,7 +6,7 @@ import org.gavaghan.geodesy.GlobalCoordinates;
/**
* <p>
* 根据经纬度计算距离
* 经纬度
* </p>
*
* @author jiangxiulong
......@@ -14,6 +14,7 @@ import org.gavaghan.geodesy.GlobalCoordinates;
*/
public class DistanceUtil {
// 根据经纬度计算距离
public static String getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo) {
GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom);
GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
......
......@@ -9,9 +9,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
......@@ -94,11 +96,17 @@ public class KylinPerformancesController {
return ResponseDto.success(result);
}
@SneakyThrows
@GetMapping(value = "calendar")
@ApiOperation("演出日历")
@ApiImplicitParam(type = "query", dataType = "String", name = "yearMonth", value = "年月 2021-01", required = true)
public ResponseDto<List> performanceList(@RequestParam String yearMonth) {
List result = kylinPerformancesService.performanceCalendar(yearMonth);
public ResponseDto<List> performanceList(@RequestParam String yearMonth) throws ParseException {
List result = null;
try {
result = kylinPerformancesService.performanceCalendar(yearMonth);
} catch (ParseException e) {
e.printStackTrace();
}
return ResponseDto.success(result);
}
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.CommonConst;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.DistanceUtil;
import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
......@@ -23,10 +24,12 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* <p>
......@@ -336,11 +339,29 @@ public class KylinPerformancesServiceImpl extends ServiceImpl<KylinPerformancesM
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();
date.add("2021-05-01");
date.add("2021-05-02");
return date;
for (PerformanceVo v : list) {
String timeStart = v.getTimeStart();
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