Kaynağa Gözat

【海凌科】【新版物流发货二开】【淘宝订单对接:若超过三个月则结束日期= 上次对接时间+3个月;获取店铺有效session查询优化;下载订单记录订单店铺ID】

wuyx 1 yıl önce
ebeveyn
işleme
56e2962e66

+ 16 - 8
src/main/java/com/uas/eis/task/TaoBaoDownLoadTask.java

@@ -39,7 +39,7 @@ public class TaoBaoDownLoadTask {
         /**
          * 有效店铺
          * */
-        List<Map<String,Object>> shopList = baseDao.queryForList("SELECT TB_CODE,TB_LASTSYNCDATE from TBAUTHORIZATION ORDER BY TB_CODE ASC");
+        List<Map<String,Object>> shopList = baseDao.queryForList("SELECT TB_CODE,TB_LASTSYNCDATE,TB_OPENUID from TBAUTHORIZATION where validflag = 1 ORDER BY TB_CODE ASC");
         logger.info("Start downLoad SaleOrder---");
         TaobaoClient client = new DefaultTaobaoClient(taoBaoConfig.getServerUrl(), taoBaoConfig.getAppKey(), taoBaoConfig.getAppSecret());
         TradesSoldGetRequest req = new TradesSoldGetRequest();
@@ -55,24 +55,32 @@ public class TaoBaoDownLoadTask {
                 ",rt_omni_outer_sc_id,rt_omni_sc_id,modify_address,ti_modify_address_time,omni_jxs_outerid,propoint,brand_light_shop_source,special_refund_type"+
                 ",extend_info,service_type,threepl_timing,is_o2o_passport,delivery_time,sign_time");
         shopList.stream().forEach(shop -> {
+            String tbOpenuid = String.valueOf(shop.get("TB_OPENUID"));
             List<String> executeSQLS = new ArrayList<>();
             String sessionKey = String.valueOf(shop.get("TB_CODE"));
             Calendar calendar = Calendar.getInstance();
             calendar.setTime(DateUtil.parse(String.valueOf(shop.get("TB_LASTSYNCDATE")),"yyyy-MM-dd HH:mm:ss"));
             calendar.add(Calendar.DATE, -1);
-            Date date = new Date();
+            //若超过三个月则结束日期= 上次对接时间+3个月
+            Calendar calendarEnd = Calendar.getInstance();
+            calendarEnd.setTime(DateUtil.parse(String.valueOf(shop.get("TB_LASTSYNCDATE")), "yyyy-MM-dd HH:mm:ss"));
+            calendarEnd.add(Calendar.MONTH, 3);
+            Date endDate = new Date();
+            if (calendarEnd.getTime().getTime() < endDate.getTime()) {
+                endDate = calendarEnd.getTime();
+            }
             req.setStartCreated(calendar.getTime());
-            req.setEndCreated(date);
+            req.setEndCreated(endDate);
             try {
                 TradesSoldGetResponse rsp = client.execute(req, sessionKey);
                 List<Trade> trades = rsp.getTrades();
                 logger.info("店铺获取单数"+trades.size());
                 for(Trade trade: trades){
-                    formatTrade(trade, sessionKey, executeSQLS);
+                    formatTrade(trade, sessionKey,tbOpenuid, executeSQLS);
                 }
                 baseDao.execute(executeSQLS);
                 //更新当前店铺的最近更新时间
-                baseDao.updateByCondition("TBAUTHORIZATION","TB_LASTSYNCDATE=to_date ( '" + DateUtil.format(date, DateUtil.FORMAT_YMD_HMS) + "','YYYY-MM-DD hh24:mi:ss') ","TB_CODE ='"+sessionKey+"'");
+                baseDao.updateByCondition("TBAUTHORIZATION","TB_LASTSYNCDATE=to_date ( '" + DateUtil.format(endDate, DateUtil.FORMAT_YMD_HMS) + "','YYYY-MM-DD hh24:mi:ss') ","TB_CODE ='"+sessionKey+"'");
             } catch (Exception e) {
                 e.printStackTrace();
                 logger.info("淘宝未响应并返回订单数据");
@@ -81,7 +89,7 @@ public class TaoBaoDownLoadTask {
         //部分信息处理
         baseDao.callProcedure("SP_UPDATE_SALEINFO");
     }
-    private  void formatTrade(Trade trade ,String sessionKey, List<String> executeSqls){
+    private  void formatTrade(Trade trade ,String sessionKey,String tbOpenuid, List<String> executeSqls){
         String oaid=trade.getOaid();
         String tid=trade.getTid().toString();
         boolean isEXISTS = baseDao.checkIf("SALE", "SA_CODE='"+tid+"'");
@@ -129,13 +137,13 @@ public class TaoBaoDownLoadTask {
                     ",sa_apcustname,sa_need9,sa_toplace" +
                     ",sa_transport,sa_seller,sa_updatedate" +
                     ",sa_enddate,sa_statuscode,sa_status,sa_fare,sa_total" +
-                    ",sa_recamount,sa_recorddate,sa_printstatuscode,sa_remark)" +
+                    ",sa_recamount,sa_recorddate,sa_printstatuscode,sa_remark,sa_tbopenuid)" +
                     "  SELECT   1," + trade.getDiscountFee() + ",'" + trimNull(trade.getStatus()) + "',replace( nvl( '" + trimNull(trade.getSellerNick()) + " ' ,'静夜思solong'),' ',''), 'GN0008358','P001', " + trade.getTid() + " , '现结','HLK淘宝','国内标准销售订单', ' " + trimNull(name_oaid) + "  ' , ' " + trimNull(receiver_mobile) + " ' , " + said + "," + trade.getTid() + "," + trade.getTid()
                     + " , to_date (  '" + end_time + "' ,'YYYY-MM-DD hh24:mi:ss') , '管理员','RMB','1','"
                     + trimNull(name_oaid) + "','" + trimNull(trade.getBuyerNick()) + "','" + address.replaceAll("'", "") + "  ', '  "
                     + trimNull(trade.getShippingType()) + "  ', ' " + trimNull(trade.getO2oGuideName()) + "  ', to_date ( '" + modified
                     + "','YYYY-MM-DD hh24:mi:ss') , to_date ( '" + end_time + "','YYYY-MM-DD hh24:mi:ss') ,'ENTERING','在录入'," + trimNull(trade.getPostFee()) + "," + trimNull(trade.getPayment()) + ","
-                    + trimNull(trade.getPayment()) + " , to_date ( '" + consigntime + "','YYYY-MM-DD hh24:mi:ss') ,'unprint', '淘宝自动抓取'   FROM DUAL  " +
+                    + trimNull(trade.getPayment()) + " , to_date ( '" + consigntime + "','YYYY-MM-DD hh24:mi:ss') ,'unprint', '淘宝自动抓取','"+tbOpenuid+"'   FROM DUAL  " +
                     " WHERE   NOT EXISTS ( select 1 from sale WHERE SA_TAOBAOID=" + trade.getTid() + "   )  ";
 
             executeSqls.add(INSERTSALESql);