diff --git a/admin/src/main/java/com/jinrui/reference/admin/controller/TagController.java b/admin/src/main/java/com/jinrui/reference/admin/controller/TagController.java index 348bf7b..74f6973 100644 --- a/admin/src/main/java/com/jinrui/reference/admin/controller/TagController.java +++ b/admin/src/main/java/com/jinrui/reference/admin/controller/TagController.java @@ -81,7 +81,7 @@ public class TagController { return PageObject.failedPage(500, "服务端错误,请联系系统管理员!"); } - return tagService.queryTag(parent, needChildren, keyword, exclude, page, size, orderBy, direction); + return tagService.queryTag(6L, needChildren, keyword, exclude, page, size, orderBy, direction); } @GetMapping("/source") diff --git a/core/src/main/java/com/jinrui/reference/core/mapper/TagMapper.java b/core/src/main/java/com/jinrui/reference/core/mapper/TagMapper.java index e88c4ff..4ee0b2d 100644 --- a/core/src/main/java/com/jinrui/reference/core/mapper/TagMapper.java +++ b/core/src/main/java/com/jinrui/reference/core/mapper/TagMapper.java @@ -30,6 +30,16 @@ public interface TagMapper { "from draft_tag_rel where draft_id = #{draftId}") List getDraftTagRelList(@Param("draftId") Long draftId); + // 获取标签是否有关联过文章 + @Select("SELECT count(id) " + + "from news_tag_rel where tag_id = #{tagId}") + Long countNewsTagRelList(@Param("tagId") Long tagId); + + // 获取标签是否有关联过文章 + @Select("SELECT count(id) " + + "from draft_tag_rel where tag_id = #{tagId}") + Long countDraftTagRelList(@Param("tagId") Long tagId); + @Select("select id, news_id as newsId, tag_id as tagId " + "from news_tag_rel where news_id = #{newsId}") List getNewsTagRelList(@Param("newsId") Long newsId); 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 b32650a..bf00020 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 @@ -352,7 +352,7 @@ public class NewsService { // type = earlyKnow.getType();//时间紧,暂时把早知道的type挪过来 // } SaveDraftColumnItem everything = column.getEverything(); - if (showEverything != null && showEverything && everything!=null) { + if (showEverything != null && showEverything && everything != null) { Integer type = everything.getType(); columnMapper.saveNewsColumnRel(newIdRl, 14L, type); } @@ -425,6 +425,8 @@ public class NewsService { newsMapper.deleteDraft(draftId); columnMapper.deleteDraft(draftId); tagMapper.deleteDraft(draftId); + + } private ResultObject saveNewDraft(SaveNewsDTO saveNewsDTO, News news) { @@ -486,12 +488,38 @@ public class NewsService { if (source != null) { tagMapper.saveNewsTagRel(newsId, source); } + + // 先查到这个标签有没有关联过 + 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(!isIn){ + tagMapper.deleteNews(newsTagRel.getNewsId()); + } + } + if (fieldArr != null) { for (Long item : fieldArr) { tagMapper.saveNewsTagRel(newsId, item); - +// boolean canSave = true; +// // 先查到这个标签有没有关联过 +// for (NewsTagRel newsTagRel : newsTagRelList) { +// if (newsTagRel != null) { +// canSave = false; +// } +// } +// if (canSave) { +// tagMapper.saveNewsTagRel(newsId, item); +// } } } @@ -512,7 +540,22 @@ public class NewsService { if (source != null) { tagMapper.saveDraftTagRel(draftId, source); } + // 先查询有没有关联过 + 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(!isIn){ + tagMapper.deleteDraft(draftTagRel.getDraftId()); + } + } if (fieldArr != null) { for (Long item : fieldArr) { tagMapper.saveDraftTagRel(draftId, item); @@ -580,7 +623,7 @@ public class NewsService { int offset = 0; if (current != null) { // offset = (Math.max(0, page - current)) * size; - offset = (Math.max(0, current-1)) * size; + offset = (Math.max(0, current - 1)) * size; } if (StringUtils.hasText(columnParam)) { diff --git a/core/src/main/java/com/jinrui/reference/core/service/TagService.java b/core/src/main/java/com/jinrui/reference/core/service/TagService.java index 291297f..06c9a5a 100644 --- a/core/src/main/java/com/jinrui/reference/core/service/TagService.java +++ b/core/src/main/java/com/jinrui/reference/core/service/TagService.java @@ -148,6 +148,9 @@ public class TagService { */ public ResultObject sourceDelete(Long id) { + if(tagMapper.countNewsTagRelList(id)> 0 || tagMapper.countDraftTagRelList(id)>0){ + return ResultObject.failed("标签已经关联过文章,无法删除"); + } /** * 目前来源标签写死为1