Commit 65dbfc3c authored by shiyu's avatar shiyu

更新图片url

parent 88f442b6
......@@ -19,9 +19,13 @@ import org.springframework.stereotype.Component;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.IntStream;
......@@ -106,37 +110,36 @@ public class SynCoinJob {
CoinRequestDto dto = new CoinRequestDto();
dto.setPage(i);
dto.setLimit(100);
PageInfo<Item> pageInfo2 = itemDao.findByPage(coinRequestDto);
List<Item> itemList = pageInfo2.getList();
List<Item> itemList = itemDao.findListByPage(dto);
itemList.parallelStream().forEach(item -> {
String imageUrl = item.getImages();
if (StringUtils.hasLength(imageUrl)) {
String[] images = imageUrl.split(";");
String newImages = "";
for (String image : images) {
if (StringUtils.hasLength(newImages)) {
newImages = newImages + ";";
StringBuffer stringBuffer = new StringBuffer();
Arrays.stream(images).parallel().forEach(image -> {
if (stringBuffer.length() != 0) {
stringBuffer.append(";");
}
try {
URL url = new URL(image);
InputStream inputStream = url.openStream();
BufferedImage bufferedImage = ImageIO.read(inputStream);
String keyName = CommConsts.UPLOAD_PRE_DIRECTORY + CommonUtils.getUUID() + "_" + bufferedImage.getWidth() + "x" + bufferedImage.getHeight() + "." + MediaTypeEnum.IMAGE_JPG.getExt();
InputStream imageStream = url.openStream();
InputStream imageStream = bufferedImageToInputStream(bufferedImage, MediaTypeEnum.IMAGE_JPG.getExt());
qiniuStorage.store(imageStream, 1, MediaTypeEnum.IMAGE_JPG.getMime(), keyName);
String urlOfSize = qiniuStorage.generateUrl(keyName);
logger.info(">>>>>>>>>>>>> id : {} ; new URL = {}", item.getId(), urlOfSize);
newImages = newImages + urlOfSize;
stringBuffer.append(urlOfSize);
} catch (Exception e) {
newImages = newImages + image;
logger.error("更新图片 url : {}", e);
stringBuffer.append(image);
logger.error("更新图片错误 id: {} , url : {}, error :{}", item.getId(), image, e);
}
}
});
Item updateItem = new Item();
updateItem.setId(item.getId());
updateItem.setImages(newImages);
updateItem.setImages(stringBuffer.toString());
itemDao.update(updateItem);
logger.info(">>>>>>>>>>>>> id : {} ; 更新图片地址成功 !!!", item.getId());
}
});
logger.info(">>>>>>>>>>>>>>>>> 更新商品图片尺寸的页码: {}, 更新成功 <<<<<<<<<<<<<<<<<", i);
......@@ -148,4 +151,21 @@ public class SynCoinJob {
}
/**
* 将BufferedImage转换为InputStream
*
* @param image 数据源
* @param type 图片格式
* @return
*/
private static InputStream bufferedImageToInputStream(BufferedImage image, String type) {
try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {
ImageIO.write(image, type, os);
return new ByteArrayInputStream(os.toByteArray());
} catch (IOException e) {
logger.error("bufferedImageToInputStream 出错,原因: {}", e);
}
return null;
}
}
......@@ -134,7 +134,7 @@ spring:
username: owner
password: VS1xaA37hyu1wJSw
initial-size: 10
max-active: 100
max-active: 200
min-idle: 10
max-wait: 600000
pool-prepared-statements: true
......
......@@ -133,7 +133,7 @@ spring:
username: quanku
password: 3N0W8i0b1Wm35MJ5
initial-size: 10
max-active: 100
max-active: 200
min-idle: 10
max-wait: 60000
pool-prepared-statements: true
......
......@@ -17,6 +17,8 @@ public interface ItemDao {
List<Item> findList(CoinRequestDto coinRequestDto);
List<Item> findListByPage(CoinRequestDto coinRequestDto);
PageInfo<Item> findByPage(CoinRequestDto coinRequestDto);
Item findDetails(Long id);
......
......@@ -50,6 +50,16 @@ public class ItemDaoImpl implements ItemDao {
return itemMapper.selectByExample(example);
}
@Override
public List<Item> findListByPage(CoinRequestDto coinRequestDto) {
ItemExample example = new ItemExample();
ItemExample.Criteria criteria = example.createCriteria();
example.setOrderByClause("create_time asc");
PageHelper.startPage(coinRequestDto.getPage(), coinRequestDto.getLimit());
return itemMapper.selectByExampleWithBLOBs(example);
}
@Override
public PageInfo<Item> findByPage(CoinRequestDto coinRequestDto) {
ItemExample example = new ItemExample();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment