|
|
@@ -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() + "淘宝未响应并返回订单数据");
|
|
|
+
|
|
|
}
|
|
|
- }
|
|
|
+
|
|
|
}
|