wangtao 3 лет назад
Родитель
Сommit
55299c5834

+ 38 - 37
lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderBackServiceImpl.java

@@ -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) {