From 14456b8270be7d203798b174c8e479f2653ffc22 Mon Sep 17 00:00:00 2001 From: sunflower2014 Date: Mon, 9 Jun 2025 19:58:18 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=B5=84=E8=AE=AF=E7=B2=BE=E9=80=89=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=A1=B5=E9=9D=A2=E5=A2=9E=E5=8A=A0=E8=AF=84=E5=88=86?= =?UTF-8?q?=E5=88=97=E5=92=8C=E8=AF=84=E5=88=86=E8=8C=83=E5=9B=B4=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BB=A5=E5=8F=8A=E6=9F=A5=E7=9C=8B=E8=AF=84=E5=88=86?= =?UTF-8?q?=E8=AF=A6=E6=83=85=202.=E7=A6=85=E9=81=93=E4=B8=8A=E7=9A=84bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/core/mapper/NewsMapper.java | 1 + .../reference/core/model/entity/NewsInfo.java | 12 ++- .../core/model/vo/news/NewsScoreVO.java | 49 ++++++++---- .../reference/core/service/NewsService.java | 74 ++++++++----------- 4 files changed, 73 insertions(+), 63 deletions(-) diff --git a/core/src/main/java/com/jinrui/reference/core/mapper/NewsMapper.java b/core/src/main/java/com/jinrui/reference/core/mapper/NewsMapper.java index 40ec89b..ea5685c 100644 --- a/core/src/main/java/com/jinrui/reference/core/mapper/NewsMapper.java +++ b/core/src/main/java/com/jinrui/reference/core/mapper/NewsMapper.java @@ -71,6 +71,7 @@ public interface NewsMapper { @Select("select last_insert_id()") Long getLastInsertId(); + @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") @Insert("insert into news_draft(title, summary, picture, type, content, create_time, update_time)" + "values (#{title}, #{summary}, #{picture}, #{type}, #{content}, now(), now())") void saveDraft(NewsDraft newsDraft); diff --git a/core/src/main/java/com/jinrui/reference/core/model/entity/NewsInfo.java b/core/src/main/java/com/jinrui/reference/core/model/entity/NewsInfo.java index acc5036..0c46b22 100644 --- a/core/src/main/java/com/jinrui/reference/core/model/entity/NewsInfo.java +++ b/core/src/main/java/com/jinrui/reference/core/model/entity/NewsInfo.java @@ -2,11 +2,14 @@ package com.jinrui.reference.core.model.entity; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; /** * 全量资讯 */ +@JsonIgnoreProperties(ignoreUnknown = true) public class NewsInfo { public static final String INDEX_NAME = "news_info"; @@ -31,6 +34,7 @@ public class NewsInfo { * 数据输入时间 */ @JsonProperty("input_date") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "Asia/Shanghai") private Date inputDate; private Integer words; @@ -113,6 +117,7 @@ public class NewsInfo { * 创建时间 */ @JsonProperty("create_time") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "Asia/Shanghai") private Date createTime; /** @@ -124,14 +129,16 @@ public class NewsInfo { * 修改时间 */ @JsonProperty("update_time") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "Asia/Shanghai") private Date updateTime; /** * 编辑ID - 最后一个点击发布的人的ID */ private Long editorId; + - public NewsInfo() {} + public NewsInfo() {} public String getId() { return id; @@ -308,7 +315,8 @@ public class NewsInfo { public void setWords(Integer words) { this.words = words; } - + + public News toNews() { News news = new News(); news.setTitle(this.getTitle()); diff --git a/core/src/main/java/com/jinrui/reference/core/model/vo/news/NewsScoreVO.java b/core/src/main/java/com/jinrui/reference/core/model/vo/news/NewsScoreVO.java index 51fc7b5..c2a5612 100644 --- a/core/src/main/java/com/jinrui/reference/core/model/vo/news/NewsScoreVO.java +++ b/core/src/main/java/com/jinrui/reference/core/model/vo/news/NewsScoreVO.java @@ -1,7 +1,10 @@ package com.jinrui.reference.core.model.vo.news; +import java.util.ArrayList; import java.util.List; +import org.springframework.util.CollectionUtils; + import com.jinrui.reference.core.model.entity.NewsTags; public class NewsScoreVO { @@ -9,15 +12,15 @@ public class NewsScoreVO { private List industryLabel; - private List industryConfidence; + private List industryConfidence; - private List industryScore; + private List industryScore; private List conceptLabel; - private List conceptConfidence; + private List conceptConfidence; - private List conceptScore; + private List conceptScore; private Integer sourceImpact; @@ -33,22 +36,36 @@ public class NewsScoreVO { public NewsScoreVO(NewsTags newsTags) { this.id = newsTags.getId(); this.industryLabel = newsTags.getIndustryLabel(); - this.industryConfidence = newsTags.getIndustryConfidence(); - this.industryScore = newsTags.getIndustryScore(); + if (!CollectionUtils.isEmpty(newsTags.getIndustryConfidence())) { + this.industryConfidence = new ArrayList<>(); + this.industryConfidence.addAll(newsTags.getIndustryConfidence()); + } + + if (!CollectionUtils.isEmpty(newsTags.getIndustryScore())) { + this.industryScore = new ArrayList<>(); + this.industryScore.addAll(newsTags.getIndustryScore()); + } this.conceptLabel = newsTags.getConceptLabel(); - this.conceptConfidence = newsTags.getConceptConfidence(); - this.conceptScore = newsTags.getConceptScore(); + if (!CollectionUtils.isEmpty(newsTags.getConceptConfidence())) { + this.conceptConfidence = new ArrayList<>(); + this.conceptConfidence.addAll(newsTags.getConceptConfidence()); + } + if (!CollectionUtils.isEmpty(newsTags.getConceptScore())) { + this.conceptScore = new ArrayList<>(); + this.conceptScore.addAll(newsTags.getConceptScore()); + } + this.sourceImpact = newsTags.getSourceImpact(); this.chinaFactor = newsTags.getChinaFactor(); this.publicOpinionScore = newsTags.getPublicOpinionScore(); this.newsScore = newsTags.getNewsScore(); } - public List getIndustryScore() { + public List getIndustryScore() { return industryScore; } - public void setIndustryScore(List industryScore) { + public void setIndustryScore(List industryScore) { this.industryScore = industryScore; } @@ -60,19 +77,19 @@ public class NewsScoreVO { this.conceptLabel = conceptLabel; } - public List getConceptConfidence() { + public List getConceptConfidence() { return conceptConfidence; } - public void setConceptConfidence(List conceptConfidence) { + public void setConceptConfidence(List conceptConfidence) { this.conceptConfidence = conceptConfidence; } - public List getConceptScore() { + public List getConceptScore() { return conceptScore; } - public void setConceptScore(List conceptScore) { + public void setConceptScore(List conceptScore) { this.conceptScore = conceptScore; } @@ -124,11 +141,11 @@ public class NewsScoreVO { this.industryLabel = industryLabel; } - public List getIndustryConfidence() { + public List getIndustryConfidence() { return industryConfidence; } - public void setIndustryConfidence(List industryConfidence) { + public void setIndustryConfidence(List industryConfidence) { this.industryConfidence = industryConfidence; } } diff --git a/core/src/main/java/com/jinrui/reference/core/service/NewsService.java b/core/src/main/java/com/jinrui/reference/core/service/NewsService.java index f1fdf6b..443ff62 100644 --- a/core/src/main/java/com/jinrui/reference/core/service/NewsService.java +++ b/core/src/main/java/com/jinrui/reference/core/service/NewsService.java @@ -23,6 +23,7 @@ import org.springframework.util.StringUtils; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.json.JsonMapper; import com.jinrui.reference.core.mapper.ColumnMapper; import com.jinrui.reference.core.mapper.IndustryMapper; import com.jinrui.reference.core.mapper.NewsMapper; @@ -347,19 +348,9 @@ public class NewsService { saveNewsDTO.setStatus(2); saveNewsDTO.setPublishTime(new Date()); saveNewDraft(saveNewsDTO, null); -// newsId = newsMapper.getLastInsertId(); -// List newList = newsMapper.queryNews(null, null, null, null, "createTime", null, 1, 0); -// newsId = newList.get(0).getId(); - newsId = newsMapper.getNewsLastInsertId(); - } - - Long newIdRl; - if (id == null) { - newIdRl = newsId; - } else { - newIdRl = id; } + Long newIdRl = saveNewsDTO.getId(); news = new News(saveNewsDTO); news.setStatus(2); news.setEditorId(editorId); @@ -558,12 +549,13 @@ public class NewsService { return ResultObject.failed(500, "服务器错误,请联系系统管理员!"); } - Long draftId = newsMapper.getLastInsertId(); + Long draftId = newsDraft.getId(); if (news == null) { news = new News(saveNewsDTO); news.setDraftId(draftId); try { newsMapper.saveNews(news); + saveNewsDTO.setId(news.getId()); } catch (Exception e) { log.error("保存新闻错误!", e); return ResultObject.failed(500, "服务器错误,请联系系统管理员!"); @@ -591,15 +583,7 @@ public class NewsService { } } } - Long newsId; - if (news.getId() != null) { - newsId = news.getId(); - } else { -// List newList = newsMapper.queryNews(null, null, null, null, "createTime", null, 1, 0); -// newsId = newList.get(0).getId(); - newsId = newsMapper.getNewsLastInsertId(); - } - + Long newsId = news.getId(); // 保存新闻标签关系 try { SaveDraftTag saveDraftTag = saveNewsDTO.getTag(); @@ -611,23 +595,23 @@ public class NewsService { // 先查到这个标签有没有关联过 List newsTagRelList = tagMapper.getNewsTagRelList(newsId); - // 频道标签多个,批量插 List fieldArr = saveDraftTag.getFieldArr(); - // 如果前端传进来的没有,而库里有,就删掉 - for(NewsTagRel newsTagRel: newsTagRelList){ - boolean isIn = false; - for (Long item : fieldArr) { - if(item == newsTagRel.getTagId()){ - isIn = true; + if (fieldArr != null) { + // 如果前端传进来的没有,而库里有,就删掉 + for(NewsTagRel newsTagRel: newsTagRelList){ + boolean isIn = false; + for (Long item : fieldArr) { + if(item == newsTagRel.getTagId()){ + isIn = true; + break; + } + } + if(!isIn){ + tagMapper.deleteNews(newsTagRel.getNewsId()); } } - if(!isIn){ - tagMapper.deleteNews(newsTagRel.getNewsId()); - } - } - - if (fieldArr != null) { + for (Long item : fieldArr) { tagMapper.saveNewsTagRel(newsId, item); // boolean canSave = true; @@ -664,19 +648,19 @@ public class NewsService { List draftTagRelList = tagMapper.getDraftTagRelList(newsId); List fieldArr = saveDraftTag.getFieldArr(); - // 如果前端传进来的没有,而库里有,就删掉 - for(DraftTagRel draftTagRel: draftTagRelList){ - boolean isIn = false; - for (Long item : fieldArr) { - if(item == draftTagRel.getTagId()){ - isIn = true; + if (fieldArr != null) { + // 如果前端传进来的没有,而库里有,就删掉 + for(DraftTagRel draftTagRel: draftTagRelList){ + boolean isIn = false; + for (Long item : fieldArr) { + if(item == draftTagRel.getTagId()){ + isIn = true; + } + } + if(!isIn){ + tagMapper.deleteDraft(draftTagRel.getDraftId()); } } - if(!isIn){ - tagMapper.deleteDraft(draftTagRel.getDraftId()); - } - } - if (fieldArr != null) { for (Long item : fieldArr) { tagMapper.saveDraftTagRel(draftId, item);