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

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

封装测试类 生成新场次组

parent 6b7262ac
...@@ -7,12 +7,13 @@ import io.swagger.annotations.ApiModel; ...@@ -7,12 +7,13 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel @ApiModel
public class KylinTicketTimesVo { public class KylinTicketTimesVo implements Serializable,Cloneable{
private Integer mid; private Integer mid;
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
...@@ -32,6 +33,15 @@ public class KylinTicketTimesVo { ...@@ -32,6 +33,15 @@ public class KylinTicketTimesVo {
@ApiModelProperty(value = "票种") @ApiModelProperty(value = "票种")
private List<KylinTicketVo> ticketList; 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) { public void setTicketTimes(KylinTicketTimes ticketTimes) {
this.mid = ticketTimes.getMid(); this.mid = ticketTimes.getMid();
this.ticketTimesId = ticketTimes.getTicketTimesId(); this.ticketTimesId = ticketTimes.getTicketTimesId();
......
...@@ -117,6 +117,16 @@ public abstract class DateUtil { ...@@ -117,6 +117,16 @@ public abstract class DateUtil {
return new Date(c.getTimeInMillis()); 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 { ...@@ -315,6 +325,18 @@ public abstract class DateUtil {
return asLocalDate(date2).toEpochDay() - asLocalDate(date1).toEpochDay(); 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 { ...@@ -509,25 +531,28 @@ public abstract class DateUtil {
/** /**
* 秒级时间戳转 LocalDateTime * 秒级时间戳转 LocalDateTime
*
* @param epochMilli 秒级时间戳 * @param epochMilli 秒级时间戳
* @return LocalDateTime * @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.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneOffset.of("+8"));
return LocalDateTime.ofEpochSecond(epochMilli,0, ZoneOffset.ofHours(8)); return LocalDateTime.ofEpochSecond(epochMilli, 0, ZoneOffset.ofHours(8));
} }
/** /**
* 获取10位时间戳,精确到秒 * 获取10位时间戳,精确到秒
*
* @return * @return
*/ */
public static Long getNowSeconds(){ public static Long getNowSeconds() {
//获取秒数 //获取秒数
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")); Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
//获取毫秒数 //获取毫秒数
// Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli(); // Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
return second; return second;
} }
public static void main(String[] args) { public static void main(String[] args) {
System.out.println(DateUtil.getNowTime()); System.out.println(DateUtil.getNowTime());
//获取秒数 //获取秒数
...@@ -535,7 +560,7 @@ public abstract class DateUtil { ...@@ -535,7 +560,7 @@ public abstract class DateUtil {
//获取毫秒数 //获取毫秒数
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli(); Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
System.out.println("second==="+second); System.out.println("second===" + second);
System.out.println("milliSecond==="+milliSecond); System.out.println("milliSecond===" + milliSecond);
} }
} }
...@@ -44,6 +44,14 @@ public class KylinBuyNoticeParnterController { ...@@ -44,6 +44,14 @@ public class KylinBuyNoticeParnterController {
@Autowired @Autowired
RedisSlimeUtils redisSlimeUtils; 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") @GetMapping(value = "buyNotice")
@ApiOperation(value = "购票须知列表", position = 1) @ApiOperation(value = "购票须知列表", position = 1)
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
......
package com.liquidnet.service.slime.util; package com.liquidnet.service.slime.util;
import com.alibaba.fastjson.JSON;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
...@@ -401,7 +402,7 @@ public class PerformanceUtils { ...@@ -401,7 +402,7 @@ public class PerformanceUtils {
//快递相关 //快递相关
KylinTicketExpressModuleVo moduleVo = redisSlimeUtils.getTEMMerchantVo(tickets.getTicketsId()); KylinTicketExpressModuleVo moduleVo = redisSlimeUtils.getTEMMerchantVo(tickets.getTicketsId());
if (moduleVo != null && moduleVo.getProduceCodeList()!=null) { if (moduleVo != null && moduleVo.getProduceCodeList() != null) {
redisSlimeUtils.setTEMMerchantVo(tickets.getTicketsId(), moduleVo); redisSlimeUtils.setTEMMerchantVo(tickets.getTicketsId(), moduleVo);
del9.add(new Object[]{tickets.getTicketsId(), updatedAt}); del9.add(new Object[]{tickets.getTicketsId(), updatedAt});
for (ExpressModuleVo mVo : moduleVo.getProduceCodeList()) for (ExpressModuleVo mVo : moduleVo.getProduceCodeList())
...@@ -736,4 +737,67 @@ public class PerformanceUtils { ...@@ -736,4 +737,67 @@ public class PerformanceUtils {
return null; 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