Преглед изворни кода

美团订单状态回调接口

wangtao пре 3 година
родитељ
комит
b12651bd74

+ 5 - 6
lb-app/src/main/java/com/ydd/app/callback/controller/MeituanWaiMaiCallback.java

@@ -251,12 +251,11 @@ public class MeituanWaiMaiCallback {
     @RequestMapping("/wm/orderStatus")
     public String doWmOrderStatus(@RequestParam Map<String, String> params) {
         JSONObject res = new JSONObject();
-        if (null == params||params.size()==0) {
-            res.put("data", "OK");
-            return res.toJSONString();
-        }
-        log.info("美团外卖非接单推送订单配送状态通知:"+JSONUtil.toJson(params));
-        return "";
+
+        log.info("美团外卖非接单推送订单配送状态通知:" + JSONUtil.toJson(params));
+        res.put("code", "0");
+        res.put("message", "success");
+        return res.toJSONString();
     }
 
     /**

+ 102 - 100
lb-app/src/main/java/com/ydd/app/service/impl/ApiWaimaiServiceImpl.java

@@ -1354,6 +1354,7 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
 
     /**
      * 异常单撤回
+     *
      * @param loginId
      * @param orderId
      */
@@ -1493,18 +1494,19 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
         //    DspWaimai waimai = iDspWaimaiService.findOne(WaimaiTypeEnums.MEI_TUAN_SG.getType());
         //   ShopWaimai shopWaimai = iShopWaimaiService.findById(shop.getId(), waimai.getId());
 
-        if (config != null && StatusEnum.SHOW.status.equals(config.getOpenAutoorder())) {
-            ConfirmOrderVo confirmOrderVo = new ConfirmOrderVo();
-            confirmOrderVo.setOrderId(orderResultVo.getBillId());
-            confirmOrderVo.setAppAuthToken(shopJdHomeCode.getToken());
-            ResObject resObject = jdHomeClient.confirmOrder(confirmOrderVo, shopJdHomeCode.getAppKey(), shopJdHomeCode.getAppSecret());
-            log.info("=======京东到家订单确认结果=====" + JsonMapper.nonEmptyMapper().toJson(resObject));
+      if (config != null && StatusEnum.SHOW.status.equals(config.getOpenAutoorder())) {
+        ConfirmOrderVo confirmOrderVo = new ConfirmOrderVo();
+        confirmOrderVo.setOrderId(orderResultVo.getBillId());
+        confirmOrderVo.setAppAuthToken(shopJdHomeCode.getToken());
+        ResObject resObject = jdHomeClient.confirmOrder(confirmOrderVo, shopJdHomeCode.getAppKey(), shopJdHomeCode.getAppSecret());
+        log.info("=======京东到家订单确认结果=====" + JsonMapper.nonEmptyMapper().toJson(resObject));
 
-        }
+      }
     }
 
     /**
      * 处理京东到家商家已接单
+     *
      * @param orderVo
      */
     @SneakyThrows
@@ -1537,25 +1539,25 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
         Shop shop = iShopService.getById(shopWaimai.getShopId());
 
 
