diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java index bcf8a6c39dd9c7561b33be6e35118c2efdcaa8c8..871385294097875c7a502b841b69dbccb74ba484 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java @@ -126,22 +126,24 @@ public class WePosterServiceImpl extends ServiceImpl i poster.setSampleImgPath(poster.getBackgroundImgPath()); return poster.getBackgroundImgPath(); } - Set existFontId = new HashSet<>(); - Map fontMap = poster.getPosterSubassemblyList().stream().filter(wePosterSubassembly -> wePosterSubassembly.getType().equals(1)) + Set existFontId = new HashSet<>(); + Map fontMap = poster.getPosterSubassemblyList().stream().filter(wePosterSubassembly -> wePosterSubassembly.getType().equals(1)) .peek(wePosterSubassembly -> { if (wePosterSubassembly.getFontId() == null) { wePosterSubassembly.setFontId(0L); } }) .filter(wePosterSubassembly -> { - if(existFontId.contains(wePosterSubassembly.getFontId())){ + if(existFontId.contains(wePosterSubassembly.getFontId()+"_"+wePosterSubassembly.getFontSize()+"_"+wePosterSubassembly.getFontStyle())){ return false; }else { - existFontId.add(wePosterSubassembly.getFontId()); + existFontId.add(wePosterSubassembly.getFontId()+"_"+wePosterSubassembly.getFontSize()+"_"+wePosterSubassembly.getFontStyle()); return true; } }) - .collect(Collectors.toMap(WePosterSubassembly::getFontId, wePosterSubassembly -> posterFontService.getFont(wePosterSubassembly.getFontId(), wePosterSubassembly.getFontSize(),wePosterSubassembly.getFontStyle()))); + .collect(Collectors.toMap(wePosterSubassembly -> { + return wePosterSubassembly.getFontId()+"_"+wePosterSubassembly.getFontSize()+"_"+wePosterSubassembly.getFontStyle(); + }, wePosterSubassembly -> posterFontService.getFont(wePosterSubassembly.getFontId(), wePosterSubassembly.getFontSize(),wePosterSubassembly.getFontStyle()))); Map fileCallableMap = poster.getPosterSubassemblyList().stream().map(WePosterSubassembly::getImgPath).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toMap(s->s, NetFileUtils::getNetFile)); if (CollectionUtils.isEmpty(fileCallableMap)) { fileCallableMap = new HashMap<>(); @@ -160,7 +162,7 @@ public class WePosterServiceImpl extends ServiceImpl i poster.setHeight(backgroundImg.getHeight()); poster.getPosterSubassemblyList().forEach(wePosterSubassembly -> { if (wePosterSubassembly.getType().equals(1)) { - Font font = fontMap.get(wePosterSubassembly.getFontId()); + Font font = fontMap.get(wePosterSubassembly.getFontId()+"_"+wePosterSubassembly.getFontSize()+"_"+wePosterSubassembly.getFontStyle()); FontMetrics fontMetrics = ImageUtils.getFontMetrics(font); Color color; if (StringUtils.isNotBlank(wePosterSubassembly.getFontColor())) {