fix promotion seckill for no join goods is not autostart
This commit is contained in:
parent
ac60f27814
commit
d4c9b0f147
@ -398,42 +398,42 @@ public class PromotionServiceImpl implements PromotionService {
|
|||||||
seckill.setPromotionStatus(promotionMessage.getPromotionStatus());
|
seckill.setPromotionStatus(promotionMessage.getPromotionStatus());
|
||||||
result = this.seckillService.update(updateWrapper(promotionMessage));
|
result = this.seckillService.update(updateWrapper(promotionMessage));
|
||||||
log.info("更新限时抢购活动状态:{}", seckill);
|
log.info("更新限时抢购活动状态:{}", seckill);
|
||||||
//判断参与活动的商品是否为空,如果为空则返回
|
|
||||||
if (seckill.getSeckillApplyList() == null) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
//循环秒杀商品数据,将数据按照时间段进行存储
|
//判断参与活动的商品是否为空
|
||||||
for (SeckillApply seckillApply : seckill.getSeckillApplyList()) {
|
if (seckill.getSeckillApplyList() != null && !seckill.getSeckillApplyList().isEmpty()) {
|
||||||
if (seckillApply.getPromotionApplyStatus().equals(PromotionApplyStatusEnum.PASS.name())) {
|
//循环秒杀商品数据,将数据按照时间段进行存储
|
||||||
//下一个时间,默认为当天结束时间
|
for (SeckillApply seckillApply : seckill.getSeckillApplyList()) {
|
||||||
int nextHour = 23;
|
if (seckillApply.getPromotionApplyStatus().equals(PromotionApplyStatusEnum.PASS.name())) {
|
||||||
String[] split = seckill.getHours().split(",");
|
//下一个时间,默认为当天结束时间
|
||||||
int[] hoursSored = Arrays.stream(split).mapToInt(Integer::parseInt).toArray();
|
int nextHour = 23;
|
||||||
//排序时间段
|
String[] split = seckill.getHours().split(",");
|
||||||
Arrays.sort(hoursSored);
|
int[] hoursSored = Arrays.stream(split).mapToInt(Integer::parseInt).toArray();
|
||||||
for (int i : hoursSored) {
|
//排序时间段
|
||||||
//如果当前时间段大于排序后的时间段的某个,当前时间段的下个时间段即为排序后的时间段的某个
|
Arrays.sort(hoursSored);
|
||||||
if (seckillApply.getTimeLine() < i) {
|
for (int i : hoursSored) {
|
||||||
nextHour = i;
|
//如果当前时间段大于排序后的时间段的某个,当前时间段的下个时间段即为排序后的时间段的某个
|
||||||
break;
|
if (seckillApply.getTimeLine() < i) {
|
||||||
|
nextHour = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Seckill seckill1 = JSONUtil.toBean(JSONUtil.toJsonStr(seckill), Seckill.class);
|
||||||
|
String format = DateUtil.format(seckill.getStartTime(), cn.lili.common.utils.DateUtil.STANDARD_DATE_FORMAT);
|
||||||
|
DateTime parseStartTime = DateUtil.parse((format + " " + seckillApply.getTimeLine()), "yyyy-MM-dd HH");
|
||||||
|
DateTime parseEndTime = DateUtil.parse((format + " " + nextHour), "yyyy-MM-dd HH");
|
||||||
|
//如果是当天最后的时间段则设置到当天结束时间的59分59秒
|
||||||
|
if (nextHour == seckillApply.getTimeLine()) {
|
||||||
|
parseEndTime = DateUtil.parse((format + " " + nextHour + ":59:59"), cn.lili.common.utils.DateUtil.STANDARD_FORMAT);
|
||||||
|
}
|
||||||
|
seckill1.setStartTime(parseStartTime);
|
||||||
|
//当时商品的秒杀活动活动结束时间为下个时间段的开始
|
||||||
|
seckill1.setEndTime(parseEndTime);
|
||||||
|
log.info("更新限时抢购商品状态:{}", seckill1);
|
||||||
|
this.goodsIndexService.updateEsGoodsIndex(seckillApply.getSkuId(), seckill1, promotionTypeEnum.name() + "-" + seckillApply.getTimeLine(), seckillApply.getPrice());
|
||||||
}
|
}
|
||||||
Seckill seckill1 = JSONUtil.toBean(JSONUtil.toJsonStr(seckill), Seckill.class);
|
|
||||||
String format = DateUtil.format(seckill.getStartTime(), cn.lili.common.utils.DateUtil.STANDARD_DATE_FORMAT);
|
|
||||||
DateTime parseStartTime = DateUtil.parse((format + " " + seckillApply.getTimeLine()), "yyyy-MM-dd HH");
|
|
||||||
DateTime parseEndTime = DateUtil.parse((format + " " + nextHour), "yyyy-MM-dd HH");
|
|
||||||
//如果是当天最后的时间段则设置到当天结束时间的59分59秒
|
|
||||||
if (nextHour == seckillApply.getTimeLine()) {
|
|
||||||
parseEndTime = DateUtil.parse((format + " " + nextHour + ":59:59"), cn.lili.common.utils.DateUtil.STANDARD_FORMAT);
|
|
||||||
}
|
|
||||||
seckill1.setStartTime(parseStartTime);
|
|
||||||
//当时商品的秒杀活动活动结束时间为下个时间段的开始
|
|
||||||
seckill1.setEndTime(parseEndTime);
|
|
||||||
log.info("更新限时抢购商品状态:{}", seckill1);
|
|
||||||
this.goodsIndexService.updateEsGoodsIndex(seckillApply.getSkuId(), seckill1, promotionTypeEnum.name() + "-" + seckillApply.getTimeLine(), seckillApply.getPrice());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.mongoTemplate.save(seckill);
|
this.mongoTemplate.save(seckill);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user