修复拼团商品使用优惠券无效问题,修复拼团活动延时任务无效问题
This commit is contained in:
parent
20436653af
commit
0c4aef307a
@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.ConstraintViolationException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -122,4 +123,18 @@ public class GlobalControllerExceptionHandler {
|
|||||||
return ResultUtil.error(ResultCode.PARAMS_ERROR);
|
return ResultUtil.error(ResultCode.PARAMS_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bean校验未通过异常
|
||||||
|
*
|
||||||
|
* @see javax.validation.Valid
|
||||||
|
* @see org.springframework.validation.Validator
|
||||||
|
* @see org.springframework.validation.DataBinder
|
||||||
|
*/
|
||||||
|
@ExceptionHandler(ConstraintViolationException.class)
|
||||||
|
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||||
|
@ResponseBody
|
||||||
|
public ResultMessage<Object> constraintViolationExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) {
|
||||||
|
ConstraintViolationException exception = (ConstraintViolationException) e;
|
||||||
|
return ResultUtil.error(ResultCode.PARAMS_ERROR.code(), exception.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,22 @@ public class RenderStepStatement {
|
|||||||
RenderStepEnums.DISTRIBUTION,
|
RenderStepEnums.DISTRIBUTION,
|
||||||
RenderStepEnums.PLATFORM_COMMISSION
|
RenderStepEnums.PLATFORM_COMMISSION
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 交易创建前渲染
|
||||||
|
* 渲染购物车 生成SN 》分销人员佣金渲染 》平台佣金渲染
|
||||||
|
*/
|
||||||
|
public static RenderStepEnums[] pintuanTradeRender = {
|
||||||
|
RenderStepEnums.CHECK_DATA,
|
||||||
|
RenderStepEnums.SKU_PROMOTION,
|
||||||
|
RenderStepEnums.COUPON,
|
||||||
|
RenderStepEnums.SKU_FREIGHT,
|
||||||
|
RenderStepEnums.CART_PRICE,
|
||||||
|
RenderStepEnums.CART_SN,
|
||||||
|
RenderStepEnums.DISTRIBUTION,
|
||||||
|
RenderStepEnums.PLATFORM_COMMISSION
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 交易创建前渲染
|
* 交易创建前渲染
|
||||||
* 渲染购物车 生成SN 》分销人员佣金渲染 》平台佣金渲染
|
* 渲染购物车 生成SN 》分销人员佣金渲染 》平台佣金渲染
|
||||||
|
@ -71,6 +71,8 @@ public class TradeBuilder {
|
|||||||
//需要对购物车渲染
|
//需要对购物车渲染
|
||||||
if (isSingle(checkedWay)) {
|
if (isSingle(checkedWay)) {
|
||||||
renderCartBySteps(tradeDTO, RenderStepStatement.checkedSingleRender);
|
renderCartBySteps(tradeDTO, RenderStepStatement.checkedSingleRender);
|
||||||
|
} else if (checkedWay.equals(CartTypeEnum.PINTUAN)) {
|
||||||
|
renderCartBySteps(tradeDTO, RenderStepStatement.pintuanTradeRender);
|
||||||
} else {
|
} else {
|
||||||
renderCartBySteps(tradeDTO, RenderStepStatement.checkedRender);
|
renderCartBySteps(tradeDTO, RenderStepStatement.checkedRender);
|
||||||
}
|
}
|
||||||
@ -93,7 +95,9 @@ public class TradeBuilder {
|
|||||||
//需要对购物车渲染
|
//需要对购物车渲染
|
||||||
if (isSingle(checkedWay)) {
|
if (isSingle(checkedWay)) {
|
||||||
renderCartBySteps(tradeDTO, RenderStepStatement.singleTradeRender);
|
renderCartBySteps(tradeDTO, RenderStepStatement.singleTradeRender);
|
||||||
} else {
|
} else if (checkedWay.equals(CartTypeEnum.PINTUAN)) {
|
||||||
|
renderCartBySteps(tradeDTO, RenderStepStatement.pintuanTradeRender);
|
||||||
|
} else {
|
||||||
renderCartBySteps(tradeDTO, RenderStepStatement.tradeRender);
|
renderCartBySteps(tradeDTO, RenderStepStatement.tradeRender);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,7 +114,7 @@ public class TradeBuilder {
|
|||||||
private boolean isSingle(CartTypeEnum checkedWay) {
|
private boolean isSingle(CartTypeEnum checkedWay) {
|
||||||
//拼团 积分 砍价商品
|
//拼团 积分 砍价商品
|
||||||
|
|
||||||
return (checkedWay.equals(CartTypeEnum.PINTUAN) || checkedWay.equals(CartTypeEnum.POINTS) || checkedWay.equals(CartTypeEnum.KANJIA));
|
return (checkedWay.equals(CartTypeEnum.POINTS) || checkedWay.equals(CartTypeEnum.KANJIA));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -587,6 +587,9 @@ public class CartServiceImpl implements CartService {
|
|||||||
if (promotionsGoods != null && promotionsGoods.getPrice() != null) {
|
if (promotionsGoods != null && promotionsGoods.getPrice() != null) {
|
||||||
dataSku.setPromotionFlag(true);
|
dataSku.setPromotionFlag(true);
|
||||||
dataSku.setPromotionPrice(promotionsGoods.getPrice());
|
dataSku.setPromotionPrice(promotionsGoods.getPrice());
|
||||||
|
} else {
|
||||||
|
dataSku.setPromotionFlag(false);
|
||||||
|
dataSku.setPromotionPrice(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -367,7 +367,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
//判断是否为拼团订单,进行特殊处理
|
//判断是否为拼团订单,进行特殊处理
|
||||||
//判断订单类型进行不同的订单确认操作
|
//判断订单类型进行不同的订单确认操作
|
||||||
if (OrderPromotionTypeEnum.PINTUAN.name().equals(order.getOrderPromotionType())) {
|
if (OrderPromotionTypeEnum.PINTUAN.name().equals(order.getOrderPromotionType())) {
|
||||||
this.checkPintuanOrder(order.getPromotionId(), order.getParentOrderSn());
|
String parentOrderSn = CharSequenceUtil.isEmpty(order.getParentOrderSn()) ? orderSn : order.getParentOrderSn();
|
||||||
|
this.checkPintuanOrder(order.getPromotionId(), parentOrderSn);
|
||||||
} else {
|
} else {
|
||||||
//判断订单类型
|
//判断订单类型
|
||||||
if (order.getOrderType().equals(OrderTypeEnum.NORMAL.name())) {
|
if (order.getOrderType().equals(OrderTypeEnum.NORMAL.name())) {
|
||||||
@ -789,10 +790,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
* @param parentOrderSn 拼团父订单编号
|
* @param parentOrderSn 拼团父订单编号
|
||||||
*/
|
*/
|
||||||
private void checkPintuanOrder(String pintuanId, String parentOrderSn) {
|
private void checkPintuanOrder(String pintuanId, String parentOrderSn) {
|
||||||
//拼团有效参数判定
|
|
||||||
if (CharSequenceUtil.isEmpty(parentOrderSn)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
//获取拼团配置
|
//获取拼团配置
|
||||||
Pintuan pintuan = pintuanService.getById(pintuanId);
|
Pintuan pintuan = pintuanService.getById(pintuanId);
|
||||||
List<Order> list = this.getPintuanOrder(pintuanId, parentOrderSn);
|
List<Order> list = this.getPintuanOrder(pintuanId, parentOrderSn);
|
||||||
@ -800,7 +797,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
if (count == 1) {
|
if (count == 1) {
|
||||||
//如果为开团订单,则发布一个一小时的延时任务,时间到达后,如果未成团则自动结束(未开启虚拟成团的情况下)
|
//如果为开团订单,则发布一个一小时的延时任务,时间到达后,如果未成团则自动结束(未开启虚拟成团的情况下)
|
||||||
PintuanOrderMessage pintuanOrderMessage = new PintuanOrderMessage();
|
PintuanOrderMessage pintuanOrderMessage = new PintuanOrderMessage();
|
||||||
long startTime = DateUtil.offsetHour(new Date(), 1).getTime();
|
// long startTime = DateUtil.offsetHour(new Date(), 1).getTime();
|
||||||
|
long startTime = DateUtil.offsetMinute(new Date(), 2).getTime();
|
||||||
pintuanOrderMessage.setOrderSn(parentOrderSn);
|
pintuanOrderMessage.setOrderSn(parentOrderSn);
|
||||||
pintuanOrderMessage.setPintuanId(pintuanId);
|
pintuanOrderMessage.setPintuanId(pintuanId);
|
||||||
TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR,
|
TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR,
|
||||||
|
File diff suppressed because one or more lines are too long
@ -126,7 +126,6 @@ public class PromotionServiceImpl implements PromotionService {
|
|||||||
case PINTUAN:
|
case PINTUAN:
|
||||||
Pintuan pintuan = pintuanService.getById(promotionGoods.getPromotionId());
|
Pintuan pintuan = pintuanService.getById(promotionGoods.getPromotionId());
|
||||||
promotionMap.put(esPromotionKey, pintuan);
|
promotionMap.put(esPromotionKey, pintuan);
|
||||||
index.setPromotionPrice(promotionGoods.getPrice());
|
|
||||||
break;
|
break;
|
||||||
case FULL_DISCOUNT:
|
case FULL_DISCOUNT:
|
||||||
FullDiscount fullDiscount = fullDiscountService.getById(promotionGoods.getPromotionId());
|
FullDiscount fullDiscount = fullDiscountService.getById(promotionGoods.getPromotionId());
|
||||||
@ -168,7 +167,6 @@ public class PromotionServiceImpl implements PromotionService {
|
|||||||
seckill.setStartTime(promotionGoods.getStartTime());
|
seckill.setStartTime(promotionGoods.getStartTime());
|
||||||
seckill.setEndTime(promotionGoods.getEndTime());
|
seckill.setEndTime(promotionGoods.getEndTime());
|
||||||
promotionMap.put(seckillKey, seckill);
|
promotionMap.put(seckillKey, seckill);
|
||||||
index.setPromotionPrice(promotionGoods.getPrice());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -309,6 +309,7 @@ public class EsGoodsIndex implements Serializable {
|
|||||||
this.intro = sku.getIntro();
|
this.intro = sku.getIntro();
|
||||||
this.grade = sku.getGrade();
|
this.grade = sku.getGrade();
|
||||||
this.recommend = sku.getRecommend();
|
this.recommend = sku.getRecommend();
|
||||||
|
this.goodsType = sku.getGoodsType();
|
||||||
this.releaseTime = new Date();
|
this.releaseTime = new Date();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -522,9 +522,6 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements
|
|||||||
//促销不为空则进行清洗
|
//促销不为空则进行清洗
|
||||||
promotionMap.entrySet().removeIf(i -> {
|
promotionMap.entrySet().removeIf(i -> {
|
||||||
BasePromotions promotion = (BasePromotions) i.getValue();
|
BasePromotions promotion = (BasePromotions) i.getValue();
|
||||||
if (i.getKey().contains(PromotionTypeEnum.SECKILL.name()) || i.getKey().contains(PromotionTypeEnum.PINTUAN.name())) {
|
|
||||||
goodsIndex.setPromotionPrice(goodsIndex.getPrice());
|
|
||||||
}
|
|
||||||
return promotion.getEndTime() != null && promotion.getEndTime().getTime() < DateUtil.date().getTime();
|
return promotion.getEndTime() != null && promotion.getEndTime().getTime() < DateUtil.date().getTime();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user