From 3f0155dc0d78285cc5958f9eb6a94fb8cca2f56e Mon Sep 17 00:00:00 2001 From: sunflower2014 Date: Tue, 10 Jun 2025 20:12:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9C=E5=85=A8=E9=87=8F=E8=B5=84?= =?UTF-8?q?=E8=AE=AF=E7=9A=84=E5=AA=92=E4=BD=93=E6=9D=A5=E6=BA=90=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E5=88=99=E6=96=B0=E5=BB=BA=E5=AA=92=E4=BD=93?= =?UTF-8?q?=E6=9D=A5=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/全量资讯库相关脚本.sql | 30 +++++++++++++++++++ .../core/service/NewsInfoService.java | 7 +++++ 2 files changed, 37 insertions(+) create mode 100644 admin/src/main/resources/全量资讯库相关脚本.sql diff --git a/admin/src/main/resources/全量资讯库相关脚本.sql b/admin/src/main/resources/全量资讯库相关脚本.sql new file mode 100644 index 0000000..a886889 --- /dev/null +++ b/admin/src/main/resources/全量资讯库相关脚本.sql @@ -0,0 +1,30 @@ +CREATE TABLE `industry` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '行业分类主键', + `parent_id` bigint(20) NOT NULL, + `primary_name` varchar(200) NOT NULL COMMENT '一级行业名称', + `secondary_name` varchar(200) DEFAULT NULL COMMENT '二级行业名称', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COMMENT='行业分类表'; + + +CREATE TABLE `draft_industry_rel` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `draft_id` bigint(20) NOT NULL COMMENT '资讯草稿ID', + `industry_id` bigint(20) NOT NULL COMMENT '行业分类ID', + PRIMARY KEY (`id`), + KEY `IDX_DRAFT_ID` (`draft_id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COMMENT='资讯草稿行业关联表'; + +CREATE TABLE `news_industry_rel` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '资讯精选行业关联表主键', + `news_id` bigint(20) NOT NULL COMMENT '资讯ID', + `industry_id` bigint(20) NOT NULL COMMENT '行业分类ID', + PRIMARY KEY (`id`), + KEY `IDX_NEWS_ID` (`news_id`) +) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8mb4 COMMENT='资讯精选行业关联表'; + +alter table news add column `newsinfo_id` varchar(20) character set utf8mb4 collate utf8mb4_unicode_ci; +alter table news_tags add column `newsinfo_id` varchar(20) COLLATE utf8mb4_unicode_ci GENERATED ALWAYS AS (cast(`news_id` as char charset utf8mb4)) VIRTUAL; +CREATE INDEX idx_news_tags_newsinfo_id ON news_tags(newsinfo_id); diff --git a/core/src/main/java/com/jinrui/reference/core/service/NewsInfoService.java b/core/src/main/java/com/jinrui/reference/core/service/NewsInfoService.java index 03e0a0e..8dfb8ac 100644 --- a/core/src/main/java/com/jinrui/reference/core/service/NewsInfoService.java +++ b/core/src/main/java/com/jinrui/reference/core/service/NewsInfoService.java @@ -105,18 +105,25 @@ public class NewsInfoService { for (Industry industryItem: industries) { if (industry.equals(industryItem.getPrimaryName()) || industryItem.equals(industryItem.getSecondaryName())) { industryMapper.saveNewsIndustryRel(relNews.getId(), industryItem.getId()); + break; } } } String sourcename = newsInfo.getSourcename(); if (!ObjectUtils.isEmpty(sourcename)) { + boolean isFound = false; List matchedTags = tagMapper.queryTag(1L, sourcename, null, "create_time", null); for (Tag tag: matchedTags) { if (tag.getName().equals(sourcename)) { tagMapper.saveNewsTagRel(relNews.getId(), tag.getId()); + isFound = true; + break; } } + if (!isFound) { + tagMapper.saveTag(1L, sourcename); + } } }