Răsfoiți Sursa

fixed 小程序上传发货信息功能

fushengqian 8 luni în urmă
părinte
comite
d1c323bd5d

+ 12 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/WeixinServiceImpl.java

@@ -18,6 +18,7 @@ import com.fuint.common.service.*;
 import com.fuint.common.util.*;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.ResponseObject;
+import com.fuint.repository.mapper.MtUploadShippingLogMapper;
 import com.fuint.repository.model.*;
 import com.fuint.utils.QRCodeUtil;
 import com.fuint.utils.StringUtil;
@@ -64,6 +65,8 @@ public class WeixinServiceImpl implements WeixinService {
 
     private static final Logger logger = LoggerFactory.getLogger(WeixinServiceImpl.class);
 
+    private MtUploadShippingLogMapper uploadShippingLogMapper;
+
     /**
      * 订单服务接口
      * */
@@ -1019,7 +1022,7 @@ public class WeixinServiceImpl implements WeixinService {
             throw new BusinessCheckException("上传发货信息失败,会员的openId不能为空!");
         }
         // 是否是微信小程序订单 && 微信支付
-        if (orderInfo != null && !orderInfo.getPlatform().equals(PlatformTypeEnum.MP_WEIXIN.getCode()) || !orderInfo.getPayType().equals(PayTypeEnum.JSAPI.name())) {
+        if (orderInfo != null && orderInfo.getPlatform().equals(PlatformTypeEnum.MP_WEIXIN.getCode()) || orderInfo.getPayType().equals(PayTypeEnum.JSAPI.name())) {
             String url = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=" + getAccessToken(orderInfo.getMerchantId(), true, true);
 
             // 获取微信支付配置
@@ -1065,8 +1068,16 @@ public class WeixinServiceImpl implements WeixinService {
                 String response = HttpRESTDataClient.requestPostBody(url, reqJson);
                 logger.info("微信上传发货信息接口参数:{},返回:{}", reqJson, response);
                 JSONObject data = (JSONObject) JSONObject.parse(response);
+
                 if (data.get("errcode").toString().equals("0")) {
                     logger.info("微信上传发货信息接口成功,订单号:", orderSn);
+                    MtUploadShippingLog mtUploadShippingLog = new MtUploadShippingLog();
+                    mtUploadShippingLog.setMerchantId(orderInfo.getMerchantId());
+                    mtUploadShippingLog.setStoreId(orderInfo.getStoreId());
+                    mtUploadShippingLog.setOrderId(orderInfo.getId());
+                    mtUploadShippingLog.setOrderSn(orderSn);
+                    mtUploadShippingLog.setStatus(StatusEnum.ENABLED.getKey());
+                    uploadShippingLogMapper.insert(mtUploadShippingLog);
                 } else {
                     logger.error("微信上传发货信息接口失败,订单号:", orderSn);
                 }

+ 6 - 9
fuint-application/src/main/java/com/fuint/module/schedule/UploadShippingInfoJob.java

@@ -1,10 +1,10 @@
 package com.fuint.module.schedule;
 
 import com.fuint.common.enums.PayStatusEnum;
-import com.fuint.common.service.OrderService;
 import com.fuint.common.service.WeixinService;
 import com.fuint.framework.exception.BusinessCheckException;
-import com.fuint.repository.model.MtOrder;
+import com.fuint.repository.bean.UploadShippingLogBean;
+import com.fuint.repository.mapper.MtUploadShippingLogMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -32,11 +32,8 @@ public class UploadShippingInfoJob {
     @Autowired
     private Environment environment;
 
-    /**
-     * 订单服务接口
-     */
     @Autowired(required = false)
-    private OrderService orderService;
+    private MtUploadShippingLogMapper uploadShippingLogMapper;
 
     /**
      * 微信服务接口
@@ -52,10 +49,10 @@ public class UploadShippingInfoJob {
             logger.info("uploadShippingInfoJobStart!!!");
             Map<String, Object> param = new HashMap<>();
             param.put("pay_status", PayStatusEnum.SUCCESS.getValue());
-            List<MtOrder> dataList = orderService.getOrderListByParams(param);
+            List<UploadShippingLogBean> dataList = uploadShippingLogMapper.getUploadShippingLogList(0);
             if (dataList.size() > 0) {
-                for (MtOrder mtOrder : dataList) {
-                     weixinService.uploadShippingInfo(mtOrder.getOrderSn());
+                for (UploadShippingLogBean bean : dataList) {
+                     weixinService.uploadShippingInfo(bean.getOrderSn());
                 }
             }
             logger.info("uploadShippingInfoJobEnd!!!");

+ 38 - 0
fuint-repository/src/main/java/com/fuint/repository/bean/UploadShippingLogBean.java

@@ -0,0 +1,38 @@
+package com.fuint.repository.bean;
+
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 微信小程序上传发货信息对象
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Data
+@ApiModel(value = "微信小程序上传发货信息对象", description = "微信小程序上传发货信息对象")
+public class UploadShippingLogBean implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单ID
+     */
+    @ApiModelProperty("订单ID")
+    private Integer id;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty("订单号")
+    private String orderSn;
+
+    /**
+     * 状态
+     */
+    @ApiModelProperty("上传状态,A成功;B失败")
+    private String status;
+
+}

+ 6 - 1
fuint-repository/src/main/java/com/fuint/repository/mapper/MtUploadShippingLogMapper.java

@@ -1,7 +1,10 @@
 package com.fuint.repository.mapper;
 
+import com.fuint.repository.bean.UploadShippingLogBean;
 import com.fuint.repository.model.MtUploadShippingLog;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
 
 /**
  * 微信小程序上传发货信息 Mapper 接口
@@ -11,4 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface MtUploadShippingLogMapper extends BaseMapper<MtUploadShippingLog> {
 
-}
+   List<UploadShippingLogBean> getUploadShippingLogList(@Param("merchantId") Integer merchantId);
+
+}

+ 14 - 2
fuint-repository/src/main/resources/mapper/MtUploadShippingLogMapper.xml

@@ -1,5 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.fuint.repository.mapper.MtUploadShippingLogMapper}">
-
+<mapper namespace="com.fuint.repository.mapper.MtUploadShippingLogMapper">
+    <select id="getUploadShippingLogList" resultType="com.fuint.repository.bean.UploadShippingLogBean">
+        SELECT o.ID,o.ORDER_SN,u.`STATUS` FROM mt_order o LEFT JOIN mt_upload_shipping_log u ON o.ID = u.`ORDER_ID`
+        WHERE o.PAY_STATUS = 'B'
+        AND u.`STATUS` IS NULL
+        AND o.`PAY_TYPE` = 'JSAPI'
+        AND o.PLATFORM = 'MP-WEIXIN'
+        AND o.EXPRESS_INFO != ''
+        <if test="merchantId != null and merchantId != '' and merchantId > 0">
+            AND o.MERCHANT_ID = #{merchantId}
+        </if>
+        ORDER BY o.ID DESC
+        LIMIT 10
+    </select>
 </mapper>