|
@@ -123,13 +123,13 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
log.info("订单不存在");
|
|
|
return;
|
|
|
}
|
|
|
- log.info("=====处理回调的订单----" + JSONObject.toJSONString(order));
|
|
|
+ // log.info("=====处理回调的订单----" + JSONObject.toJSONString(order));
|
|
|
log.info("=====处理回调的订单状态----:" + order.getDeliveryStatus());
|
|
|
|
|
|
OrderDelivery orderDelivery = iOrderDeliveryService.getOne(new QueryWrapper<OrderDelivery>().eq("child_order_sn", dto.getOrderSn()));
|
|
|
switch (dto.getOrderStatus()) {
|
|
|
case 1:
|
|
|
- if (order.getDeliveryStatus().intValue() > DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status.intValue()&&!delivery.getId().equals(order.getDeliveryId())) {
|
|
|
+ if (order.getDeliveryStatus().intValue() > DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status.intValue() && !delivery.getId().equals(order.getDeliveryId())) {
|
|
|
//订单已经接单,发单的运力需取消
|
|
|
Long size = redisTemplate.opsForList().size(order.getOrderSn() + "_cancel");
|
|
|
for (int i = 0; i < size.intValue(); i++) {
|
|
@@ -138,16 +138,16 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
- if (order.getDeliveryStatus().intValue()>=DeliveryStatusEnum.TO_BE_DELIVERED.status.intValue()&&delivery.getId().equals(order.getDeliveryId())) {
|
|
|
+ if (order.getDeliveryStatus().intValue() >= DeliveryStatusEnum.TO_BE_DELIVERED.status.intValue() && delivery.getId().equals(order.getDeliveryId())) {
|
|
|
//转单
|
|
|
order.setDeliveryStatus(dto.getOrderStatus());
|
|
|
order.setShipperName("");
|
|
|
order.setShipperPhone("");
|
|
|
- iOrderLogService.remove(new QueryWrapper<OrderLog>().eq("order_id",order.getId()).eq("order_status",DeliveryStatusEnum.TO_BE_DELIVERED.status));
|
|
|
- iOrderLogService.remove(new QueryWrapper<OrderLog>().eq("order_id",order.getId()).eq("order_status",DeliveryStatusEnum.IN_DELIVERY.status));
|
|
|
+ iOrderLogService.remove(new QueryWrapper<OrderLog>().eq("order_id", order.getId()).eq("order_status", DeliveryStatusEnum.TO_BE_DELIVERED.status));
|
|
|
+ iOrderLogService.remove(new QueryWrapper<OrderLog>().eq("order_id", order.getId()).eq("order_status", DeliveryStatusEnum.IN_DELIVERY.status));
|
|
|
}
|
|
|
|
|
|
- if (DeliveryStatusEnum.CANCEL.status.equals(order.getDeliveryStatus())||DeliveryStatusEnum.ABNORMAL.status.equals(order.getDeliveryStatus())) {
|
|
|
+ if (DeliveryStatusEnum.CANCEL.status.equals(order.getDeliveryStatus()) || DeliveryStatusEnum.ABNORMAL.status.equals(order.getDeliveryStatus())) {
|
|
|
if (redisTemplate.hasKey(dto.getParentOrderSn() + "_cancel")) {
|
|
|
Long size = redisTemplate.opsForList().size(order.getOrderSn() + "_cancel");
|
|
|
for (int i = 0; i < size.intValue(); i++) {
|
|
@@ -168,7 +168,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
&& DeliveryStatusEnum.CANCEL.status.equals(orderDelivery.getDeliveryStatus())) {
|
|
|
return;
|
|
|
}
|
|
|
- if ((DeliveryStatusEnum.CANCEL.status.equals(order.getDeliveryStatus())||DeliveryStatusEnum.ABNORMAL.status.equals(order.getDeliveryStatus()))
|
|
|
+ if ((DeliveryStatusEnum.CANCEL.status.equals(order.getDeliveryStatus()) || DeliveryStatusEnum.ABNORMAL.status.equals(order.getDeliveryStatus()))
|
|
|
&& DeliveryStatusEnum.CANCEL.status.equals(orderDelivery.getDeliveryStatus())) {
|
|
|
return;
|
|
|
}
|
|
@@ -180,18 +180,18 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
order.setShipperLat(new BigDecimal(receiverGps[0] + ""));
|
|
|
order.setShipperLng(new BigDecimal(receiverGps[1] + ""));
|
|
|
}
|
|
|
- if(order.getDeliveryStatus().intValue()>0){
|
|
|
+ if (order.getDeliveryStatus().intValue() > 0) {
|
|
|
order.setDeliveryStatus(dto.getOrderStatus());
|
|
|
}
|
|
|
|
|
|
order.setUpdateTime(new Date());
|
|
|
- if(order.getOrderDistance()!=null){
|
|
|
+ if (order.getOrderDistance() != null) {
|
|
|
String startLat = order.getSendLng() + "," + order.getSendLat();
|
|
|
String endLat = order.getReceiptLng() + "," + order.getReceiptLat();
|
|
|
|
|
|
- if (DeliveryTypeEnums.HUO_LA_LA.getType().equals(delivery.getType())&&orderDelivery!=null){
|
|
|
+ if (DeliveryTypeEnums.HUO_LA_LA.getType().equals(delivery.getType()) && orderDelivery != null) {
|
|
|
order.setOrderDistance(BigDecimal.valueOf(AddressLngLatExchanger.getDriveDistince(startLat, endLat)));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
order.setOrderDistance(BigDecimal.valueOf(AddressLngLatExchanger.getDistance(startLat, endLat)));
|
|
|
}
|
|
|
}
|
|
@@ -206,7 +206,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
break;
|
|
|
case 4:
|
|
|
order.setDeliveryStatus(dto.getOrderStatus());
|
|
|
- redisTemplate.delete(order.getId()+"sync_rider");
|
|
|
+ redisTemplate.delete(order.getId() + "sync_rider");
|
|
|
break;
|
|
|
case -1:
|
|
|
if (order.getDeliveryStatus().intValue() > DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status.intValue()
|
|
@@ -229,15 +229,15 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
return;
|
|
|
}*/
|
|
|
int count = iOrderDeliveryService.count(new QueryWrapper<OrderDelivery>().eq("order_sn", order.getOrderSn())
|
|
|
- .ne("delivery_status", DeliveryStatusEnum.CANCEL.status).ne("out_trade_no", -1);
|
|
|
- if (count > 0) {
|
|
|
+ .ne("delivery_status", DeliveryStatusEnum.CANCEL.status).ne("out_trade_no", -1));
|
|
|
+ if (count > 0 ) {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
if (DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status.equals(order.getDeliveryStatus()) && DeliveryStatusEnum.CANCEL.status.equals(dto.getOrderStatus())) {
|
|
|
order.setCancelReason(dto.getCancelReason());
|
|
|
order.setCancelType(OrderCancelTypeEnum.PLATFORM_CANCEL.type);
|
|
|
- iOrderLogService.addOrderLog(order.getId(),DeliveryStatusEnum.CANCEL.status);
|
|
|
+ iOrderLogService.addOrderLog(order.getId(), DeliveryStatusEnum.CANCEL.status);
|
|
|
}
|
|
|
if (DeliveryStatusEnum.CANCEL.status.equals(dto.getOrderStatus()) && order.getDeliveryStatus().intValue() > DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status.intValue()) {
|
|
|
order.setCancelReason(dto.getCancelReason());
|
|
@@ -248,12 +248,12 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
order.setDeliveryStatus(OrderStatusEnum.ABNORMAL.status);
|
|
|
iOrderLogService.addOrderLog(order.getId(), DeliveryStatusEnum.ABNORMAL.status);
|
|
|
}
|
|
|
- if (order.getWaimaiOrderId() == null){
|
|
|
+ if (order.getWaimaiOrderId() == null) {
|
|
|
order.setDeliveryStatus(dto.getOrderStatus());
|
|
|
}
|
|
|
//处理退款
|
|
|
- handRefund(order, orderDelivery, dto,delivery);
|
|
|
- redisTemplate.delete(order.getId()+"sync_rider");
|
|
|
+ handRefund(order, orderDelivery, dto, delivery);
|
|
|
+ redisTemplate.delete(order.getId() + "sync_rider");
|
|
|
// order.setDeliveryStatus(dto.getOrderStatus());
|
|
|
break;
|
|
|
}
|
|
@@ -363,17 +363,17 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
|
|
|
|
|
|
public void syncWaimaiStatus(WaimaiOrder waimaiOrder, Order order, CallBackOrderDto dto, DspDelivery delivery, OrderDelivery orderDelivery) {
|
|
|
- // if (dto.getOrderStatus() > DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status || DeliveryStatusEnum.ABNORMAL.status.equals(order.getDeliveryStatus())) {
|
|
|
- if (dto.getOrderStatus() > DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status ) {
|
|
|
+ // if (dto.getOrderStatus() > DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status || DeliveryStatusEnum.ABNORMAL.status.equals(order.getDeliveryStatus())) {
|
|
|
+ if (dto.getOrderStatus() > DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status) {
|
|
|
waimaiOrder = iWaimaiOrderService.findById(order.getWaimaiOrderId());
|
|
|
DspWaimai waimai = iDspWaimaiService.getById(waimaiOrder.getWaimaiId());
|
|
|
- // ShopWaimai shopWaimai = iShopWaimaiService.findById(waimaiOrder.getShopId(), waimai.getId());
|
|
|
- ShopWaimai shopWaimai = iShopWaimaiService.findByThirdShopId(waimaiOrder.getShopId(),waimai.getId(),waimaiOrder.getThirdShopId());
|
|
|
+ // ShopWaimai shopWaimai = iShopWaimaiService.findById(waimaiOrder.getShopId(), waimai.getId());
|
|
|
+ ShopWaimai shopWaimai = iShopWaimaiService.findByThirdShopId(waimaiOrder.getShopId(), waimai.getId(), waimaiOrder.getThirdShopId());
|
|
|
|
|
|
// if(shopWaimai.getBusinessId()!=null&&shopWaimai.getBusinessId().intValue()==16){
|
|
|
// return;
|
|
|
// }
|
|
|
- if(DeliveryTypeEnums.MEI_TUAN_ZB.getType().equals(delivery.getType())||DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType().equals(delivery.getType())){
|
|
|
+ if (DeliveryTypeEnums.MEI_TUAN_ZB.getType().equals(delivery.getType()) || DeliveryTypeEnums.MEI_TUAN_SG_ZB.getType().equals(delivery.getType())) {
|
|
|
return;
|
|
|
}
|
|
|
if (!DeliveryStatusEnum.CANCEL.status.equals(dto.getOrderStatus())) {
|
|
@@ -412,6 +412,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
if (waimai.getType().equals(WaimaiTypeEnums.JD_HOME.getType())) {
|
|
|
// 获取京东到家相关配置
|
|
|
ShopJdHomeCode shopJdHome = iShopJdHomeCodeService.getById(shopWaimai.getBusinessId());
|
|
|
+
|
|
|
vo.setAppAuthToken(shopJdHome.getToken());
|
|
|
vo.setJdAppKey(shopJdHome.getAppKey());
|
|
|
vo.setJdAppSecret(shopJdHome.getAppSecret());
|
|
@@ -445,7 +446,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
shanTangOrderDto.setOutOrderId(waimaiOrder.getOutOrderId());
|
|
|
shanTangOrderDto.setDeliveryStatus(dto.getOrderStatus());
|
|
|
shanTangOrderDto.setShipperName(order.getShipperName());
|
|
|
- shanTangOrderDto.setBreachFee(order.getBreachFee()+"");
|
|
|
+ shanTangOrderDto.setBreachFee(order.getBreachFee() + "");
|
|
|
shanTangOrderDto.setTimeStamp(System.currentTimeMillis());
|
|
|
shanTangOrderDto.setAppId(appConfig.getShantangAppId());
|
|
|
String json = JsonMapper.nonNullMapper().toJson(shanTangOrderDto);
|
|
@@ -468,11 +469,11 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
vo.setOrderId(waimaiOrder.getOutOrderId());
|
|
|
log.info("《===外卖订单配送状态同步请求参数===》" + JsonMapper.nonEmptyMapper().toJson(vo));
|
|
|
ResObject res = waimaiClient.syncRiderPositionStatus(vo);
|
|
|
- if (vo.getLongitude() != null && vo.getLongitude().compareTo(BigDecimal.ZERO) > 0 &&!redisTemplate.hasKey(order.getId()+"sync_rider")
|
|
|
- &&!order.getDeliveryStatus().equals(DeliveryStatusEnum.FINISH.status)){
|
|
|
- redisTemplate.opsForValue().set(order.getId()+"sync_rider",1,8,TimeUnit.HOURS);
|
|
|
+ if (vo.getLongitude() != null && vo.getLongitude().compareTo(BigDecimal.ZERO) > 0 && !redisTemplate.hasKey(order.getId() + "sync_rider")
|
|
|
+ && !order.getDeliveryStatus().equals(DeliveryStatusEnum.FINISH.status)) {
|
|
|
+ redisTemplate.opsForValue().set(order.getId() + "sync_rider", 1, 8, TimeUnit.HOURS);
|
|
|
log.info("《===========================》");
|
|
|
- applicationContext.publishEvent(new SyncRiderEvent(order, vo,orderDelivery,delivery));
|
|
|
+ applicationContext.publishEvent(new SyncRiderEvent(order, vo, orderDelivery, delivery));
|
|
|
}
|
|
|
|
|
|
log.info("《===外卖订单配送状态同步结果===》" + JsonMapper.nonEmptyMapper().toJson(res));
|
|
@@ -490,7 +491,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
messagePushService.riderReceiveOrderMessage(order.getMemberId(), "您的订单已被骑手接单,请及时备货", "您的订单编号" + order.getOrderSn() + "已被骑手接单,配送平台:" + order.getDeliveryName() + ",请留意订单状态", order.getId(), orderType);
|
|
|
}
|
|
|
if ((DeliveryStatusEnum.CANCEL.status.equals(order.getDeliveryStatus()) || DeliveryStatusEnum.ABNORMAL.status.equals(order.getDeliveryStatus()))
|
|
|
- && !DeliveryStatusEnum.CANCEL.status.equals(waimaiOrder.getStatus())&&!OrderCancelTypeEnum.MERCHANT_CANCEL.type.equals(order.getCancelType())) {
|
|
|
+ && !DeliveryStatusEnum.CANCEL.status.equals(waimaiOrder.getStatus()) && !OrderCancelTypeEnum.MERCHANT_CANCEL.type.equals(order.getCancelType())) {
|
|
|
if (!redisTemplate.hasKey(order.getId() + "_lock") && !redisTemplate.hasKey(waimaiOrder.getOutOrderId() + "_lock")) {//已经发送了不在发送取消通知
|
|
|
String cancelReason = order.getCancelReason();
|
|
|
if (StringUtils.isBlank(cancelReason)) {
|
|
@@ -498,7 +499,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
}
|
|
|
String content = "您的订单编号" + order.getOrderSn() + "已被取消,取消原因:" + cancelReason + ",欢迎您再次使用猎豹AI聚合配送";
|
|
|
messagePushService.riderCancelOrderMessage(order.getMemberId(), "您的订单已取消,请及时处理", content, order.getId(), orderType, "rider-cancel.caf");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
log.info("已经推送取消了,不在推送");
|
|
|
}
|
|
|
}
|
|
@@ -588,7 +589,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
|
|
|
//更新订单
|
|
|
// if (!DeliveryTypeEnums.MEI_TUAN.getType().equals(dto.getDeliveryType()) && DeliveryTypeEnums.AIPT.getType().equals(dto.getDeliveryType())) {
|
|
|
- order.setPayAmount(orderDelivery.getPayAmount());
|
|
|
+ order.setPayAmount(orderDelivery.getPayAmount());
|
|
|
// }
|
|
|
// else {
|
|
|
// if (order.getPayAmount().compareTo(orderDelivery.getPayAmount()) == 1) {
|
|
@@ -619,7 +620,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
// 绑定三方收取的服务费
|
|
|
if (orderDelivery.getIsMine().equals(DeliveryPayEnum.MINE.status) && order.getDadaDspType() == null) {
|
|
|
BigDecimal realFee = BigDecimal.ZERO;
|
|
|
- MerchantDeliveryFee deliveryFee = iMerchantDeliveryFeeService.getByMerchantAndDeliveryId(order.getMerchantId(),delivery.getId());
|
|
|
+ MerchantDeliveryFee deliveryFee = iMerchantDeliveryFeeService.getByMerchantAndDeliveryId(order.getMerchantId(), delivery.getId());
|
|
|
if (deliveryFee != null) {
|
|
|
realFee = deliveryFee.getAmount();
|
|
|
}
|
|
@@ -640,11 +641,11 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
//扣款
|
|
|
iMemberService.updateAmount(member.getId(), realFee.negate());
|
|
|
//扣款记录
|
|
|
- iMemberBalanceLogService.saveLog(order.getMemberId(), LogTypeEnum.REDUCE.type, "绑定运力支付服务费", LogSourceEnum.CONSUMPTION.status, realFee, member.getMerchantId(),order.getId(), order.getPaymentType());
|
|
|
+ iMemberBalanceLogService.saveLog(order.getMemberId(), LogTypeEnum.REDUCE.type, "绑定运力支付服务费", LogSourceEnum.CONSUMPTION.status, realFee, member.getMerchantId(), order.getId(), order.getPaymentType());
|
|
|
}
|
|
|
}
|
|
|
iOrderDeliveryService.updateById(orderDelivery);
|
|
|
- // iOrderService.updateById(order);
|
|
|
+ // iOrderService.updateById(order);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -666,8 +667,8 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
if (dto.getDeductAmount() != null) {
|
|
|
deductFee = dto.getDeductAmount();
|
|
|
}
|
|
|
- if(redisCache.hasKey("deuctFee_"+order.getOrderSn())){
|
|
|
- BigDecimal result = redisCache.getCacheObject("deuctFee_"+order.getOrderSn());
|
|
|
+ if (redisCache.hasKey("deuctFee_" + order.getOrderSn())) {
|
|
|
+ BigDecimal result = redisCache.getCacheObject("deuctFee_" + order.getOrderSn());
|
|
|
if (result != null) {
|
|
|
deductFee = result;
|
|
|
order.setBreachFee(deductFee);
|
|
@@ -677,7 +678,7 @@ public class ApiOrderBackServiceImpl implements ApiOrderBackService {
|
|
|
order.setRefundMoney(order.getPayAmount().subtract(deductFee));
|
|
|
List<OrderTip> orderTips = iOrderTipService.list(new QueryWrapper<OrderTip>().eq("order_no", order.getOrderSn()).eq("status", PayStatusEnum.PAYED.status));
|
|
|
BigDecimal refundMoney = order.getPayAmount().subtract(deductFee);
|
|
|
- //DspDelivery delivery1 = iDspDeliveryService.getById(order.getDeliveryId());
|
|
|
+ //DspDelivery delivery1 = iDspDeliveryService.getById(order.getDeliveryId());
|
|
|
if (orderDelivery != null && (DeliveryTypeEnums.MEI_TUAN.getType().equals(delivery.getType()) || DeliveryTypeEnums.AIPT.getType().equals(delivery.getType()))) {
|
|
|
log.info("美团或爱跑腿接单不退小费");
|
|
|
} else if (orderDelivery != null && orderDelivery.getIsMine() == 1) {
|