From c42bc764691326b01606ab66b6bd5f47fde0f7da Mon Sep 17 00:00:00 2001 From: 王明元 <97082371@qq.com> Date: Sun, 2 Oct 2022 22:41:36 +0800 Subject: [PATCH] 2022年10月2日22:39:29 避开中文文件夹名称, 修改打印日志, 增加手动处理设置封面图程序 --- fw-dalaran-server/src/main/java/cn/fw/dalaran/server/controller/common/DataExchangeController.java | 4 ++-- fw-dalaran-service/src/main/java/cn/fw/dalaran/service/biz/CommonBizService.java | 14 +++++++------- fw-dalaran-service/src/main/java/cn/fw/dalaran/service/data/impl/ActivityThemeServiceImpl.java | 32 ++++++++++++++++++++++++++++++++ fw-dalaran-service/src/main/test/example/ImageListener.java | 4 ++-- 4 files changed, 43 insertions(+), 11 deletions(-) diff --git a/fw-dalaran-server/src/main/java/cn/fw/dalaran/server/controller/common/DataExchangeController.java b/fw-dalaran-server/src/main/java/cn/fw/dalaran/server/controller/common/DataExchangeController.java index 3d8dcbd..21d4175 100644 --- a/fw-dalaran-server/src/main/java/cn/fw/dalaran/server/controller/common/DataExchangeController.java +++ b/fw-dalaran-server/src/main/java/cn/fw/dalaran/server/controller/common/DataExchangeController.java @@ -126,8 +126,8 @@ public class DataExchangeController { * @throws Exception */ @GetMapping("/calcSimilarity") - public Message calcSimilarity(/*String theme,*/ Long themeId, String fid, String coverUrl, String account, String itemId, Integer type) throws Exception { - return success(commonBizService.validCover(/*theme,*/ themeId, fid, coverUrl, account, itemId, type)); + public Message calcSimilarity(String theme, Long themeId, String fid, String coverUrl, String account, String itemId, Integer type) throws Exception { + return success(commonBizService.validCover(theme, themeId, fid, coverUrl, account, itemId, type)); } /** diff --git a/fw-dalaran-service/src/main/java/cn/fw/dalaran/service/biz/CommonBizService.java b/fw-dalaran-service/src/main/java/cn/fw/dalaran/service/biz/CommonBizService.java index e371ad2..7f417ac 100644 --- a/fw-dalaran-service/src/main/java/cn/fw/dalaran/service/biz/CommonBizService.java +++ b/fw-dalaran-service/src/main/java/cn/fw/dalaran/service/biz/CommonBizService.java @@ -214,7 +214,7 @@ public class CommonBizService { .list(); for (ThemeFile themeFile : list) { try { - final BigDecimal coverSimilarity = this.validCover(/*activityTheme.getTheme(),*/ themeFile.getThemeId(), themeFile.getFileId(), videoCover, accountNo, videoId, 1); + final BigDecimal coverSimilarity = this.validCover(activityTheme.getTheme(), themeFile.getThemeId(), themeFile.getFileId(), videoCover, accountNo, videoId, 1); if (validCover = coverSimilarity.compareTo(rate) >= 0) break; } catch (Exception e) { @@ -491,7 +491,7 @@ public class CommonBizService { .list(); for (ThemeFile themeFile : list) { try { - final BigDecimal coverSimilarity = this.validCover(/*activityTheme.getTheme(),*/ activityTheme.getId(), themeFile.getFileId(), liveCover, accountNo, roomNo, 2); + final BigDecimal coverSimilarity = this.validCover(activityTheme.getTheme(), activityTheme.getId(), themeFile.getFileId(), liveCover, accountNo, roomNo, 2); if (validCover = coverSimilarity.compareTo(rate) >= 0) break; } catch (Exception e) { @@ -968,7 +968,7 @@ public class CommonBizService { * @return 封面图匹配度 * @throws Exception */ - public BigDecimal validCover(/*String theme,*/ Long themeId, String fileId, String coverUrl, String account, String itemId, Integer type) throws Exception { + public BigDecimal validCover(String theme, Long themeId, String fileId, String coverUrl, String account, String itemId, Integer type) throws Exception { int[][] imagePixArr1;// 图片1的像素数组 int[][] imagePixArr2;// 图片2的像素数组 File imageFile1 = this.findLocalCacheImageTheme(/*theme,*/ themeId, fileId); @@ -989,7 +989,7 @@ public class CommonBizService { } } imagePixArr2 = ImageUtils.readImagePixel(imageFile2); - String msg = String.format("\n 主题: %s\n 设置封面文件id: %s\n 账户号: %s\n %s%s\n", /*theme,*/ fileId, account, Objects.equals(type, 1) ? "短视频id: " : "直播间号: ", itemId); + String msg = String.format("\n 主题id: %s \n 主题名: %s\n 设置封面文件id: %s\n 账户号: %s\n %s%s\n", themeId, theme, fileId, account, Objects.equals(type, 1) ? "短视频id: " : "直播间号: ", itemId); return BigDecimal.valueOf(ImageUtils.calcSimilarity(ImageUtils.getFingerprint(imagePixArr1), ImageUtils.getFingerprint(imagePixArr2), msg)); } @@ -1004,7 +1004,7 @@ public class CommonBizService { */ private File findLocalCacheImageUser(/*String theme,*/ Long themeId, String account, String itemId, Integer type) { String tempDir = common.getActivityThemeCoverDir(); - File file = new File(tempDir + File.separator + "activityTheme" + File.separator + themeId /*+ "#" + theme*/ + File.separator + account + File.separator + (Objects.equals(type, 1) ? "video" : "live")); + File file = new File(tempDir + File.separator + "activityTheme" + File.separator + themeId /*+ "#" + theme*/ + File.separator + account + File.separator + (Objects.equals(type, 1) ? "video" : "live")); if (!file.exists()) { boolean mkdirs = file.mkdirs(); if (mkdirs) @@ -1021,7 +1021,7 @@ public class CommonBizService { } /** - * 获取本地已下载的主题背景图 + * 获取本地已下载的主题背景图(主题预设封面图) * * @param theme 主题名 * @param themeId 主题id @@ -1029,7 +1029,7 @@ public class CommonBizService { */ private File findLocalCacheImageTheme(/*String theme,*/ Long themeId, String fileId) { String tempDir = common.getActivityThemeCoverDir(); - File file = new File(tempDir + "activityTheme" + File.separator + themeId /*+ "#" + theme*/ + File.separator + "settingCover"); + File file = new File(tempDir + "activityTheme" + File.separator + themeId /*+ "#" + theme*/ + File.separator + "settingCover"); if (!file.exists()) { boolean mkdirs = file.mkdirs(); if (mkdirs) diff --git a/fw-dalaran-service/src/main/java/cn/fw/dalaran/service/data/impl/ActivityThemeServiceImpl.java b/fw-dalaran-service/src/main/java/cn/fw/dalaran/service/data/impl/ActivityThemeServiceImpl.java index 7c7d690..8f9b1aa 100644 --- a/fw-dalaran-service/src/main/java/cn/fw/dalaran/service/data/impl/ActivityThemeServiceImpl.java +++ b/fw-dalaran-service/src/main/java/cn/fw/dalaran/service/data/impl/ActivityThemeServiceImpl.java @@ -376,6 +376,38 @@ public class ActivityThemeServiceImpl extends ServiceImpl { + try { + File downloadFile = ImageUtils.convertFileByUrl("https://gate.feewee.cn/file/show?fid=" + item, item); + ImageUtils.modifyResolution(downloadFile.getPath(), + tempDir + "activityTheme" + File.separator + themeId /*+ "#" + activityTheme.getTheme()*/ + File.separator + "settingCover", + "fw_theme_cover_" + item, + 512, 512); + boolean result = downloadFile.delete(); + } catch (Exception e) { + log.error("下载转换封面图失败", e); + } + }); + } + + /** * 监听器, 收到消息后执行更新主题信息 * * @param msg 消息 diff --git a/fw-dalaran-service/src/main/test/example/ImageListener.java b/fw-dalaran-service/src/main/test/example/ImageListener.java index 9c9d435..8c06c9a 100644 --- a/fw-dalaran-service/src/main/test/example/ImageListener.java +++ b/fw-dalaran-service/src/main/test/example/ImageListener.java @@ -19,8 +19,8 @@ public class ImageListener implements ActionListener { } public ImageListener() throws Exception { - File imageFile1 = ImageUtils.convertFileByUrl("https://gate.feewee.cn/file/show?fid=e1d71b45dd0e4d73bde25afc3e260de5"); - File imageFile2 = ImageUtils.convertFileByUrl("https://gate.feewee.cn/file/show?fid=7dfedbed8996443584b6b2221b79235e"); + File imageFile1 = ImageUtils.convertFileByUrl("https://gate.feewee.cn/file/show?fid=0684ce9b0d384ff1a1070c61b7ed376c"); + File imageFile2 = ImageUtils.convertFileByUrl("https://gate.feewee.cn/file/show?fid=0aff5b6acf6040459b6d5e69f1290c3b"); //File imageFile2 = ImageUtils.convertFileByUrl("https://p2.a.yximgs.com/upic/2022/01/20/20/BMjAyMjAxMjAyMDEyMTZfNDcwOTM0NDgyXzY1MzMwMDA5Mjk0XzJfMw==_B0296c8ed5afa94b9b7a06dd1612c3ecb.jpg?tag=1-1642748356-nil-0-ndrgo4aid6-21e0d82706b2e935&clientCacheKey=3x4xb3uvxtpibvc.jpg&di=abd4f314&bp=10000"); /*File imageFile1 = new File("C:\\Users\\wmy3969\\Desktop\\2.png"); File imageFile2 = new File("C:\\Users\\wmy3969\\Desktop\\2022.4.23-4.30短视频背景封面jpg\\春风十里焕新鲸喜\\1.png");*/ -- libgit2 0.22.2