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

Commit b49d554b authored by 胡佳晨's avatar 胡佳晨

封装测试类 生成新场次组

parent 6b7262ac
......@@ -7,12 +7,13 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.format.DateTimeFormatter;
import java.util.List;
@Data
@ApiModel
public class KylinTicketTimesVo {
public class KylinTicketTimesVo implements Serializable,Cloneable{
private Integer mid;
@ApiModelProperty(value = "主键")
......@@ -32,6 +33,15 @@ public class KylinTicketTimesVo {
@ApiModelProperty(value = "票种")
private List<KylinTicketVo> ticketList;
private static final KylinTicketTimesVo obj = new KylinTicketTimesVo();
public static KylinTicketTimesVo getNew() {
try {
return (KylinTicketTimesVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinTicketTimesVo();
}
}
public void setTicketTimes(KylinTicketTimes ticketTimes) {
this.mid = ticketTimes.getMid();
this.ticketTimesId = ticketTimes.getTicketTimesId();
......
......@@ -117,6 +117,16 @@ public abstract class DateUtil {
return new Date(c.getTimeInMillis());
}
/**
* 计算日期,增加天数
*/
public static String addDay(String date, int days) {
Calendar c = Calendar.getInstance();
c.setTime(parse(date, "yyyy-MM-dd HH:mm:ss"));
c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR) + days);
return format(new Date(c.getTimeInMillis()), Formatter.yyyyMMddHHmmss);
}
/**
* 计算日期,增加小时
*/
......@@ -315,6 +325,18 @@ public abstract class DateUtil {
return asLocalDate(date2).toEpochDay() - asLocalDate(date1).toEpochDay();
}
/**
* 间隔天数
*
* @param date1 开始日期
* @param date2 结束日期
*/
public static long intervalDays(String date1, String date2) {
Date date1D = parse(date1, "yyyy-MM-dd HH:mm:ss");
Date date2D = parse(date2, "yyyy-MM-dd HH:mm:ss");
return asLocalDate(date2D).toEpochDay() - asLocalDate(date1D).toEpochDay();
}
/**
* 间隔月
*
......@@ -509,25 +531,28 @@ public abstract class DateUtil {
/**
* 秒级时间戳转 LocalDateTime
*
* @param epochMilli 秒级时间戳
* @return LocalDateTime
*/
public static LocalDateTime ofEpochMilli(long epochMilli){
public static LocalDateTime ofEpochMilli(long epochMilli) {
// return LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneOffset.of("+8"));
return LocalDateTime.ofEpochSecond(epochMilli,0, ZoneOffset.ofHours(8));
return LocalDateTime.ofEpochSecond(epochMilli, 0, ZoneOffset.ofHours(8));
}
/**
* 获取10位时间戳,精确到秒
*
* @return
*/
public static Long getNowSeconds(){
public static Long getNowSeconds() {
//获取秒数
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
//获取毫秒数
// Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
return second;
}
public static void main(String[] args) {
System.out.println(DateUtil.getNowTime());
//获取秒数
......@@ -535,7 +560,7 @@ public abstract class DateUtil {
//获取毫秒数
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
System.out.println("second==="+second);
System.out.println("milliSecond==="+milliSecond);
System.out.println("second===" + second);
System.out.println("milliSecond===" + milliSecond);
}
}
......@@ -44,6 +44,14 @@ public class KylinBuyNoticeParnterController {
@Autowired
RedisSlimeUtils redisSlimeUtils;
@GetMapping(value = "test")
@ApiOperation(value = "测试", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<Boolean> ce(@RequestParam("performanceId") String performanceId) {
performanceUtils.getNewTicketData(performanceId);
return ResponseDto.success();
}
@GetMapping(value = "buyNotice")
@ApiOperation(value = "购票须知列表", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数")
......
package com.liquidnet.service.slime.util;
import com.alibaba.fastjson.JSON;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
......@@ -401,7 +402,7 @@ public class PerformanceUtils {
//快递相关
KylinTicketExpressModuleVo moduleVo = redisSlimeUtils.getTEMMerchantVo(tickets.getTicketsId());
if (moduleVo != null && moduleVo.getProduceCodeList()!=null) {
if (moduleVo != null && moduleVo.getProduceCodeList() != null) {
redisSlimeUtils.setTEMMerchantVo(tickets.getTicketsId(), moduleVo);
del9.add(new Object[]{tickets.getTicketsId(), updatedAt});
for (ExpressModuleVo mVo : moduleVo.getProduceCodeList())
......@@ -736,4 +737,67 @@ public class PerformanceUtils {
return null;
}
}
/**
* 根据场次时间进行拆分组
*
* @param performanceId
*/
public void getNewTicketData(String performanceId) {
KylinPerformanceVo vo = redisSlimeUtils.getPerformanceVo(performanceId);
List<KylinTicketTimesVo> timeList = vo.getTicketTimeList();
List<KylinTicketTimesVo> timeListVo = new ArrayList<>();
HashMap<String, List<KylinTicketVo>> mapData = new HashMap<>();
//根据场次拆出时间组
List<String> useTimeList = CollectionUtil.linkedListString();
for (KylinTicketTimesVo timesVo : timeList) {
String st = timesVo.getUseStart();
String et = timesVo.getUseEnd();
long day = DateUtil.intervalDays(st, et);
for (int i = 0; i <= day; i++) {
String useDay = DateUtil.addDay(st, i);
if (!useTimeList.contains(useDay)) {
useTimeList.add(useDay);
}
}
}
Collections.sort(useTimeList);
//新场次
for (String name : useTimeList) {
KylinTicketTimesVo timesVo = KylinTicketTimesVo.getNew();
timesVo.setPerformanceId(performanceId);
timesVo.setTitle(name);
timesVo.setUseStart(name);
timesVo.setUseEnd(name);
timeListVo.add(timesVo);
mapData.put(name, new ArrayList<>());
}
//完善新场次数据
for (KylinTicketTimesVo timesVo : timeList) {
for (KylinTicketVo ticketVo : timesVo.getTicketList()) {
String st = ticketVo.getUseStart();
String et = ticketVo.getUseEnd();
long day = DateUtil.intervalDays(st, et);
for (int i = 0; i <= day; i++) {
String useDay = DateUtil.addDay(st, i);
List<KylinTicketVo> t1 = mapData.get(useDay);
t1.add(ticketVo);
mapData.put(useDay, t1);
}
}
}
for (String key : mapData.keySet()) {
for (KylinTicketTimesVo v1 : timeListVo) {
if (v1.getTitle().equals(key)) {
List<KylinTicketVo> v2 = mapData.get(key);
v1.setTicketList(v2);
}
}
}
log.info("新数据:" + JsonUtils.toJson(timeListVo));
}
}
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