2 Angajamente 2ef59ee84c ... 0c0653a107

Autor SHA1 Permisiunea de a trimite mesaje. Dacă este dezactivată, utilizatorul nu va putea trimite nici un fel de mesaj Data
  wangming 0c0653a107 sm order 1 lună în urmă
  wangming 327cd1e17a sm order 1 lună în urmă

+ 31 - 20
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/OrderController.java

@@ -14,6 +14,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.gson.internal.LinkedTreeMap;
 import com.yami.shop.bean.enums.DvyType;
 import com.yami.shop.bean.enums.OrderStatus;
 import com.yami.shop.bean.model.*;
@@ -21,9 +22,10 @@ import com.yami.shop.bean.param.*;
 import com.yami.shop.bean.vo.OrderCountVo;
 import com.yami.shop.common.config.Constant;
 import com.yami.shop.common.exception.GlobalException;
+import com.yami.shop.common.util.HttpUtil;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.common.util.R;
-import com.yami.shop.dao.ExportTaskMapper;
+import com.yami.shop.config.SMConstants;
 import com.yami.shop.security.comment.dao.AppConnectMapper;
 import com.yami.shop.security.comment.model.AppConnect;
 import com.yami.shop.security.platform.util.SecurityUtils;
@@ -33,17 +35,13 @@ import com.yami.shop.utils.CullenUtils;
 import com.yami.shop.wx.service.impl.WxProviderServiceImpl;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import lombok.extern.log4j.Log4j;
 import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.format.annotation.DateTimeFormat;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -213,29 +211,42 @@ public class OrderController {
         orderParam.setUserId(order.getUserId());
 
         orderService.delivery(orderParam);
+        pushDeliveryInfo(order);
 
         for (OrderItem orderItem : orderItems) {
             productService.removeProductCacheByProdId(orderItem.getProdId());
             skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
         }
-
-        OrderSettlement settlement = orderSettlementService.getOne(new LambdaQueryWrapper<OrderSettlement>().eq(OrderSettlement::getOrderNumber, deliveryOrderParam.getOrderNumber()));
-        UserAddrOrder userAddrOrder = userAddrOrderService.getById(order.getAddrOrderId());
-        AppConnect connect = appConnectMapper.getByUserId(order.getUserId(), 1);
-        Delivery delivery = deliveryService.getById(deliveryOrderParam.getDvyId());
-        CullenUtils.validateDataThrowException(connect == null, "openid不存在..." + order.getUserId());
-        CullenUtils.validateDataThrowException(connect.getBizUserId() == null, "openid不存在..." + order.getUserId());
-        WxProviderServiceImpl.uploadShippingInfo(
-                deliveryOrderParam.getDvyFlowId(),
-                settlement.getBizPayNo(),
-                toOrderStr(orderItems),
-                userAddrOrder.getMobile(),
-                connect.getBizUserId(),
-                delivery.getDvyNo(), 1
-        );
+        if (!order.getOrderType().equals(4)){
+            OrderSettlement settlement = orderSettlementService.getOne(new LambdaQueryWrapper<OrderSettlement>().eq(OrderSettlement::getOrderNumber, deliveryOrderParam.getOrderNumber()));
+            UserAddrOrder userAddrOrder = userAddrOrderService.getById(order.getAddrOrderId());
+            AppConnect connect = appConnectMapper.getByUserId(order.getUserId(), 1);
+            Delivery delivery = deliveryService.getById(deliveryOrderParam.getDvyId());
+            CullenUtils.validateDataThrowException(connect == null, "openid不存在..." + order.getUserId());
+            CullenUtils.validateDataThrowException(connect.getBizUserId() == null, "openid不存在..." + order.getUserId());
+            WxProviderServiceImpl.uploadShippingInfo(
+                    deliveryOrderParam.getDvyFlowId(),
+                    settlement.getBizPayNo(),
+                    toOrderStr(orderItems),
+                    userAddrOrder.getMobile(),
+                    connect.getBizUserId(),
+                    delivery.getDvyNo(), 1
+            );
+        }
         return R.SUCCESS();
     }
 
+    private void pushDeliveryInfo(Order order) {
+        if (order.getOrderType().equals(4)) {
+            Map<Object, Object> map = new LinkedTreeMap<>();
+            map.put("orderNumber", order.getOrderNumber());
+            map.put("dvyId", order.getDvyId());
+            map.put("dvyFlowId", order.getDvyFlowId());
+            map.put("dvyTime", order.getDvyTime());
+            HttpUtil.post(SMConstants.SM_BASE_URL + "/api/v1/order/updateDeliveryStatus", map);
+        }
+    }
+
     /**
      * 配送订单模块
      */