-        if (waimaiOrder == null && shopWaimai != null) {
-            waimaiOrder = new WaimaiOrder();
-            BeanUtils.copyProperties(orderInfoDTO, waimaiOrder);
-            String recipientAddress = orderInfoDTO.getBuyerFullAddress();
+      if (waimaiOrder == null && shopWaimai != null) {
+        waimaiOrder = new WaimaiOrder();
+        BeanUtils.copyProperties(orderInfoDTO, waimaiOrder);
+        String recipientAddress = orderInfoDTO.getBuyerFullAddress();
 
-            waimaiOrder.setRecipientAddress(recipientAddress);
-            waimaiOrder.setRecipientAddressDesensitization(recipientAddress);
-            waimaiOrder.setLogisticsCode(orderInfoDTO.getDeliveryCarrierNo());
-            String remark = orderInfoDTO.getOrderBuyerRemark();
+        waimaiOrder.setRecipientAddress(recipientAddress);
+        waimaiOrder.setRecipientAddressDesensitization(recipientAddress);
+        waimaiOrder.setLogisticsCode(orderInfoDTO.getDeliveryCarrierNo());
+        String remark = orderInfoDTO.getOrderBuyerRemark();
 
-            if (StringUtils.isNotBlank(remark) && remark.contains("\n")) {
-                remark = remark.replace("\n", "");
-            }
+        if (StringUtils.isNotBlank(remark) && remark.contains("\n")) {
+          remark = remark.replace("\n", "");
+        }
 
-            if (StringUtils.isNotBlank(remark) && remark.contains("[预")) {
-                remark = remark.substring(remark.indexOf("[预"), remark.indexOf("[预") + 8) + "****" + remark.substring(remark.indexOf("[预") + 12, remark.length());
-            }
+        if (StringUtils.isNotBlank(remark) && remark.contains("[预")) {
+          remark = remark.substring(remark.indexOf("[预"), remark.indexOf("[预") + 8) + "****" + remark.substring(remark.indexOf("[预") + 12, remark.length());
+        }
 
-            waimaiOrder.setCaution(remark);
+        waimaiOrder.setCaution(remark);
 
             waimaiOrder.setWaimaiId(waimai.getId());
             waimaiOrder.setShopId(shop.getId());
@@ -1577,93 +1579,93 @@ public class ApiWaimaiServiceImpl implements ApiWaimaiService {
                 waimaiOrder.setDeliveryTime(0L);
             }
 
-            waimaiOrder.setHasInvoiced(orderInfoDTO.getOrderInvoiceOpenMark() == 1 ? 1 : 0);
+        waimaiOrder.setHasInvoiced(orderInfoDTO.getOrderInvoiceOpenMark() == 1 ? 1 : 0);
 //        waimaiOrder.setLatitude(orderInfoDTO.getBuyerLng();
 //        waimaiOrder.setLongitude(orderInfoDTO.getBuyerLat());
-            // 发票具体信息
-            OrderInvoiceDTO orderInvoiceDTO = orderInfoDTO.getOrderInvoice();
-            if (orderInvoiceDTO != null) {
-                waimaiOrder.setInvoiceTitle(orderInvoiceDTO.getInvoiceTitle());
-                waimaiOrder.setTaxpayerId(orderInvoiceDTO.getInvoiceDutyNo());
-            }
+        // 发票具体信息
+        OrderInvoiceDTO orderInvoiceDTO = orderInfoDTO.getOrderInvoice();
+        if (orderInvoiceDTO != null) {
+          waimaiOrder.setInvoiceTitle(orderInvoiceDTO.getInvoiceTitle());
+          waimaiOrder.setTaxpayerId(orderInvoiceDTO.getInvoiceDutyNo());
+        }
 //        waimaiOrder.setExtras(orderInfoDTO.getDiscount().toString());
 //        waimaiOrder.setIsThirdShipping(orderVo.getIsThirdShipping());
-            waimaiOrder.setReceiptLat(orderInfoDTO.getBuyerLat().toString());
-            waimaiOrder.setReceiptLng(orderInfoDTO.getBuyerLng().toString());
-            BigDecimal originalPrice = new BigDecimal(String.valueOf(orderInfoDTO.getOrderTotalMoney()));
-            waimaiOrder.setOriginalPrice(originalPrice.divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
-            waimaiOrder.setPayType(orderInfoDTO.getOrderPayType());
+        waimaiOrder.setReceiptLat(orderInfoDTO.getBuyerLat().toString());
+        waimaiOrder.setReceiptLng(orderInfoDTO.getBuyerLng().toString());
+        BigDecimal originalPrice = new BigDecimal(String.valueOf(orderInfoDTO.getOrderTotalMoney()));
+        waimaiOrder.setOriginalPrice(originalPrice.divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
+        waimaiOrder.setPayType(orderInfoDTO.getOrderPayType());
 //      waimaiOrder.setPickType(Integer.valueOf(orderInfoDTO.getDeliveryCarrierNo()));
 //            orderVo.setWmPoiAddress(URLDecoder.decode(orderVo.getWmPoiAddress(), "utf-8"));
-            waimaiOrder.setPoiName(orderInfoDTO.getDeliveryStationName());
-            BigDecimal orderReceivableFreight = new BigDecimal(String.valueOf(orderInfoDTO.getOrderReceivableFreight()));
-            waimaiOrder.setShippingFee(orderReceivableFreight.divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
-
-            // 门店具体信息
-            jsonVo.setStoreNo(orderInfoDTO.getDeliveryStationNo());
-            StoreInfo storeInfo = jdHomeClient.selectJdHomeShop(jsonVo, shopJdHomeCode.getAppKey(), shopJdHomeCode.getAppSecret());
-            waimaiOrder.setPoiAddress(storeInfo.getStationAddress());
-            waimaiOrder.setPoiPhone(storeInfo.getPhone());
-
-            waimaiOrder.setPoiReceiveDetail(null);
-            waimaiOrder.setReceiptPrivacyPhone(null);
-            waimaiOrder.setStatus(DeliveryStatusEnum.ORDERS_TO_BE_BILLED.status);
-            waimaiOrder.setOrderType(WaimaiOrderTypeEnum.JD_HOME.getType());
-            BigDecimal totalPrice = new BigDecimal(String.valueOf(orderInfoDTO.getOrderBuyerPayableMoney()));
-            waimaiOrder.setTotalPrice(totalPrice.divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
-            waimaiOrder.setCreateTime(new Date());
-
-            BigDecimal boxFee = BigDecimal.ZERO;
-            List<OrderProductDTO> orderProductDTOS = orderInfoDTO.getProduct();
-            for (OrderProductDTO dto : orderProductDTOS) {
-                boxFee = boxFee.add(BigDecimal.valueOf(dto.getCanteenMoney()));
-            }
-            waimaiOrder.setBoxFee(boxFee);
-            waimaiOrder.setThirdShopId(shopWaimai.getThirdShopId());
-            iWaimaiOrderService.save(waimaiOrder);
-
-            //消息推送
-            //     messagePushService.waimaiMessage(shop.getId(), waimaiOrder);
-
-            //记录商品详情
-            List<WaimaiOrderDetail> detailList = new ArrayList<>();
-            if (CollectionUtils.isNotEmpty(orderInfoDTO.getProduct())) {
-                for (OrderProductDTO vo : orderInfoDTO.getProduct()) {
-                    WaimaiOrderDetail detail = new WaimaiOrderDetail();
-                    BeanUtils.copyProperties(vo, detail);
-                    detail.setAppFoodCode(vo.getSkuIdIsv());
-                    detail.setSkuId(vo.getSkuId().toString());
-                    detail.setQuantity(Long.valueOf(vo.getSkuCount()));
-                    detail.setWaimaiOrderId(waimaiOrder.getId());
-                    detail.setFoodName(vo.getSkuName());
-                    detail.setPrice(new BigDecimal(String.valueOf(vo.getSkuStorePrice())).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
-                    detail.setSpec(vo.getSkuCostumeProperty());
+        waimaiOrder.setPoiName(orderInfoDTO.getDeliveryStationName());
+        BigDecimal orderReceivableFreight = new BigDecimal(String.valueOf(orderInfoDTO.getOrderReceivableFreight()));
+        waimaiOrder.setShippingFee(orderReceivableFreight.divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
+
+        // 门店具体信息
+        jsonVo.setStoreNo(orderInfoDTO.getDeliveryStationNo());
+        StoreInfo storeInfo = jdHomeClient.selectJdHomeShop(jsonVo, shopJdHomeCode.getAppKey(), shopJdHomeCode.getAppSecret());
+        waimaiOrder.setPoiAddress(storeInfo.getStationAddress());
+        waimaiOrder.setPoiPhone(storeInfo.getPhone());
+
+        waimaiOrder.setPoiReceiveDetail(null);
+        waimaiOrder.setReceiptPrivacyPhone(null);
+        waimaiOrder.setStatus(DeliveryStatusEnum.ORDERS_TO_BE_BILLED.status);
+        waimaiOrder.setOrderType(WaimaiOrderTypeEnum.JD_HOME.getType());
+        BigDecimal totalPrice = new BigDecimal(String.valueOf(orderInfoDTO.getOrderBuyerPayableMoney()));
+        waimaiOrder.setTotalPrice(totalPrice.divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
+        waimaiOrder.setCreateTime(new Date());
+
+        BigDecimal boxFee = BigDecimal.ZERO;
+        List<OrderProductDTO> orderProductDTOS = orderInfoDTO.getProduct();
+        for (OrderProductDTO dto : orderProductDTOS) {
+          boxFee = boxFee.add(BigDecimal.valueOf(dto.getCanteenMoney()));
+        }
+        waimaiOrder.setBoxFee(boxFee);
+        waimaiOrder.setThirdShopId(shopWaimai.getThirdShopId());
+        iWaimaiOrderService.save(waimaiOrder);
+
+        //消息推送
+        //     messagePushService.waimaiMessage(shop.getId(), waimaiOrder);
+
+        //记录商品详情
+        List<WaimaiOrderDetail> detailList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(orderInfoDTO.getProduct())) {
+          for (OrderProductDTO vo : orderInfoDTO.getProduct()) {
+            WaimaiOrderDetail detail = new WaimaiOrderDetail();
+            BeanUtils.copyProperties(vo, detail);
+            detail.setAppFoodCode(vo.getSkuIdIsv());
+            detail.setSkuId(vo.getSkuId().toString());
+            detail.setQuantity(Long.valueOf(vo.getSkuCount()));
+            detail.setWaimaiOrderId(waimaiOrder.getId());
+            detail.setFoodName(vo.getSkuName());
+            detail.setPrice(new BigDecimal(String.valueOf(vo.getSkuStorePrice())).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
+            detail.setSpec(vo.getSkuCostumeProperty());
 //                    detail.setBoxNum(vo.getBoxNum().toString());
-                    detailList.add(detail);
-                    //iWaimaiOrderDetailService.save(detail);
-                }
-                iWaimaiOrderDetailService.saveBatch(detailList);
-            }
-            //自动打印外卖单
-            redisCache.redisTemplate.opsForValue().set("jd-order:" + orderInfoDTO.getOrderId() + "", JSONObject.toJSONString(orderInfoDTO), 2, TimeUnit.DAYS);
-            try {
-                //     redisCache.setNumber(shop.getId(),Integer.parseInt(orderVo.getDaySeq()));
+            detailList.add(detail);
+            //iWaimaiOrderDetailService.save(detail);
+          }
+          iWaimaiOrderDetailService.saveBatch(detailList);
+        }
+        //自动打印外卖单
+        redisCache.redisTemplate.opsForValue().set("jd-order:" + orderInfoDTO.getOrderId() + "", JSONObject.toJSONString(orderInfoDTO), 2, TimeUnit.DAYS);
+        try {
+          //     redisCache.setNumber(shop.getId(),Integer.parseInt(orderVo.getDaySeq()));
 //                autoPrintWaimai(waimaiOrder, detailList);
-                PrintOrderDto printOrderDto = JdHomeConvertPrint.convert(orderInfoDTO);
-                apiWaimaiPrintService.autoPrintWaimaiNew(printOrderDto, detailList, shop.getId(), waimaiOrder);
-            } catch (Exception e) {
-                log.error("自动打印异常!", e);
-            }
-            try {
-                //推送外卖新消息
-                messagePushService.waimaiMessage(shop.getId(), waimaiOrder);
-            } catch (Exception e) {
-                log.error("推送外卖订单消息异常,订单号:" + waimaiOrder.getOutOrderId());
-            }
-
-            //产生配送订单
-            addOrder(shop, waimaiOrder, waimai, SnCodeUtils.createSn());
+          PrintOrderDto printOrderDto = JdHomeConvertPrint.convert(orderInfoDTO);
+          apiWaimaiPrintService.autoPrintWaimaiNew(printOrderDto, detailList, shop.getId(), waimaiOrder);
+        } catch (Exception e) {
+          log.error("自动打印异常!", e);
         }
+        try {
+          //推送外卖新消息
+          messagePushService.waimaiMessage(shop.getId(), waimaiOrder);
+        } catch (Exception e) {
+          log.error("推送外卖订单消息异常,订单号:" + waimaiOrder.getOutOrderId());
+        }
+
+        //产生配送订单
+        addOrder(shop, waimaiOrder, waimai, SnCodeUtils.createSn());
+      }
     }