|
@@ -69,6 +69,7 @@ public class DeliveryOrderListener {
|
|
|
private final ApiCouponService apiCouponService;
|
|
|
private final IDspWaimaiService iDspWaimaiService;
|
|
|
private final IWaimaiOrderService iWaimaiOrderService;
|
|
|
+ private final IWaimaiOrderRecordService iWaimaiOrderRecordService;
|
|
|
|
|
|
@EventListener(DeliveryOrderEvent.class)
|
|
|
@Async
|
|
@@ -79,7 +80,7 @@ public class DeliveryOrderListener {
|
|
|
//触发保底配送
|
|
|
OrderReq req = new OrderReq();
|
|
|
//封装
|
|
|
- req = doCreateOrder.transOrderReq(order,req);
|
|
|
+ req = doCreateOrder.transOrderReq(order, req);
|
|
|
BigDecimal tipAmount = order.getTipAmount() == null ? BigDecimal.ZERO : order.getTipAmount();
|
|
|
Lock lock = new ReentrantLock();
|
|
|
//封装
|
|
@@ -89,10 +90,10 @@ public class DeliveryOrderListener {
|
|
|
// return;
|
|
|
// }
|
|
|
int count = iOrderDeliveryService.count(new QueryWrapper<OrderDelivery>().eq("order_sn", order.getOrderSn()));
|
|
|
- if(count != 0){
|
|
|
+ if (count != 0) {
|
|
|
return;
|
|
|
}
|
|
|
- doCreateOrder.addOrderDelivery(list,order,tipAmount);
|
|
|
+ doCreateOrder.addOrderDelivery(list, order, tipAmount);
|
|
|
|
|
|
/*
|
|
|
list.sort((o1, o2) -> {
|
|
@@ -100,7 +101,7 @@ public class DeliveryOrderListener {
|
|
|
return i.intValue();
|
|
|
});
|
|
|
*/
|
|
|
- if(order.getTipAmount()!=null&&order.getTipAmount().compareTo(BigDecimal.ZERO)>0){
|
|
|
+ if (order.getTipAmount() != null && order.getTipAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
OrderTip orderTip = new OrderTip();
|
|
|
orderTip.setChildOrderNo(order.getOrderSn());
|
|
|
orderTip.setAmount(order.getTipAmount());
|
|
@@ -115,10 +116,10 @@ public class DeliveryOrderListener {
|
|
|
log.info("订单ID" + order.getOrderSn() + "开始进行配送");
|
|
|
try {
|
|
|
//判断该订单是否被接单
|
|
|
- // lock.lock();
|
|
|
+ // lock.lock();
|
|
|
log.info("订单ID" + order.getId() + "配送平台ID" + res.getDeliveryId() + "得到了锁");
|
|
|
|
|
|
- doCreateOrder.doCreateOrder(order,res,req,tipAmount,couponDto);
|
|
|
+ doCreateOrder.doCreateOrder(order, res, req, tipAmount, couponDto);
|
|
|
|
|
|
int billDuration = (res.getBillDuration() == null || res.getBillDuration() == 0) ? BillingConstant.DEFAULT_BILL_DURATION : res.getBillDuration();
|
|
|
TimeUnit.SECONDS.sleep(billDuration);
|
|
@@ -136,21 +137,21 @@ public class DeliveryOrderListener {
|
|
|
.eq("order_sn", order.getOrderSn())
|
|
|
.isNotNull("out_trade_no")
|
|
|
.ne("out_trade_no", -1));
|
|
|
- if (countOrderDelivery == 0){
|
|
|
+ if (countOrderDelivery == 0) {
|
|
|
Order nowOrder = iOrderService.getById(order.getId());
|
|
|
- if (nowOrder.getWaimaiOrderId() != null){
|
|
|
+ if (nowOrder.getWaimaiOrderId() != null) {
|
|
|
nowOrder.setDeliveryStatus(DeliveryStatusEnum.ABNORMAL.status);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
nowOrder.setDeliveryStatus(DeliveryStatusEnum.CANCEL.status);
|
|
|
}
|
|
|
iOrderService.updateById(nowOrder);
|
|
|
iOrderLogService.addOrderLog(nowOrder.getId(), OrderStatusEnum.CANCEL.status);
|
|
|
// 非自己运力下单支付,退款
|
|
|
- if (!nowOrder.getPaymentType().equals(PaymentTypeEnum.LOCAL.type)&&nowOrder.getRefundMoney().compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ if (!nowOrder.getPaymentType().equals(PaymentTypeEnum.LOCAL.type) && nowOrder.getRefundMoney().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
nowOrder.setRefundMoney(nowOrder.getPayAmount());
|
|
|
- apiOrderNewService.refund(order.getOrderSn(),nowOrder.getPayAmount(),"运力平台下单失败,退还金额",nowOrder.getMemberId(),nowOrder.getMerchantId());
|
|
|
+ apiOrderNewService.refund(order.getOrderSn(), nowOrder.getPayAmount(), "运力平台下单失败,退还金额", nowOrder.getMemberId(), nowOrder.getMerchantId());
|
|
|
if (order.getCouponId() != null) {
|
|
|
- // couponDto = apiCouponService.findDetailBack(nowOrder.getCouponId().intValue());
|
|
|
+ // couponDto = apiCouponService.findDetailBack(nowOrder.getCouponId().intValue());
|
|
|
log.info("订单取消退优惠券详情:" + JSONObject.toJSONString(couponDto));
|
|
|
couponDto = new CouponDto();
|
|
|
couponDto.setId(nowOrder.getCouponId().intValue());
|
|
@@ -161,12 +162,12 @@ public class DeliveryOrderListener {
|
|
|
}
|
|
|
}
|
|
|
iOrderService.updateById(nowOrder);
|
|
|
- }else{
|
|
|
- if(order.getWaimaiOrderId()!=null&&order.getShopId()!=null){
|
|
|
+ } else {
|
|
|
+ if (order.getWaimaiOrderId() != null && order.getShopId() != null) {
|
|
|
WaimaiOrder waimaiOrder = iWaimaiOrderService.getById(order.getWaimaiOrderId());
|
|
|
DspWaimai waimai = iDspWaimaiService.getById(waimaiOrder.getWaimaiId());
|
|
|
OrderDetailDto dto = new OrderDetailDto();
|
|
|
- BeanUtils.copyProperties(order,dto);
|
|
|
+ BeanUtils.copyProperties(order, dto);
|
|
|
dto.setCaution(waimaiOrder.getCaution());
|
|
|
dto.setOutOrderId(waimaiOrder.getOutOrderId());
|
|
|
dto.setDaySeq(waimaiOrder.getDaySeq());
|
|
@@ -176,15 +177,25 @@ public class DeliveryOrderListener {
|
|
|
dto.setExceptTime(waimaiOrder.getDeliveryTime());
|
|
|
dto.setOrderTime(waimaiOrder.getOrderTime());
|
|
|
|
|
|
- redisTemplate.opsForList().leftPush("shop_received"+order.getShopId() + "", dto);
|
|
|
- redisTemplate.expire("shop_received"+order.getShopId(),30,TimeUnit.MINUTES);
|
|
|
- if(order.getMerchantId()!=null){
|
|
|
- redisTemplate.opsForList().leftPush("merchant_received"+order.getMerchantId() + "", dto);
|
|
|
- redisTemplate.expire("merchant_received"+order.getMerchantId(),30,TimeUnit.MINUTES);
|
|
|
+ redisTemplate.opsForList().leftPush("shop_received" + order.getShopId() + "", dto);
|
|
|
+ redisTemplate.expire("shop_received" + order.getShopId(), 30, TimeUnit.MINUTES);
|
|
|
+ if (order.getMerchantId() != null) {
|
|
|
+ redisTemplate.opsForList().leftPush("merchant_received" + order.getMerchantId() + "", dto);
|
|
|
+ redisTemplate.expire("merchant_received" + order.getMerchantId(), 30, TimeUnit.MINUTES);
|
|
|
+ }
|
|
|
+ WaimaiOrderRecord record = iWaimaiOrderRecordService.getOne(new QueryWrapper<WaimaiOrderRecord>().eq("waimai_order_id", waimaiOrder.getId()));
|
|
|
+ if (record == null) {
|
|
|
+ record = new WaimaiOrderRecord();
|
|
|
+ record.setShopId(waimaiOrder.getShopId());
|
|
|
+ record.setWaimaiOrderId(waimaiOrder.getId());
|
|
|
+ record.setWaimaiId(waimaiOrder.getWaimaiId());
|
|
|
+ record.setNum(1);
|
|
|
+ iWaimaiOrderRecordService.save(record);
|
|
|
+ } else {
|
|
|
+ record.setCreateTime(new Date());
|
|
|
+ iWaimaiOrderRecordService.updateById(record);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
}
|