李学强 5 месяцев назад
Родитель
Сommit
197f8b7d33

+ 61 - 0
lhb-basic/lhb-basic-api/src/main/java/com/kxs/lhb/basic/api/dto/tongyi/OrderInfoNotify.java

@@ -0,0 +1,61 @@
+package com.kxs.lhb.basic.api.dto.tongyi;
+
+import lombok.Data;
+
+/**
+ * @author lixueqiang
+ */
+@Data
+public class OrderInfoNotify {
+
+    private OrderInfo orderInfo;
+    private OrderDetail orderDetail;
+    private OrderRecvAddr orderRecvAddr;
+    private OrderLogistics orderLogistics;
+
+
+    @Data
+    public static class OrderInfo {
+
+        private String orderId;
+        private String orderType;
+        private String orderStatus;
+        private String orderActProcState;
+        private String orderActId;
+        private String orderPreferentialSum;
+        private String orderPaySum;
+        private String createTime;
+        private String finishTime;
+        private String userId;
+        private String userName;
+        private String payStatus;
+        private String payWay;
+        private String phone;
+        private String agentPrivateCode;
+    }
+
+    @Data
+    public static class OrderDetail{
+        private String goodsName;
+        private String goodsDesc;
+    }
+
+    @Data
+    public static class  OrderRecvAddr{
+        private String receiveName;
+        private String receiveCountry;
+        private String receiveProvince;
+        private String receiveCity;
+        private String receiveAddress;
+        private String receiveMobile;
+        private String receiveCounty;
+    }
+
+    @Data
+    public static class OrderLogistics{
+        private String logisticsName;
+        private String logisticsNum;
+
+    }
+}
+

+ 28 - 0
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/controller/cusmoter/callback/CallbackController.java

@@ -0,0 +1,28 @@
+package com.kxs.lhb.basic.biz.controller.cusmoter.callback;
+
+import com.kxs.common.core.util.R;
+import com.kxs.common.security.annotation.Inner;
+import com.kxs.lhb.basic.api.dto.tongyi.OrderInfoNotify;
+import com.kxs.lhb.basic.biz.service.LhbOrderService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author lixueqiang
+ */
+@RestController
+@RequestMapping("callback")
+@RequiredArgsConstructor
+public class CallbackController {
+
+    private final LhbOrderService orderService;
+
+    @Inner(value = false)
+    @RequestMapping("/lhb/notify")
+    public R notify(@RequestBody OrderInfoNotify param) {
+
+        return R.ok(orderService.tongyiNotify(param));
+    }
+}

+ 3 - 0
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/LhbOrderService.java

@@ -2,6 +2,7 @@ package com.kxs.lhb.basic.biz.service;
 
 import com.github.yulichang.base.MPJBaseService;
 import com.kxs.lhb.basic.api.constant.enums.NotifyStatusEnum;
+import com.kxs.lhb.basic.api.dto.tongyi.OrderInfoNotify;
 import com.kxs.lhb.basic.api.model.LhbOrder;
 import com.kxs.lhb.basic.api.vo.admin.sysOrder.QueryLogisticsVO;
 
@@ -52,5 +53,7 @@ public interface LhbOrderService extends MPJBaseService<LhbOrder> {
     LhbOrder getOrderSn(String orderSn);
 
     void sendToOrder(LhbOrder order, NotifyStatusEnum notifyStatusEnum);
+
+    Object tongyiNotify(OrderInfoNotify param);
 }
 

+ 43 - 0
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/impl/LhbOrderServiceImpl.java

@@ -22,8 +22,10 @@ import com.kxs.common.pay.factory.PaymentFactory;
 import com.kxs.common.pay.model.*;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.lhb.basic.api.amqp.RabbitOrderTimeoutQueueMQ;
+import com.kxs.lhb.basic.api.constant.enums.ChannelCodeEnum;
 import com.kxs.lhb.basic.api.constant.enums.NotifyStatusEnum;
 import com.kxs.lhb.basic.api.constant.enums.OrderStatusEnum;
+import com.kxs.lhb.basic.api.dto.tongyi.OrderInfoNotify;
 import com.kxs.lhb.basic.api.dto.tongyi.QueryOrderReq;
 import com.kxs.lhb.basic.api.model.*;
 import com.kxs.lhb.basic.api.vo.admin.sysOrder.QueryLogisticsVO;
@@ -416,6 +418,47 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
         notifyService.bindPush(bindNotify, order.getIsvNo());
     }
 
+    @Override
+    public Object tongyiNotify(OrderInfoNotify param) {
+
+        LhbOrder order = getOrderSn(param.getOrderInfo().getOrderId());
+        if(order == null){
+            order = new LhbOrder();
+            order.setOrderSn(param.getOrderInfo().getOrderId());
+            order.setAddress(param.getOrderRecvAddr().getReceiveAddress());
+            order.setArea(param.getOrderRecvAddr().getReceiveProvince() + StrUtil.COMMA + param.getOrderRecvAddr().getReceiveCity() + StrUtil.COMMA + param.getOrderRecvAddr().getReceiveCountry());
+            order.setContMobile(param.getOrderRecvAddr().getReceiveMobile());
+            order.setCustName(param.getOrderInfo().getUserName());
+            order.setIfCode(ChannelCodeEnum.TY.getCode());
+            order.setOutOrderSn(param.getOrderInfo().getOrderId());
+            order.setMakeMobile(param.getOrderInfo().getPhone());
+            String[] split = param.getOrderInfo().getAgentPrivateCode().split("KXS");
+            order.setIsvNo(split[0]);
+            order.setEmployNum(split[1]);
+            order.setPackageName(param.getOrderDetail().getGoodsName());
+            order.setExpressNo(param.getOrderLogistics().getLogisticsNum());
+            order.setStatus(Integer.valueOf(param.getOrderInfo().getPayStatus()));
+            order.setOutStatus(Integer.valueOf(param.getOrderInfo().getOrderStatus()));
+        }
+        order.insertOrUpdate();
+        //更新状态
+        if(order.getOutStatus() == 2){
+            sendToOrder(order,  NotifyStatusEnum.ACT);
+        }
+        if(order.getOutStatus() == 1 || order.getOutStatus() == 4){
+            sendToOrder(order,  NotifyStatusEnum.DISTRIBUTION);
+        }
+        if(order.getOutStatus() == 3 || order.getOutStatus() == 6){
+            sendToOrder(order, NotifyStatusEnum.CANCEL);
+            order.setStatus(OrderStatusEnum.CANCEL.getCode());
+        }
+        order.insertOrUpdate();
+        return "{\n" +
+                "    \"respDesc\": \"调用成功\",\n" +
+                "    \"respCode\": \"000000\"\n" +
+                "}";
+    }
+
 
 }