Browse Source

2020-11-20

sl 5 years ago
parent
commit
86d048fc84
1 changed files with 100 additions and 117 deletions
  1. 100 117
      src/main/java/com/uas/eis/serviceImpl/InsertServiceImpl.java

+ 100 - 117
src/main/java/com/uas/eis/serviceImpl/InsertServiceImpl.java

@@ -19,6 +19,10 @@ import java.util.*;
 
 import com.taobao.api.request.TradesSoldGetRequest;
 import com.taobao.api.response.TradesSoldGetResponse;
+
+import com.taobao.api.request.TradesSoldIncrementGetRequest;
+import com.taobao.api.response.TradesSoldIncrementGetResponse;
+
 import com.uas.eis.utils.HttpUtil;
 import com.uas.eis.utils.HttpUtil.Response;
 
@@ -40,146 +44,125 @@ public class InsertServiceImpl implements InsertService {
     public String Insert(String code, String param) {
 
 
-            try {
+        try {
 
-                Timer timer = new Timer();//实例化Timer类
-                timer.schedule(new TimerTask() {
-                    public void run() {
-                        getAllDate();
-                    }
-                }, 600000);//10分钟
-            } catch (Exception e) {
-                logger.info(this.getClass() + "服务挂掉");
-                return e.getMessage();
-            }
+            Timer timer = new Timer();//实例化Timer类
+            timer.schedule(new TimerTask() {
+                public void run() {
+                    getAllDate();
+                }
+            }, 600000);//10分钟
+        } catch (Exception e) {
+            logger.info(this.getClass() + "服务挂掉");
+            return e.getMessage();
+        }
         return null;
     }
 
     @Override
-    public void getAllDate(){
-//        TaobaoClient client1 = new DefaultTaobaoClient("http://auth.open.taobao.com/?appkey=31921866", "31921866", "7121c52d4c9970ba08bf09e2f525acd0");
-
-        TradesSoldGetRequest req = new TradesSoldGetRequest();
-
-
-
-
-//                    OpenTradesSoldGetRequest req = new OpenTradesSoldGetRequest();
-//        req.setFields("tid,type,status,payment,orders,rx_audit_status");
-//
-//        //String sysdate = DateUtil.getCurrentDate();
-//        //req.setStartCreated(StringUtils.parseDateTime(sysdate));
-//        //req.setStartCreated(StringUtils.parseDateTime("2000-01-01 00:00:00"));
-//        //req.setEndCreated(StringUtils.parseDateTime("2000-01-01 23:59:59"));
-//        //交易成功
-//        req.setStatus("TRADE_FINISHED");
-//            req.setBuyerNick("zhangsan");
-////            req.setType("game_equipment");
-//        req.setExtType("service");
-////            req.setRateStatus("RATE_UNBUYER");
-////            req.setTag("time_card");
-////            req.setPageNo(1L);
-////            req.setPageSize(40L);
-//        req.setUseHasNext(true);
-//        req.setBuyerOpenId("AAHm5d-EAAeGwJedwSHpg8bT");
-////                    OpenTradesSoldGetResponse rsp = client.execute(req, sessionKey);
-        TaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "31921866", "7121c52d4c9970ba08bf09e2f525acd0");
-////        TaobaoClient client2 = new DefaultTaobaoClient("http://container.open.taobao.com/container?authcode={授权码}", "31921866", "7121c52d4c9970ba08bf09e2f525acd0");
-////
-////        ((DefaultTaobaoClient) client).getRequestUrl("http://auth.open.taobao.com/?appkey=31921866")
-//        //  查询卖家已卖出的交易数据
-//
-
-        req.setFields("tid,type,status,payment,orders,rx_audit_status,trades");
-//        req.setStartCreated(StringUtils.parseDateTime("2000-01-01 00:00:00"));
-//        req.setEndCreated(StringUtils.parseDateTime("2020-12-01 23:59:59"));
-//        req.setStatus("ALL_WAIT_PAY");
-//        req.setBuyerNick("");
-//        req.setType("game_equipment");
-//        req.setExtType("service");
-//        req.setRateStatus("RATE_UNBUYER");
-//        req.setTag("time_card");
-//        req.setPageNo(1L);
-//        req.setPageSize(40L);
-//        req.setUseHasNext(true);
-//        req.setBuyerOpenId("AAHm5d-EAAeGwJedwSHpg8bT");
-
-        try {
-
+    public void getAllDate() {
+
+//        1.无淘宝自动抓取的 订单 ,则正常备份历史订单
+//          有淘宝自动抓取的 订单 ,则调用增量备份
+        List<Trade> trades = new ArrayList<Trade>();
+        String sa_sourcetype = baseDao.queryForObject("select  sa_sourcetype from sale where sa_sourcetype ='淘宝自动抓取' ", String.class);
+        if (sa_sourcetype == null || sa_sourcetype == "") {
+            TaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "31921866", "7121c52d4c9970ba08bf09e2f525acd0");
+            TradesSoldGetRequest req = new TradesSoldGetRequest();  //正常备份接口
+            req.setFields("tid,type,status,payment,orders,rx_audit_status,trades");
+            req.setStartCreated(StringUtils.parseDateTime("1990-01-01 00:00:00"));
+
+            Date date = new Date();
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(new Date());
+            calendar.set(Calendar.HOUR_OF_DAY, 23);
+            calendar.set(Calendar.MINUTE, 59);
+            calendar.set(Calendar.SECOND, 59);
+            Date endtime = calendar.getTime();
+
+//            req.setEndCreated(endtime);
+            req.setEndCreated(StringUtils.parseDateTime("2020-12-01 00:00:00"));
+                try {
             TradesSoldGetResponse rsp = client.execute(req, "61024291979328cd09f0ba138f79236d66bd313f3364cf148715824");
-            System.out.println(rsp.getBody());
-            List<String> insertSqlsList = new ArrayList<String>();
-            //这里解析返回的数据
-
-//            List<Map<String, Object>>  trades = rsp.getTrades();
-//            List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>();
-//            List<Map<String, Object>> resultList =rsp.getTrades();
-            List<Trade> trades = rsp.getTrades();
+                    trades = rsp.getTrades();
+                } catch (Exception e) {
+                    logger.info(this.getClass() + "淘宝未响应并返回订单数据");
+                }
 
-            //receiver_name
-//            Object  sss = trades.get(1).getReceiverName();
+        } else {
+            TaobaoClient client2 = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "31921866", "7121c52d4c9970ba08bf09e2f525acd0");
+            TradesSoldIncrementGetRequest req2 = new TradesSoldIncrementGetRequest();  //增量备份接口
+            req2.setFields("tid,type,status,payment,orders,rx_audit_status,trades");
 
+            Date date2 = new Date();
+            Calendar calendar2 = Calendar.getInstance();
+            calendar2.setTime(new Date());
 
+            calendar2.set(Calendar.HOUR_OF_DAY, 0);
+            calendar2.set(Calendar.MINUTE, 0);
+            calendar2.set(Calendar.SECOND, 0);
+            Date zero = calendar2.getTime();
 
+            req2.setStartModified(zero);
 
+            calendar2.set(Calendar.HOUR_OF_DAY, 23);
+            calendar2.set(Calendar.MINUTE, 59);
+            calendar2.set(Calendar.SECOND, 59);
+            Date endtime = calendar2.getTime();
 
+            req2.setEndModified(endtime);
+            try {
+                TradesSoldIncrementGetResponse rsp2 = client2.execute(req2, "61024291979328cd09f0ba138f79236d66bd313f3364cf148715824");
+                trades = rsp2.getTrades();
+            } catch (Exception e) {
+                logger.info(this.getClass() + "淘宝未响应并返回订单数据");
+            }
+        }
 
 
+            List<String> insertSqlsList = new ArrayList<String>();
 
-//                    //解析第一层---对象
-            //JSONObject jObject1 = new JSONObject(rsp.getBody());
-            //解析第二层----数组
-//            JSONArray jsonArray2 = JSONArray.fromObject(trades);
-            //JSONArray jsonArray2 = jObject1.getJSONArray();
-            //遍历数组获取元素----对象
-            if (trades.size() == 0) {
+            if (trades ==null || trades.size() == 0) {
                 logger.info(this.getClass() + " 未录入淘宝订单");
             } else {
-                for (int i = 0; i < 1; i++) {    //trades.size()
-                    //解析第三层----对象
-//                    JSONObject jObject3 = jsonArray2.getJSONObject(i);
-
+                for (int i = 0; i < trades.size(); i++) {    //
                     /*  插入淘宝订单ID  sa_tradeid 字段 alter table sale  add sa_tradeid number; */
-                    Long sa_tradeid = baseDao.queryForObject("select sa_tradeid from sale where sa_tradeid =" + trades.get(i).getTid(), Long.class);
-                    /*  存在未 插入的淘宝订单 时 执行 插入操作  */
-//                    while (sa_tradeid == null) {
-                        Long said = baseDao.queryForObject("select sale_seq.nextval from dual", Long.class);
-
-
-                        String sa_code = baseDao.sGetMaxNumber("Sale", 2);
-
-                        String INSERTSALESql = "insert into sale(sa_id,sa_tradeid,sa_code,sa_date,sa_recorddate,sa_custname,sa_currency,sa_rate" +
-                                ",sa_apcustname,sa_shcustname,sa_toplace" +
-                                ",sa_transport,sa_seller,sa_updatedate" +
-                                ",sa_enddate,sa_statuscode,sa_status,sa_fare,sa_total" +
-                                ",sa_recamount,sa_plandelivery,sa_printstatuscode)" +
-                                "  values(" + said + "," + trades.get(i).getTid() + "," + sa_code + ",sysdate,sysdate," + trades.get(i).getReceiverName()+ ",'rmb','1',"
-                                + trades.get(i).getReceiverName() + "," + trades.get(i).getReceiverName()+ "," + trades.get(i).getReceiverAddress() + ","
-                                + trades.get(i).getShippingType() + "," + trades.get(i).getO2oGuideName() + "," + trades.get(i).getModified()
-                                + "," + trades.get(i).getEndTime() + ",'entering','已审核'," + trades.get(i).getPostFee() + "," + trades.get(i).getPayment() + ","
-                                + trades.get(i).getTotalFee() + "," + trades.get(i).getConsignTime()+ ",'unprint')";
-                        insertSqlsList.add(INSERTSALESql);
-
-                        List<Order> orders = trades.get(i).getOrders();
-                        for (int j= 0; j < 1; j++) {   //orders.size()
-                                    int k=j+1;
-                            //sd_enddate  ,sd_senddate ,to_date('  "+orders.get(j).getEndTime()+ "','yyyy-MM-dd hh24:mi:ss'),to_date('" +orders.get(j).getConsignTime()+"','yyyy-MM-dd hh24:mi:ss'),
-                            //
-                            Long sdid = baseDao.queryForObject("select saledetail_seq.nextval from dual", Long.class);
-                            String INSERTSALEDETAILSql = "insert into saledetail(sd_id,sd_said,sd_detno,sd_qty,sd_price,sd_total" +
-                                    ",sd_statuscode,sd_status,sd_discount)" +
-                                    "  values ( "+sdid+" ,"  + said + ","+k+"," + orders.get(j).getNum() + "," + orders.get(j).getPrice() + " ," + orders.get(j).getTotalFee() +
-                                    ",'entering','已审核',"+ orders.get(j).getDiscountFee() + "  )";
-                            insertSqlsList.add(INSERTSALEDETAILSql);
-                        }
+
+                    Long said = baseDao.queryForObject("select sale_seq.nextval from dual", Long.class);
+                    String sa_code = baseDao.sGetMaxNumber("Sale", 2);
+
+                    String INSERTSALESql = "insert into sale(sa_payments,sa_custname,sa_kind,sa_wwh_user,sa_need15,sa_id,sa_tradeid,sa_code,sa_date,sa_recorder,sa_recorddate,sa_currency,sa_rate" +
+                            ",sa_apcustname,sa_shcustname,sa_toplace" +
+                            ",sa_transport,sa_seller,sa_updatedate" +
+                            ",sa_enddate,sa_statuscode,sa_status,sa_fare,sa_total" +
+                            ",sa_recamount,sa_plandelivery,sa_printstatuscode,sa_sourcetype)" +
+                            "  SELECT  '现结','HLK淘宝','国内标准销售订单'," + trades.get(i).getReceiverName() + "," + trades.get(i).getReceiverPhone() + "," + said + "," + trades.get(i).getTid() + "," + sa_code
+                            + " ," + trades.get(i).getCreated() + "," + trades.get(i).getBuyerNick() + ",sysdate,'rmb','1',"
+                            + trades.get(i).getReceiverName() + "," + trades.get(i).getReceiverName() + "," + trades.get(i).getReceiverAddress() + ","
+                            + trades.get(i).getShippingType() + "," + trades.get(i).getO2oGuideName() + "," + trades.get(i).getModified()
+                            + "," + trades.get(i).getEndTime() + ",'entering','已审核'," + trades.get(i).getPostFee() + "," + trades.get(i).getPayment() + ","
+                            + trades.get(i).getTotalFee() + "," + trades.get(i).getConsignTime() + ",'unprint','淘宝自动抓取'  FROM DUAL   WHERE NOT EXISTS ( select sa_id from sale WHERE SA_iD=" + said + "   )";
+                    insertSqlsList.add(INSERTSALESql);
+
+                    List<Order> orders = trades.get(i).getOrders();
+                    for (int j = 0; j < orders.size(); j++) {
+                        int k = j + 1;
+                        //sd_enddate  ,sd_senddate ,to_date('  "+orders.get(j).getEndTime()+ "','yyyy-MM-dd hh24:mi:ss'),to_date('" +orders.get(j).getConsignTime()+"','yyyy-MM-dd hh24:mi:ss'),
+                        //
+                        Long sdid = baseDao.queryForObject("select saledetail_seq.nextval from dual", Long.class);
+                        String INSERTSALEDETAILSql = "insert into saledetail(sd_id,sd_said,sd_prodcode,sd_detno,sd_qty,sd_price,sd_total" +
+                                ",sd_statuscode,sd_status,sd_discount)" +
+                                "  SELECT  " + sdid + " ," + said + "," + k + "," + orders.get(j).getNumIid() + "," + orders.get(j).getNum() + "," + orders.get(j).getPrice() + " ," + orders.get(j).getTotalFee() +
+                                ",'entering','已审核'," + orders.get(j).getDiscountFee() + " FROM DUAL   WHERE NOT EXISTS ( select sd_id from saledetail WHERE sd_id=" + sdid + "   )";
+                        insertSqlsList.add(INSERTSALEDETAILSql);
+                    }
 
                 }
                 System.out.println(insertSqlsList);
                 baseDao.execute(insertSqlsList);
                 logger.info(this.getClass() + "插入销售明细成功");
             }
-        } catch (Exception e) {
-            logger.info(this.getClass() + "淘宝未响应并返回订单数据");
+
         }
-    }
+
 }