Explorar o código

物流定时任务优化

chao %!s(int64=3) %!d(string=hai) anos
pai
achega
f89f33b9a1

+ 1 - 1
src/main/java/com/caimei365/tools/model/po/LogisticsInfoPo.java

@@ -18,7 +18,7 @@ public class LogisticsInfoPo implements Serializable {
     private Long orderId;
     private Long orderId;
     /** 快递单号 */
     /** 快递单号 */
     private String nu;
     private String nu;
-    /** 快递单当前的状态: 0在途,1揽收,2疑难,3签收,4退签(货物退回发货人并签收),5派件,6退回,7转单,10待清关,11清关中,12已清关,13清关异常,14收件人拒签 */
+    /** 快递单当前的状态:-1单号错误, 0在途,1揽收,2疑难,3签收,4退签(货物退回发货人并签收),5派件,6退回,7转单,10待清关,11清关中,12已清关,13清关异常,14收件人拒签 */
     private String state;
     private String state;
     /** 物流跟踪信息 */
     /** 物流跟踪信息 */
     private String info;
     private String info;

+ 17 - 7
src/main/java/com/caimei365/tools/task/LogisticsInfoTask.java

@@ -68,13 +68,23 @@ public class LogisticsInfoTask {
                         String state = queryTrackResp.getState();
                         String state = queryTrackResp.getState();
                         String companyCode = queryTrackResp.getCom();
                         String companyCode = queryTrackResp.getCom();
                         String info = new Gson().toJson(queryTrackResp.getData());
                         String info = new Gson().toJson(queryTrackResp.getData());
-                        logistics.setState(state);
-                        logistics.setLogisticsCompanyCode(companyCode);
-                        logistics.setInfo(info);
-                        logistics.setUpdateDate(new Date());
-                        // 更新数据库物流信息
-                        logisticsMapper.updateLogistics(logistics);
-                        log.info(">> 定时任务 >> 更新物流信息到DB成功!");
+                        if (StringUtils.isNotEmpty(state) && StringUtils.isNotEmpty(info)) {
+                            logistics.setState(state);
+                            logistics.setLogisticsCompanyCode(companyCode);
+                            logistics.setInfo(info);
+                            logistics.setUpdateDate(new Date());
+                            // 更新数据库物流信息
+                            logisticsMapper.updateLogistics(logistics);
+                            log.info(">> 定时任务 >> 更新物流信息到DB成功!");
+                        }
+                        if ("400".equals(queryTrackResp.getReturnCode())) {
+                            logistics.setState("-1");
+                            logistics.setInfo(queryTrackResp.getMessage());
+                            logistics.setUpdateDate(new Date());
+                            // 更新数据库物流信息
+                            logisticsMapper.updateLogistics(logistics);
+                            log.info(">> 定时任务 >> 更新物流信息到DB:" + queryTrackResp.getMessage());
+                        }
                     }
                     }
                 });
                 });
             }
             }

+ 2 - 2
src/main/resources/mapper/LogisticsMapper.xml

@@ -9,12 +9,12 @@
 		       info,
 		       info,
 		       logisticsCompanyCode
 		       logisticsCompanyCode
 		FROM logistics_information
 		FROM logistics_information
-		WHERE ((state != 3 AND state != 4) OR state IS NULL)
+		WHERE ((state != 3 AND state != 4 AND state != -1) OR state IS NULL)
 		AND (updateDate > DATE_SUB(NOW(), interval 1 year))
 		AND (updateDate > DATE_SUB(NOW(), interval 1 year))
 		ORDER BY id DESC
 		ORDER BY id DESC
     </select>
     </select>
 	<select id="getLogisticsPhoneByOrderId" resultType="java.lang.String">
 	<select id="getLogisticsPhoneByOrderId" resultType="java.lang.String">
-		SELECT phone FROM bp_order_userinfo WHERE orderId=#{orderId} LIMIT 1
+		SELECT mobile FROM bp_order_userinfo WHERE orderId=#{orderId} LIMIT 1
 	</select>
 	</select>
 	<update id="updateLogistics" parameterType="com.caimei365.tools.model.po.LogisticsInfoPo">
 	<update id="updateLogistics" parameterType="com.caimei365.tools.model.po.LogisticsInfoPo">
 		UPDATE logistics_information
 		UPDATE logistics_information