提交 98b2c015 authored 作者: zgy's avatar zgy

同步

上级 26c9b5c9
...@@ -54,6 +54,7 @@ ...@@ -54,6 +54,7 @@
<version>RELEASE</version> <version>RELEASE</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<profiles> <profiles>
......
...@@ -73,6 +73,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -73,6 +73,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
return tbCfOrderDao.deleteBatch(orderIds); return tbCfOrderDao.deleteBatch(orderIds);
} }
@Override @Override
public List<TbCfItemDetailEntity> getOrderItemList(String orderId) { public List<TbCfItemDetailEntity> getOrderItemList(String orderId) {
return tbCfOrderDao.getOrderItemList(orderId); return tbCfOrderDao.getOrderItemList(orderId);
......
package com.platform.task;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.platform.entity.TbCfStationItemEntity;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.http.*;
import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.junit.jupiter.api.Test;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Auther: wudepeng
* @Date: 2019/11/19
* @Description:
*/
@Component("itemTask")
public class ItemTask {
/**
* 定时查询
*
* @throws IOException
*/
//@Scheduled(cron = "0 0 21 * * ? ")
@Test
public void queryItemFromShopify() throws IOException {
Map<String, Object> params = new HashMap<>();
List type = getProductType();
for (int i = 0; i < type.size(); i++) {
params.put("product_type", type.get(i));
params.put("limit", "4");
String data = createConnection(ShopifyConstant.productTypeUrl(), params, "UTF-8");
System.out.println(data);
JSONObject jsonObject = JSONObject.fromObject(data);
JSONArray products = jsonObject.getJSONArray("products");
for (int j = 0; j < products.size(); j++) {
TbCfStationItemEntity item = new TbCfStationItemEntity();
JSONObject object = products.getJSONObject(j);
String id = object.getString("id");
String title = object.getString("title");
String product_type = object.getString("product_type");
JSONArray variants = object.getJSONArray("variants");
String image = object.getJSONObject("image").getString("src");
for (int m=0;m<variants.size();m++){
JSONObject obj = variants.getJSONObject(m);
String price = obj.getString("price");
// System.out.println(id);
// System.out.println(title);
// System.out.println(product_type);
// System.out.println(image);
// System.out.println(price);
// System.out.println("============================");
}
}
}
}
/**
* 发送请求
*
* @param url
* @param paramMap
* @param charset
* @return
*/
public static String createConnection(String url, Map<String, Object> paramMap, String charset) throws IOException {
List<NameValuePair> formparams = setHttpParams(paramMap);
String param = URLEncodedUtils.format(formparams, charset);
// 构建一个GET请求
HttpGet httpGet = new HttpGet();
httpGet.setURI(URI.create(url + "?" + param));
CloseableHttpClient httpClient = createBrowserClient();
HttpResponse sibResponse = httpClient.execute(httpGet);
// 拿到返回的HttpResponse的"实体"
HttpEntity sibResult = sibResponse.getEntity();
return EntityUtils.toString(sibResult);
}
/**
* 设置 Http 参数
*
* @param paramsMap
* @return
*/
private static List<NameValuePair> setHttpParams(Map<String, Object> paramsMap) {
List<NameValuePair> list = new ArrayList<>();
for (Map.Entry<String, Object> stringObjectEntry : paramsMap.entrySet()) {
String key = stringObjectEntry.getKey();
String value = (String) stringObjectEntry.getValue();
list.add(new BasicNameValuePair(key, value));
}
return list;
}
/**
* 创建带浏览器头部的连接
*
* @return
*/
public static CloseableHttpClient createBrowserClient() {
//构造自定义Header信息
List<Header> headerList = Lists.newArrayList();
headerList.add(new BasicHeader(HttpHeaders.ACCEPT, "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3"));
headerList.add(new BasicHeader(HttpHeaders.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"));
headerList.add(new BasicHeader(HttpHeaders.ACCEPT_ENCODING, "gzip, deflate, br"));
headerList.add(new BasicHeader(HttpHeaders.CACHE_CONTROL, "max-age=0"));
headerList.add(new BasicHeader(HttpHeaders.CONNECTION, "keep-alive"));
headerList.add(new BasicHeader(HttpHeaders.ACCEPT_LANGUAGE, "zh-CN,zh;q=0.9"));
headerList.add(new BasicHeader(HttpHeaders.CONTENT_TYPE, "application/json;charset=utf-8"));
//cookie
CookieStore cookieStore = new BasicCookieStore();
return HttpClients.custom().setDefaultHeaders(headerList).setDefaultCookieStore(cookieStore).build();
}
/**
* 查询所有商品分类
*
* @return
* @throws IOException
*/
public List getProductType() throws IOException {
Map<String, Object> params = new HashMap<>();
params.put("fields", "product_type");
String connection = createConnection(ShopifyConstant.productTypeUrl(), params, "UTF-8");
List list = new ArrayList();
JSONArray products = JSONObject.fromObject(connection).getJSONArray("products");
for (int i = 0; i < products.size(); i++) {
String string = products.getString(i);
JSONObject jsonObject = JSONObject.fromObject(string);
String product_type = jsonObject.getString("product_type");
if (!"".equals(product_type) && !list.contains(product_type)) {
list.add(product_type);
}
}
return list;
}
}
package com.platform.task;
/**
* @Auther: wudepeng
* @Date: 2019/11/15
* @Description: Shopify url
*/
public class ShopifyConstant {
public static String SHOPIFY_LIMIT = "4";
public static String SHOPIFY_PAGE_SIZE = "10";
//apikey
public static String SHOPIFY_API_KEY = "7f0e048ac4016b9357bb1eb2217e4201";
//hostname
public static String SHOPIFY_HOSTNAME = "mollykitty.myshopify.com";
//password
public static String SHOPIFY_PASSWORD = "1c97a1222c5b40e0597c816c6dfecac0";
//api
public static String SHOPIFY_PRODUCTS_API = "/admin/api/2019-10/products.json";
//https://7f0e048ac4016b9357bb1eb2217e4201:1c97a1222c5b40e0597c816c6dfecac0@mollykitty.myshopify.com/admin/api/2019-10/products.json?fields=product_type;
public static String productTypeUrl() {
return "https://" + SHOPIFY_API_KEY + ":" + SHOPIFY_PASSWORD + "@" + SHOPIFY_HOSTNAME + SHOPIFY_PRODUCTS_API;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论