Browse Source

新增微信查询订单定时器接口

hyq 7 years ago
parent
commit
f2b5b441d9

+ 1 - 1
src/main/java/com/emato/cuspay/biz/merch/MerchantNoticeBiz.java

@@ -43,7 +43,7 @@ public class MerchantNoticeBiz implements CuspayBiz{
         List<MerchNoti> notis = merchNotiMapper.selectMerchNotis(limit);
 
         if (notis == null || notis.isEmpty()) {
-            logger.info("没有商户通知数据");
+            logger.info("未查到商户通知数据");
             return;
         }
 

+ 1 - 1
src/main/java/com/emato/cuspay/biz/wx/WxCusDeclareBiz.java

@@ -91,7 +91,7 @@ public class WxCusDeclareBiz extends AbstractCusDeclareBiz implements CuspayBiz
         try {
             wxCbPayDocs = wxCbPayDocService.selectBeDeclaredData(limit);
             if (wxCbPayDocs == null || wxCbPayDocs.isEmpty()) {
-                logger.info("没有待申报微信推海关的支付数据");
+                logger.info("未查到待申报微信推海关的支付数据");
                 return;
             }
         } catch (Exception e) {

+ 7 - 6
src/main/java/com/emato/cuspay/biz/wx/WxCusDeclareQueryBiz.java

@@ -96,6 +96,7 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
         List<WxPayError> errorList = Lists.newArrayList();
 
         wxCbPayDocs.forEach(wxCbPayDoc -> {
+            WxQuerySuccessResponseMsgDto querySuccessResponseDto = new WxQuerySuccessResponseMsgDto();
             //获取商户信息 从缓存中去  缓存不存在 从数据库重取
             MerchPayCfg merchPayCfg = getMerchPayCfgCache(wxCbPayDoc.getMerchSn());
 
@@ -146,7 +147,7 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
                 }
             } catch (IOException e) {
                 logger.error("数据请求异常,查询订单请求数据为xml{}", xml, e);
-                WxPayError wxPayError = createWxPayError(wxCbPayDoc);
+                WxPayError wxPayError = createWxPayError(wxCbPayDoc, querySuccessResponseDto);
                 errorList.add(wxPayError);
             }
             MerchNoti merchNoti = new MerchNoti();
@@ -181,7 +182,7 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
                         int msgCount = wxQueryResponseMsg.getCount();
                         for (int i = 0; i < msgCount; i++){
                             //解析xml获取WxQuerySuccessResponseMsgDto
-                            WxQuerySuccessResponseMsgDto querySuccessResponseDto = ReaderXmlForDOM4J.parse(result, i);
+                            querySuccessResponseDto = ReaderXmlForDOM4J.parse(result, i);
                             wxCbPayDoc.setSubOrderNo(querySuccessResponseDto.getSubOrderNo());
                             wxCbPayDoc.setMchCustomsNo(querySuccessResponseDto.getMchCustomsNo());
                             wxCbPayDoc.setCustoms(querySuccessResponseDto.getCustoms());
@@ -277,7 +278,7 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
                 }
             } catch (Exception e) {
                 logger.error("操作商户通知数据异常", e);
-                WxPayError wxPayError = createWxPayError(wxCbPayDoc);
+                WxPayError wxPayError = createWxPayError(wxCbPayDoc, querySuccessResponseDto);
                 wxPayError.setErrMsg("操作商户通知数据异常");
                 errorList.add(wxPayError);
             }
@@ -302,7 +303,7 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
      * @param wxCbPayDoc
      * @return
      */
-    private WxPayError createWxPayError(WxCbPayDoc wxCbPayDoc) {
+    private WxPayError createWxPayError(WxCbPayDoc wxCbPayDoc, WxQuerySuccessResponseMsgDto querySuccessDto) {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         WxPayError wxPayError = new WxPayError();
         wxPayError.setErrorSn(TablePrimaryKeyPrefix.wx_pay_error_type + IdWorkerAide.nextId());
@@ -313,8 +314,8 @@ public class WxCusDeclareQueryBiz extends AbstractCusDeclareBiz implements Cuspa
         wxPayError.setMchId(wxCbPayDoc.getMchId());
         wxPayError.setOutTradeNo(wxCbPayDoc.getOutTradeNo());
         wxPayError.setTransactionId(wxCbPayDoc.getTransactionId());
-        wxPayError.setSubOrderNo(wxCbPayDoc.getSubOrderNo());
-        wxPayError.setCustoms(wxCbPayDoc.getCustoms());
+        wxPayError.setSubOrderNo(querySuccessDto.getSubOrderNo());
+        wxPayError.setCustoms(querySuccessDto.getCustoms());
         wxPayError.setErrCode(wxCbPayDoc.getErrCode());
         wxPayError.setErrMsg(wxCbPayDoc.getReturnMsg());
         wxPayError.getCreateTime(sdf.format(new Date()));

+ 2 - 2
src/main/java/com/emato/cuspay/service/MerchNotiService.java

@@ -20,7 +20,7 @@ public interface MerchNotiService {
 
     List<MerchNoti> getMerchNotiByCode(String code);
 
-    int insert(MerchNoti merchNoti);
+    MerchNoti insert(MerchNoti merchNoti);
 
-    int update(MerchNoti merchNoti);
+    MerchNoti update(MerchNoti merchNoti);
 }

+ 13 - 4
src/main/java/com/emato/cuspay/service/impl/MerchNotiServiceImpl.java

@@ -6,6 +6,8 @@ import com.emato.cuspay.entity.merch.MerchNoti;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -30,11 +32,18 @@ public class MerchNotiServiceImpl implements MerchNotiService {
         return merchNotiMapper.getMerchNotiByCode(code);
     }
 
-    public int insert(MerchNoti merchNoti){
-        return merchNotiMapper.insertSelective(merchNoti);
+    public MerchNoti insert(MerchNoti record){
+        record.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+        if(this.merchNotiMapper.insertSelective(record)==1) {
+            return record;
+        }
+        return null;
     }
 
-    public int update(MerchNoti merchNoti){
-        return merchNotiMapper.updateByPrimaryKeySelective(merchNoti);
+    public MerchNoti update(MerchNoti record){
+        if(this.merchNotiMapper.updateByPrimaryKeySelective(record)==1) {
+            return record;
+        }
+        return null;
     }
 }

+ 1 - 1
src/main/java/com/emato/cuspay/task/CuspayTask.java

@@ -33,7 +33,7 @@ public class CuspayTask {
         merchantNoticeBiz.biz();
 
         //查询微信订单信息
-//        wxCusDeclareQueryBiz.biz();
+        wxCusDeclareQueryBiz.biz();
 
     }
 }

+ 2 - 4
src/main/java/com/emato/cuspay/util/ReaderXmlForDOM4J.java

@@ -19,8 +19,8 @@ import java.util.List;
 public class ReaderXmlForDOM4J {
 
     public static WxQuerySuccessResponseMsgDto parse(String protocolXML, int count) {
+        WxQuerySuccessResponseMsgDto querySuccessResponseDto = new WxQuerySuccessResponseMsgDto();
         try {
-            WxQuerySuccessResponseMsgDto querySuccessResponseDto = new WxQuerySuccessResponseMsgDto();
             Document doc=(Document) DocumentHelper.parseText(protocolXML);
             Element books = doc.getRootElement();
             // Iterator users_subElements = books.elementIterator("UID");//指定获取那个元素
@@ -79,12 +79,10 @@ public class ReaderXmlForDOM4J {
                 if(certCheckResult.equalsIgnoreCase(user.getName())){
                     querySuccessResponseDto.setCertCheckResult(user.getText());
                 }
-
-                return querySuccessResponseDto;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return null;
+        return querySuccessResponseDto;
     }
 }

+ 1 - 1
src/main/java/com/emato/cuspay/util/Validator.java

@@ -41,7 +41,7 @@ public abstract class Validator {
         if (beVerified == null) {
             return new ResponseMessage.Builder()
                     .setCode(ResponseStatus.ERROR.getItem())
-                    .setMsg("没有要验证数据")
+                    .setMsg("验证数据为空")
                     .build();
         }
 

+ 5 - 0
src/main/java/com/emato/cuspay/wx/common/WxContants.java

@@ -32,4 +32,9 @@ public abstract class WxContants {
      *海关接口异常
      */
     public final static String  ERROR_EXCEPT = "-4";
+
+    /**
+     *未申报
+     */
+    public final static String  ERROR_UN_DECLARE = "-5";
 }

+ 20 - 7
src/main/resources/application.yml

@@ -50,18 +50,30 @@ redis:
     jedis-cluster:
         # Redis Cluster 主机列表
         redis-cluster-host-list:
-            - host: 127.0.0.1
+            - host: 192.168.1.248
               port: 7000
-            - host: 127.0.0.1
+            - host: 192.168.1.248
               port: 7001
-            - host: 127.0.0.1
+            - host: 192.168.1.248
               port: 7002
-            - host: 127.0.0.1
+            - host: 192.168.1.249
               port: 7003
-            - host: 127.0.0.1
+            - host: 192.168.1.249
               port: 7004
-            - host: 127.0.0.1
+            - host: 192.168.1.249
               port: 7005
+#            - host: 127.0.0.1
+#              port: 7000
+#            - host: 127.0.0.1
+#              port: 7001
+#            - host: 127.0.0.1
+#              port: 7002
+#            - host: 127.0.0.1
+#              port: 7003
+#            - host: 127.0.0.1
+#              port: 7004
+#            - host: 127.0.0.1
+#              port: 7005
 #            - host: qhdswl.f3322.net
 #              port: 7000
 #            - host: qhdswl.f3322.net
@@ -107,4 +119,5 @@ db:
     wx:
         #定时器报关一次区的数据
         declare:
-            limit: 20
+            limit: 20
+            count: 2

+ 10 - 9
src/main/resources/mybatis/mapper/MerchNotiMapper.xml

@@ -32,10 +32,11 @@
     <result column="tstm" property="tstm" jdbcType="TIMESTAMP" />
   </resultMap>
   <sql id="Base_Column_List" >
-    noti_sn, all_pay_sn, merch_sn, merch_name, merch_erp_order_sn,plat_sn, plat_name, third_party_merch_code,
-    third_party_merch_name, all_merch_id, all_order_no, all_pay_no, all_sub_order_no, 
-    pay_chnl_flag, buyer_payer_check, noti_count, is_stoped, cus_decl_status, noti_statue, 
-    code, msg, notify_url, remark, creater_sn, create_time, moder_sn, mod_time, tstm
+    noti_sn, all_pay_sn, merch_sn, merch_name, merch_erp_order_sn, plat_sn, plat_name,
+    third_party_merch_code, third_party_merch_name, all_merch_id, all_order_no, all_pay_no,
+    all_sub_order_no, pay_chnl_flag, buyer_payer_check, noti_count, is_stoped, cus_decl_status,
+    noti_statue, code, msg, notify_url, remark, creater_sn, create_time, moder_sn, mod_time,
+    tstm
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
     select 
@@ -70,7 +71,7 @@
       <if test="merchName != null" >
         merch_name,
       </if>
-      <if test="merchErpOrderSn != null">
+      <if test="merchErpOrderSn != null" >
         merch_erp_order_sn,
       </if>
       <if test="platSn != null" >
@@ -156,8 +157,8 @@
       <if test="merchName != null" >
         #{merchName,jdbcType=VARCHAR},
       </if>
-      <if test="merchErpOrderSn != null">
-        #{merchErpOrderSn, jdbcType=VARCHAR}
+      <if test="merchErpOrderSn != null" >
+        #{merchErpOrderSn,jdbcType=VARCHAR},
       </if>
       <if test="platSn != null" >
         #{platSn,jdbcType=VARCHAR},
@@ -242,8 +243,8 @@
       <if test="merchName != null" >
         merch_name = #{merchName,jdbcType=VARCHAR},
       </if>
-      <if test="merchErpOrderSn != null">
-        merch_erp_order_sn = #{merchErpOrderSn, jdbcType=VARCHAR},
+      <if test="merchErpOrderSn != null" >
+        merch_erp_order_sn = #{merchErpOrderSn,jdbcType=VARCHAR},
       </if>
       <if test="platSn != null" >
         plat_sn = #{platSn,jdbcType=VARCHAR},