Browse Source

物流代码优化

chao 3 years ago
parent
commit
cc044bffd8

+ 2 - 2
src/main/java/com/caimei365/tools/service/impl/LogisticsServiceImpl.java

@@ -61,7 +61,7 @@ public class LogisticsServiceImpl implements LogisticsService {
                 // 根据快递单号获取物流信息
                 return queryLogistics(number, mobile, firstComByNum);
             }
-            return ResponseJson.error("未能识别物流公司,请提供正确的物流公司代码后重试!", null);
+            return ResponseJson.error("未能识别物流公司,请提供正确的快递单号后重试!", null);
         } catch (Exception e) {
             log.error("智能获取物流公司代码,错误信息:", e);
             return ResponseJson.error("智能获取物流公司出错,请提供物流公司代码后重试!", null);
@@ -95,7 +95,7 @@ public class LogisticsServiceImpl implements LogisticsService {
             HttpResult httpResult = baseClient.execute(queryTrackReq);
             if (httpResult.getStatus() == 200 && StringUtils.isNotBlank(httpResult.getBody())) {
                 QueryTrackResp queryTrackResp = (new Gson()).fromJson(httpResult.getBody(), QueryTrackResp.class);
-                log.info(">> 获取物流信息 >> " + new Gson().toJson(queryTrackResp));
+                log.info(">> 获取物流信息:"+number+" >> " + new Gson().toJson(queryTrackResp));
                 return ResponseJson.success(queryTrackResp);
             }
             return ResponseJson.error(httpResult.toString(), null);

+ 45 - 30
src/main/java/com/caimei365/tools/task/LogisticsInfoTask.java

@@ -54,38 +54,53 @@ public class LogisticsInfoTask {
             List<LogisticsInfoPo> logisticsList = logisticsMapper.getAllUnsignedLogistics();
             if (!CollectionUtils.isEmpty(logisticsList)) {
                 logisticsList.forEach(logistics -> {
-                    ResponseJson<QueryTrackResp> result = logisticsService.getLogisticsByNumber(logistics.getNu(), logistics.getLogisticsCompanyCode(), "");
-                    if (result.getCode() == -2) {
-                        // 顺丰速运需要提供收/寄件人的电话号码查询
-                        String mobile = logisticsMapper.getLogisticsPhoneByOrderId(logistics.getOrderId());
-                        if (StringUtils.isNotEmpty(mobile)) {
-                            result = logisticsService.getLogisticsByNumber(logistics.getNu(), logistics.getLogisticsCompanyCode(), mobile);
+                    boolean updateFlag = false;
+                    Date current = new Date();
+                    String logMsg = null;
+                    if (logistics.getNu().length() >= 8) {
+                        ResponseJson<QueryTrackResp> result = logisticsService.getLogisticsByNumber(logistics.getNu(), logistics.getLogisticsCompanyCode(), "");
+                        if (result.getCode() == -2) {
+                            // 顺丰速运需要提供收/寄件人的电话号码查询
+                            String mobile = logisticsMapper.getLogisticsPhoneByOrderId(logistics.getOrderId());
+                            if (StringUtils.isNotEmpty(mobile)) {
+                                result = logisticsService.getLogisticsByNumber(logistics.getNu(), logistics.getLogisticsCompanyCode(), mobile);
+                            }
                         }
-                    }
-                    if (result.getCode() == 0) {
-                        // 查询成功
-                        QueryTrackResp queryTrackResp = result.getData();
-                        String state = queryTrackResp.getState();
-                        String companyCode = queryTrackResp.getCom();
-                        String info = new Gson().toJson(queryTrackResp.getData());
-                        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");
-                            String errInfo = "[{\"time\":\"" + new Date() + "\",\"context\":\""+queryTrackResp.getMessage()+"\",\"ftime\":\" + new Date() + \"}]";
-                            logistics.setInfo(errInfo);
-                            logistics.setUpdateDate(new Date());
-                            // 更新数据库物流信息
-                            logisticsMapper.updateLogistics(logistics);
-                            log.info(">> 定时任务 >> 更新物流信息到DB:" + queryTrackResp.getMessage());
+                        if (result.getCode() == 0) {
+                            // 查询成功
+                            QueryTrackResp queryTrackResp = result.getData();
+                            String state = queryTrackResp.getState();
+                            String companyCode = queryTrackResp.getCom();
+                            String info = new Gson().toJson(queryTrackResp.getData());
+                            if (StringUtils.isNotEmpty(state) && StringUtils.isNotEmpty(info)) {
+                                logistics.setState(state);
+                                logistics.setLogisticsCompanyCode(companyCode);
+                                logistics.setInfo(info);
+                                logistics.setUpdateDate(current);
+                                updateFlag = true;
+                                logMsg = "已成功更新!";
+                            }
+                            if ("400".equals(queryTrackResp.getReturnCode())) {
+                                logistics.setState("-1");
+                                String errInfo = "[{\"time\":\"" + current + "\",\"context\":\""+queryTrackResp.getMessage()+"\",\"ftime\":\" + new Date() + \"}]";
+                                logistics.setInfo(errInfo);
+                                logistics.setUpdateDate(current);
+                                updateFlag = true;
+                                logMsg = queryTrackResp.getMessage();
+                            }
                         }
+                    } else {
+                        logistics.setState("-1");
+                        String errInfo = "[{\"time\":\"" + current + "\",\"context\":\"运单号错误!\",\"ftime\":\"" + current + "\"}]";
+                        logistics.setInfo(errInfo);
+                        logistics.setUpdateDate(current);
+                        updateFlag = true;
+                        logMsg = "运单号错误!";
+                    }
+                    if (updateFlag) {
+                        // 更新数据库物流信息
+                        logisticsMapper.updateLogistics(logistics);
+                        log.info(">> 定时任务 >> 更新物流信息到DB:" + logMsg);
                     }
                 });
             }