提交 b535bbfe authored 作者: 梁业锦's avatar 梁业锦 💬 提交者: 何春颖

- 提交

上级 fe1fcf0e
...@@ -79,8 +79,7 @@ public class ImpartCode { ...@@ -79,8 +79,7 @@ public class ImpartCode {
*/ */
@Test @Test
public void goImport() { public void goImport() {
List<String> list = Arrays.asList("Men", "Women", "Children", "Afri Home", "Cosmetics", "Hair", "Sportswear", "Electronics"); List<String> list = Arrays.asList(/*"Men", "Women", "Children", "Afri Home", "Cosmetics",*/ "Hair", "Sportswear", "Electronics");
// 创建线程池
for (String product_type : list) { for (String product_type : list) {
// 记录商品数量 // 记录商品数量
int productCount = 0; int productCount = 0;
...@@ -101,7 +100,11 @@ public class ImpartCode { ...@@ -101,7 +100,11 @@ public class ImpartCode {
.header("Authorization", "Basic N2YwZTA0OGFjNDAxNmI5MzU3YmIxZWIyMjE3ZTQyMDE6MWM5N2ExMjIyYzViNDBlMDU5N2M4MTZjNmRmZWNhYzA=") .header("Authorization", "Basic N2YwZTA0OGFjNDAxNmI5MzU3YmIxZWIyMjE3ZTQyMDE6MWM5N2ExMjIyYzViNDBlMDU5N2M4MTZjNmRmZWNhYzA=")
.execute().header("link"); .execute().header("link");
// 获取第一次循环后的请求 // 获取第一次循环后的请求
try {
headerLink = headerLink.split(";")[0].replaceAll("<", "").replaceAll(">", ""); headerLink = headerLink.split(";")[0].replaceAll("<", "").replaceAll(">", "");
} catch (Exception e) {
continue;
}
// 无限导入 // 无限导入
while (true) { while (true) {
// 导入商品 // 导入商品
...@@ -141,6 +144,8 @@ public class ImpartCode { ...@@ -141,6 +144,8 @@ public class ImpartCode {
JSONObject jsonObject = JSONObject.fromObject(data); JSONObject jsonObject = JSONObject.fromObject(data);
// 取每个数组中的 products 数组节点 // 取每个数组中的 products 数组节点
JSONArray productsArr = jsonObject.getJSONArray("products"); JSONArray productsArr = jsonObject.getJSONArray("products");
// 记录线程数
int threadCount = 0;
for (int i = 0; i < productsArr.size(); i++) { for (int i = 0; i < productsArr.size(); i++) {
...@@ -157,10 +162,13 @@ public class ImpartCode { ...@@ -157,10 +162,13 @@ public class ImpartCode {
String id = productsObj.getString("id"); String id = productsObj.getString("id");
// 查询该商品的 id 是否已保存 // 查询该商品的 id 是否已保存
if (tbCfStationItemDao.queryByCode(id) != null) { if (tbCfStationItemDao.queryByCode(id) != null) {
System.err.println("已存在的商品,跳过导入的商品id为:" + id);
// 跳过循环 // 跳过循环
continue; continue;
} }
threadCount ++;
// 线程任务 // 线程任务
int finalThreadCount = threadCount;
Runnable runnable = () -> { Runnable runnable = () -> {
try { try {
// 用于记录 option 的属性名 // 用于记录 option 的属性名
...@@ -223,7 +231,11 @@ public class ImpartCode { ...@@ -223,7 +231,11 @@ public class ImpartCode {
tbCfOptionDao.save(optionEntity); tbCfOptionDao.save(optionEntity);
} }
categoryEntity.setCategoryDesc(categoryBuilder.toString()); categoryEntity.setCategoryDesc(categoryBuilder.toString());
try {
tbCfCategoryDao.save(categoryEntity); tbCfCategoryDao.save(categoryEntity);
} catch (Exception e) {
tbCfCategoryDao.update(categoryEntity);
}
} }
TbCfStationItemEntity tbCfStationItem = new TbCfStationItemEntity(); // 商品主体信息实体类 TbCfStationItemEntity tbCfStationItem = new TbCfStationItemEntity(); // 商品主体信息实体类
...@@ -356,7 +368,9 @@ public class ImpartCode { ...@@ -356,7 +368,9 @@ public class ImpartCode {
// 上传图片 // 上传图片
src = imageObj.getString("src"); src = imageObj.getString("src");
inputStream = getImageStream(src); inputStream = getImageStream(src);
if (inputStream != null) {
bytes = toByteArray(inputStream); bytes = toByteArray(inputStream);
}
url = OssUtil.upload(bytes, id + "_sku_" + j + ".jpg", "zion"); url = OssUtil.upload(bytes, id + "_sku_" + j + ".jpg", "zion");
// 拼接富文本的 HTML // 拼接富文本的 HTML
...@@ -364,6 +378,7 @@ public class ImpartCode { ...@@ -364,6 +378,7 @@ public class ImpartCode {
.append(url).append("\" title=\"") .append(url).append("\" title=\"")
.append(IdUtil.randomUUID()).append("_350x350") .append(IdUtil.randomUUID()).append("_350x350")
.append(IdUtil.simpleUUID()).append(".jpg\"/></p>"); .append(IdUtil.simpleUUID()).append(".jpg\"/></p>");
System.err.println("富文本图片内容:" + imageBuilder.toString());
} }
// 商品详情 // 商品详情
TbCfItemDescEntity itemDescEntity = tbCfItemDescDao.queryObject(itemId); TbCfItemDescEntity itemDescEntity = tbCfItemDescDao.queryObject(itemId);
...@@ -374,6 +389,7 @@ public class ImpartCode { ...@@ -374,6 +389,7 @@ public class ImpartCode {
itemDescEntity.setCreateTime(date); itemDescEntity.setCreateTime(date);
tbCfItemDescDao.save(itemDescEntity); tbCfItemDescDao.save(itemDescEntity);
} }
System.err.println("线程号:" + finalThreadCount + ",已执行完成!");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
// 记录失败的产品记录 // 记录失败的产品记录
...@@ -388,8 +404,8 @@ public class ImpartCode { ...@@ -388,8 +404,8 @@ public class ImpartCode {
}; };
// 提交任务执行 // 提交任务执行
executorService.submit(runnable); executorService.submit(runnable);
System.err.println("线程号:" + finalThreadCount + ",开始提交任务!");
} }
} }
/** /**
...@@ -402,8 +418,8 @@ public class ImpartCode { ...@@ -402,8 +418,8 @@ public class ImpartCode {
public static InputStream getImageStream(String url) { public static InputStream getImageStream(String url) {
try { try {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setReadTimeout(5000); connection.setReadTimeout(10000);
connection.setConnectTimeout(5000); connection.setConnectTimeout(10000);
connection.setRequestMethod("GET"); connection.setRequestMethod("GET");
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
return connection.getInputStream(); return connection.getInputStream();
......
...@@ -59,8 +59,8 @@ log4j.appender.slowsql.layout=org.apache.log4j.PatternLayout ...@@ -59,8 +59,8 @@ log4j.appender.slowsql.layout=org.apache.log4j.PatternLayout
log4j.appender.slowsql.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss SSS}|%5p|%F.%M:%L|%m%n log4j.appender.slowsql.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss SSS}|%5p|%F.%M:%L|%m%n
#控制台输出所有SQL #控制台输出所有SQL
#便于调试 生产环境注释 #便于调试 生产环境注释
log4j.logger.com.platform.dao=DEBUG,sql #log4j.logger.com.platform.dao=DEBUG,sql
log4j.appender.sql=org.apache.log4j.ConsoleAppender #log4j.appender.sql=org.apache.log4j.ConsoleAppender
log4j.appender.sql.Target=System.out #log4j.appender.sql.Target=System.out
log4j.appender.sql.layout=org.apache.log4j.PatternLayout #log4j.appender.sql.layout=org.apache.log4j.PatternLayout
log4j.appender.sql.layout.ConversionPattern=%m %n #log4j.appender.sql.layout.ConversionPattern=%m %n
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论