+ 13 - 0
yami-shop-service/src/main/java/com/yami/shop/config/SMConstants.java

@@ -0,0 +1,13 @@
+package com.yami.shop.config;
+
+
+/**
+ * 通用常量信息
+ *
+ * @author administrator
+ */
+public class SMConstants {
+
+    public static final String SM_BASE_URL = "http://47.109.84.152:8081/smqjh-oms";
+
+}

+ 26 - 19
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java

@@ -1,39 +1,32 @@
 package com.yami.shop.service.hb.impl;
 
-import cn.hutool.core.lang.Snowflake;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.google.gson.internal.LinkedTreeMap;
 import com.yami.shop.bean.dto.hb.*;
-import com.yami.shop.bean.enums.*;
+import com.yami.shop.bean.enums.OrderStatus;
+import com.yami.shop.bean.enums.ReturnMoneyStsType;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.param.OrderRefundParam;
 import com.yami.shop.bean.vo.OrderRefundSkuVo;
-import com.yami.shop.common.config.Constant;
-import com.yami.shop.common.exception.GlobalException;
-import com.yami.shop.common.util.Arith;
-import com.yami.shop.common.util.CommonUtils;
+import com.yami.shop.common.util.HttpUtil;
 import com.yami.shop.common.util.hb.HBR;
+import com.yami.shop.config.SMConstants;
 import com.yami.shop.dao.*;
-import com.yami.shop.service.*;
+import com.yami.shop.service.OrderRefundService;
+import com.yami.shop.service.OrderService;
+import com.yami.shop.service.UserAddrOrderService;
+import com.yami.shop.service.UserService;
 import com.yami.shop.service.hb.IHBOrderService;
-import com.yami.shop.utils.CullenUtils;
 import com.yami.shop.utils.HBSignUtil;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
 
-import javax.validation.Valid;
-import java.time.Instant;
-import java.time.LocalDate;
-import java.time.ZoneId;
 import java.util.*;
-import java.util.stream.Collectors;
 
 import static com.yami.shop.common.util.HttpUtil.post;
 
@@ -62,7 +55,6 @@ public class HBOrderService implements IHBOrderService {
     private final OrderService orderService;
     private final OrderRefundSkuMapper orderRefundSkuMapper;
 
-
     public HBR addHBGoods(JSONObject hbRequest) {
         try {
             String bodyStr = hbRequest.getString("body");
@@ -195,7 +187,6 @@ public class HBOrderService implements IHBOrderService {
         }
         orderMapper.updateById(order);
 
-
         //取消订单
         if (operatorType == 60) {
             log.info("取消订单{}", channelOrderId);
@@ -280,6 +271,14 @@ public class HBOrderService implements IHBOrderService {
         if (order.getHbOrderStatus() == 80) {
             changeOrderStatus(channelOrderId, OrderStatus.SUCCESS.value());
         }
+
+        //TODO 市民请集合海博状态通知
+        if (order.getOrderType().equals(4)){
+            Map<Object, Object> map = new LinkedTreeMap<>();
+            map.put("orderNumber", channelOrderId);
+            map.put("hbOrderStatus", operatorType);
+            HttpUtil.post(SMConstants.SM_BASE_URL+"/api/v1/order/updateHbOrderStatus",map);
+        }
     }
 
     @Override
@@ -294,6 +293,15 @@ public class HBOrderService implements IHBOrderService {
         order.setDvyFlowId(body.getString("carrierNo"));
         order.setUpdateTime(new Date(changeTime));
         orderMapper.updateById(order);
+
+        //TODO 市民请集合 物流状态推送
+        if (order.getOrderType().equals(4)) {
+            Map<Object, Object> map = new LinkedTreeMap<>();
+            map.put("orderNumber", channelOrderId);
+            map.put("logisticStatus", logisticStatus);
+            map.put("dvyFlowId", body.getString("carrierNo"));
+            HttpUtil.post(SMConstants.SM_BASE_URL + "/api/v1/order/updateHbLogisticStatus", map);
+        }
     }
 
     @Override
@@ -515,5 +523,4 @@ public class HBOrderService implements IHBOrderService {
         log.info("海博查询系统订单详情返回数据:{}", JSONObject.toJSONString(createOrderRequest));
         return HBR.success(createOrderRequest);
     }
-
 }