From a4713648a21c1c94025c04a1dc35ad6e1d1cda66 Mon Sep 17 00:00:00 2001 From: heshunme Date: Wed, 3 Jul 2024 14:39:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86delete=EF=BC=8C?= =?UTF-8?q?=E5=B0=9D=E8=AF=95@JwtVerify=E6=A0=A1=E9=AA=8C=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B8=B2=E5=8F=82=E6=95=B0=E7=9A=84=E7=94=A8=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/NewsController.java | 18 ++++++++++++------ .../repository/NewsRepository.java | 15 --------------- .../NewsManagement/service/NewsService.java | 8 ++++++++ 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java b/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java index f11e916..e677ca0 100644 --- a/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java +++ b/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java @@ -1,5 +1,6 @@ package org.cmh.backend.NewsManagement.controller; +import jakarta.persistence.EntityNotFoundException; import org.cmh.backend.NewsManagement.dto.MessageResponse; import org.cmh.backend.NewsManagement.dto.NewsRequest; import org.cmh.backend.NewsManagement.model.News; @@ -48,10 +49,15 @@ public class NewsController { } return new ResponseEntity<>(new MessageResponse("修改成功"), HttpStatus.OK); } -// -// @DeleteMapping("/{id}") -// public ResponseEntity deleteNews(@PathVariable Long id) { -// // TODO: 实现删除资讯的逻辑 -// return new ResponseEntity<>("删除成功", HttpStatus.OK); -// } + + @DeleteMapping("/{id}") + @JwtVerify + public ResponseEntity deleteNews(@PathVariable Long id, @RequestParam String token) { + try { + newsService.deleteNews(id); + } catch (EntityNotFoundException e) { + return new ResponseEntity<>(new MessageResponse("删除失败,文章不存在"), HttpStatus.BAD_REQUEST); + } + return new ResponseEntity<>(new MessageResponse("删除成功"), HttpStatus.OK); + } } diff --git a/src/main/java/org/cmh/backend/NewsManagement/repository/NewsRepository.java b/src/main/java/org/cmh/backend/NewsManagement/repository/NewsRepository.java index 7faad95..5997b39 100644 --- a/src/main/java/org/cmh/backend/NewsManagement/repository/NewsRepository.java +++ b/src/main/java/org/cmh/backend/NewsManagement/repository/NewsRepository.java @@ -5,21 +5,6 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import java.util.ArrayList; -import java.util.List; - public interface NewsRepository extends JpaRepository { - News findByTitle(String title); - - News findBySummary(String summary); - - News findByAuthor(String author); - - News findByImagePath(String imagePath); - - News findByContent(String content); - - News findByTitleAndSummaryAndAuthorAndImagePath(String title, String summary, String author, String imagePath); - Page findAllByOrderByIdDesc(Pageable pageable); } \ No newline at end of file diff --git a/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java b/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java index 91a6f78..bb7f9b6 100644 --- a/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java +++ b/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java @@ -1,5 +1,6 @@ package org.cmh.backend.NewsManagement.service; +import jakarta.persistence.EntityNotFoundException; import org.cmh.backend.NewsManagement.dto.NewsRequest; import org.cmh.backend.NewsManagement.model.News; import org.cmh.backend.NewsManagement.repository.NewsRepository; @@ -46,4 +47,11 @@ public class NewsService { newsRepository.save(news); } } + + public void deleteNews(Long id) { + if (!newsRepository.existsById(id)) { + throw new EntityNotFoundException("News with id " + id + " not found."); + } + newsRepository.deleteById(id); + } }