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

- 提交

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