From e6ba8c9a1234660dbdc2491e4a76cdad240f7c48 Mon Sep 17 00:00:00 2001 From: heshunme Date: Wed, 3 Jul 2024 13:48:10 +0800 Subject: [PATCH] =?UTF-8?q?updateNews=E5=B7=B2=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/NewsController.java | 17 ++++++++++++----- .../NewsManagement/service/NewsService.java | 12 ++++++++++++ 2 files changed, 24 insertions(+), 5 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 aa48f13..cec332d 100644 --- a/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java +++ b/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java @@ -38,11 +38,18 @@ public class NewsController { return new ResponseEntity<>(new MessageResponse("创建成功"), HttpStatus.OK); } -// @PutMapping("/{id}") -// public ResponseEntity updateNews(@PathVariable Long id, @RequestBody NewsRequest request) { -// // TODO: 实现修改资讯的逻辑 -// return new ResponseEntity<>("修改成功", HttpStatus.OK); -// } + @PutMapping("/{id}") + @JwtVerify + public ResponseEntity updateNews(@RequestBody NewsRequest request, @PathVariable Long id) { + try { + newsService.updateNews(id, request); + } catch (DataIntegrityViolationException e) { + return new ResponseEntity<>(new MessageResponse("修改失败,新标题已存在或缺少字段"), HttpStatus.BAD_REQUEST); + } catch (Exception e) { + return new ResponseEntity<>(new MessageResponse("创建失败:" + e.getMessage()), HttpStatus.BAD_REQUEST); + } + return new ResponseEntity<>(new MessageResponse("修改成功"), HttpStatus.OK); + } // // @DeleteMapping("/{id}") // public ResponseEntity deleteNews(@PathVariable Long id) { 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 8606776..759ded8 100644 --- a/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java +++ b/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java @@ -37,4 +37,16 @@ public class NewsService { news.setImagePath(request.getImagePath()); newsRepository.save(news); } + + public void updateNews(Long id, NewsRequest request) { + News news = newsRepository.findById(id).orElse(null); + if (news != null) { + news.setTitle(request.getTitle()); + news.setSummary(request.getSummary()); + news.setContent(request.getContent()); + news.setAuthor(request.getAuthor()); + news.setImagePath(request.getImagePath()); + newsRepository.save(news); + } + } }