Merge branch 'dev/dev_xp' into dev/dev
This commit is contained in:
@@ -14,13 +14,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.security.InvalidKeyException;
|
import java.security.InvalidKeyException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Base64;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -535,6 +534,32 @@ public class MinioUtil {
|
|||||||
int index = path.indexOf("/");
|
int index = path.indexOf("/");
|
||||||
return path.substring(index + 1); // 获取路径的其余部分作为对象名称
|
return path.substring(index + 1); // 获取路径的其余部分作为对象名称
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Integer> getImagesWidthAndHeight(String path){
|
||||||
|
int index = path.indexOf("/");
|
||||||
|
String bucketName = path.substring(0, index);
|
||||||
|
String objectName = path.substring(index + 1);
|
||||||
|
try {
|
||||||
|
// 从 MinIO 下载图片
|
||||||
|
GetObjectResponse response = minioClient.getObject(
|
||||||
|
GetObjectArgs.builder()
|
||||||
|
.bucket(bucketName)
|
||||||
|
.object(objectName)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
|
||||||
|
BufferedImage image = ImageIO.read(response);
|
||||||
|
int width = image.getWidth();
|
||||||
|
int height = image.getHeight();
|
||||||
|
|
||||||
|
log.info("Image path {}, Width: {}, Height: {}", path, width, height);
|
||||||
|
response.close();
|
||||||
|
return Arrays.asList(width, height);
|
||||||
|
} catch (MinioException | IOException | NoSuchAlgorithmException | InvalidKeyException e) {
|
||||||
|
log.error("图片:{}, 获取宽高异常", path);
|
||||||
|
throw new BusinessException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1385,14 +1385,14 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
// 判断有无印花
|
// 判断有无印花
|
||||||
if (CollectionUtil.isNotEmpty(prints)) {
|
if (CollectionUtil.isNotEmpty(prints)) {
|
||||||
// 有印花
|
// 有印花
|
||||||
d.setPrintObject(convertToDesignSinglePrintDTO(prints));
|
d.setPrintObject(convertToDesignSinglePrintDTO(prints, o.getPath()));
|
||||||
}
|
}
|
||||||
// 根据designItemDetailId获取design elements
|
// 根据designItemDetailId获取design elements
|
||||||
List<DesignItemDetailPrint> trims = designItemDetailPrintService.getByDesignItemDetailId(o.getId(), "trims");
|
List<DesignItemDetailPrint> trims = designItemDetailPrintService.getByDesignItemDetailId(o.getId(), "trims");
|
||||||
// 判断有无装饰 trims
|
// 判断有无装饰 trims
|
||||||
if (CollectionUtil.isNotEmpty(trims)) {
|
if (CollectionUtil.isNotEmpty(trims)) {
|
||||||
// 有印花
|
// 有印花
|
||||||
d.setTrims(convertToDesignSinglePrintDTO(trims));
|
d.setTrims(convertToDesignSinglePrintDTO(trims, o.getPath()));
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
//single 和 Models(模特)时候 系统元素为空
|
//single 和 Models(模特)时候 系统元素为空
|
||||||
@@ -1586,7 +1586,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
return designItemDetailVO;
|
return designItemDetailVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DesignSinglePrintDTO convertToDesignSinglePrintDTO(List<DesignItemDetailPrint> designItemDetailPrints) {
|
private DesignSinglePrintDTO convertToDesignSinglePrintDTO(List<DesignItemDetailPrint> designItemDetailPrints, String sketchPath) {
|
||||||
DesignSinglePrintDTO designSinglePrintDTO = new DesignSinglePrintDTO();
|
DesignSinglePrintDTO designSinglePrintDTO = new DesignSinglePrintDTO();
|
||||||
List<DesignSinglePrint> prints = new ArrayList<>();
|
List<DesignSinglePrint> prints = new ArrayList<>();
|
||||||
|
|
||||||
@@ -1601,25 +1601,41 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
designSinglePrint.setPriority(detailPrint.getPriority());
|
designSinglePrint.setPriority(detailPrint.getPriority());
|
||||||
designSinglePrint.setPath(minioUtil.getPreSignedUrl(detailPrint.getPath(), 24 * 60));
|
designSinglePrint.setPath(minioUtil.getPreSignedUrl(detailPrint.getPath(), 24 * 60));
|
||||||
designSinglePrint.setMinIOPath(detailPrint.getPath());
|
designSinglePrint.setMinIOPath(detailPrint.getPath());
|
||||||
|
designSinglePrint.setIfSingle(detailPrint.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE);
|
||||||
List<Float> scales;
|
List<Float> scales;
|
||||||
try{
|
try{
|
||||||
scales = JSONArray.parseArray(detailPrint.getScale(), Float.class);
|
scales = JSONArray.parseArray(detailPrint.getScale(), Float.class);
|
||||||
}catch (JSONException e){
|
}catch (JSONException e){
|
||||||
scales = Arrays.asList(Float.valueOf(detailPrint.getScale()), Float.valueOf(detailPrint.getScale()));
|
Float scale = Float.valueOf(detailPrint.getScale());
|
||||||
|
if (designSinglePrint.getIfSingle()){
|
||||||
|
List<Integer> printWAndH = minioUtil.getImagesWidthAndHeight(detailPrint.getPath());
|
||||||
|
List<Integer> sketchWAndH = minioUtil.getImagesWidthAndHeight(sketchPath);
|
||||||
|
|
||||||
|
scales = Arrays.asList(scale * printWAndH.get(0) / sketchWAndH.get(0), scale * printWAndH.get(1) / sketchWAndH.get(1));
|
||||||
|
}else {
|
||||||
|
scales = Arrays.asList(scale, scale);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
designSinglePrint.setScale(scales);
|
designSinglePrint.setScale(scales);
|
||||||
designSinglePrint.setIfSingle(detailPrint.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE);
|
|
||||||
prints.add(designSinglePrint);
|
prints.add(designSinglePrint);
|
||||||
} else {
|
} else {
|
||||||
// single模式下多个印花
|
// 多个印花
|
||||||
// designSinglePrintDTO.setIfSingle(Boolean.TRUE);
|
// designSinglePrintDTO.setIfSingle(Boolean.TRUE);
|
||||||
designItemDetailPrints.forEach(print -> {
|
designItemDetailPrints.forEach(print -> {
|
||||||
// if (print.getSingleOrOverall().equals("single")) {
|
// if (print.getSingleOrOverall().equals("single")) {
|
||||||
List<Float> scales;
|
List<Float> scales;
|
||||||
|
Boolean ifSingle = print.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE;
|
||||||
|
Float scale = Float.valueOf(print.getScale());
|
||||||
try{
|
try{
|
||||||
scales = JSONArray.parseArray(print.getScale(), Float.class);
|
scales = JSONArray.parseArray(print.getScale(), Float.class);
|
||||||
}catch (JSONException e){
|
}catch (JSONException e){
|
||||||
scales = Arrays.asList(Float.valueOf(print.getScale()), Float.valueOf(print.getScale()));
|
if (ifSingle){
|
||||||
|
List<Integer> printWAndH = minioUtil.getImagesWidthAndHeight(print.getPath());
|
||||||
|
List<Integer> sketchWAndH = minioUtil.getImagesWidthAndHeight(sketchPath);
|
||||||
|
scales = Arrays.asList(scale * printWAndH.get(0) / sketchWAndH.get(0), scale * printWAndH.get(1) / sketchWAndH.get(1));
|
||||||
|
}else {
|
||||||
|
scales = Arrays.asList(scale, scale);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
prints.add(new DesignSinglePrint(
|
prints.add(new DesignSinglePrint(
|
||||||
print.getLevel2Type(),
|
print.getLevel2Type(),
|
||||||
@@ -1629,7 +1645,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
scales,
|
scales,
|
||||||
print.getAngle(),
|
print.getAngle(),
|
||||||
print.getPriority(),
|
print.getPriority(),
|
||||||
print.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE));
|
ifSingle));
|
||||||
// }
|
// }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user