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); + } + } }