From d62ca60bcffa6dbffd78ab6991a76f6a89555391 Mon Sep 17 00:00:00 2001 From: xpecya Date: Wed, 11 Dec 2024 05:16:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=AE=A1=E7=90=86=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E6=96=B0=E9=97=BB=E4=BF=9D=E5=AD=98=E8=8D=89=E7=A8=BF?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/NewsController.java | 39 +++++- .../reference/core/mapper/ColumnMapper.java | 17 +++ .../reference/core/mapper/NewsMapper.java | 33 +++++ .../reference/core/mapper/TagMapper.java | 8 ++ .../core/model/dto/news/SaveDraftColumn.java | 34 +++++ .../model/dto/news/SaveDraftColumnItem.java | 24 ++++ .../model/dto/news/SaveDraftColumnVip.java | 24 ++++ .../core/model/dto/news/SaveDraftDTO.java | 74 ++++++++++ .../core/model/dto/news/SaveDraftTag.java | 24 ++++ .../reference/core/model/entity/News.java | 16 +++ .../core/model/entity/NewsDraft.java | 15 +++ .../reference/core/service/NewsService.java | 127 +++++++++++++++++- 12 files changed, 433 insertions(+), 2 deletions(-) create mode 100644 core/src/main/java/com/jinrui/reference/core/model/dto/news/SaveDraftColumn.java create mode 100644 core/src/main/java/com/jinrui/reference/core/model/dto/news/SaveDraftColumnItem.java create mode 100644 core/src/main/java/com/jinrui/reference/core/model/dto/news/SaveDraftColumnVip.java create mode 100644 core/src/main/java/com/jinrui/reference/core/model/dto/news/SaveDraftDTO.java create mode 100644 core/src/main/java/com/jinrui/reference/core/model/dto/news/SaveDraftTag.java diff --git a/admin/src/main/java/com/jinrui/reference/admin/controller/NewsController.java b/admin/src/main/java/com/jinrui/reference/admin/controller/NewsController.java index 404de4d..d82a5c6 100644 --- a/admin/src/main/java/com/jinrui/reference/admin/controller/NewsController.java +++ b/admin/src/main/java/com/jinrui/reference/admin/controller/NewsController.java @@ -1,6 +1,9 @@ package com.jinrui.reference.admin.controller; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.jinrui.reference.core.model.dto.news.SaveDraftDTO; import com.jinrui.reference.admin.model.entity.AdminUser; +import com.jinrui.reference.core.model.vo.ResultObject; import com.jinrui.reference.core.model.vo.news.NewsVO; import com.jinrui.reference.admin.service.AdminJwtService; import com.jinrui.reference.core.model.vo.PageObject; @@ -9,6 +12,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -21,9 +26,41 @@ public class NewsController { private static final Logger log = LoggerFactory.getLogger(NewsController.class); private final NewsService newsService; + private final ObjectMapper objectMapper; - public NewsController(NewsService newsService) { + public NewsController(NewsService newsService, + ObjectMapper objectMapper) { this.newsService = newsService; + this.objectMapper = objectMapper; + } + + @PostMapping("/save") + public ResultObject saveDraft(@RequestHeader("auth-token") String token, + @RequestBody SaveDraftDTO saveDraftDTO) { + if (!StringUtils.hasText(token)) { + return ResultObject.failed("登陆Token为空!"); + } + + try { + AdminUser adminUser = AdminJwtService.parseToken(token); + if (adminUser == null) { + log.warn("解析token {}拿不到AdminUser对象!", token); + return ResultObject.failed("登陆Token有误,请联系系统管理员!"); + } + + if (!adminUser.isActive()) { + log.warn("当前用户已被封禁! id = {}", adminUser.getId()); + return ResultObject.failed("当前用户已被封禁!请联系系统管理员!"); + } + + log.info("path: /news/save, method: POST, request user id: {}, param: {}", + adminUser.getId(), objectMapper.writeValueAsString(saveDraftDTO)); + } catch (Exception e) { + log.error("解析登陆Token出错!", e); + return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); + } + + return newsService.saveDraft(saveDraftDTO); } @GetMapping diff --git a/core/src/main/java/com/jinrui/reference/core/mapper/ColumnMapper.java b/core/src/main/java/com/jinrui/reference/core/mapper/ColumnMapper.java index 2d8905b..423c162 100644 --- a/core/src/main/java/com/jinrui/reference/core/mapper/ColumnMapper.java +++ b/core/src/main/java/com/jinrui/reference/core/mapper/ColumnMapper.java @@ -3,6 +3,8 @@ package com.jinrui.reference.core.mapper; import com.jinrui.reference.core.model.entity.Column; import com.jinrui.reference.core.model.entity.DraftColumnRel; import com.jinrui.reference.core.model.entity.NewsColumnRel; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; @@ -15,6 +17,21 @@ import java.util.Set; public interface ColumnMapper { + @Delete("delete from draft_column_rel where draft_id = #{draftId}") + void deleteDraft(@Param("draftId") Long draftId); + + @Insert("