createNews已完成

This commit is contained in:
高子兴 2024-07-03 13:41:01 +08:00
parent b4bdd2fc83
commit 65f15eb9a9
4 changed files with 55 additions and 10 deletions

View File

@ -1,17 +1,17 @@
package org.cmh.backend.NewsManagement.controller; package org.cmh.backend.NewsManagement.controller;
import org.cmh.backend.NewsManagement.dto.GetNewsByPageRequest; import org.cmh.backend.NewsManagement.dto.GetNewsByPageRequest;
import org.cmh.backend.NewsManagement.dto.MessageResponse;
import org.cmh.backend.NewsManagement.dto.NewsRequest;
import org.cmh.backend.NewsManagement.model.News; import org.cmh.backend.NewsManagement.model.News;
import org.cmh.backend.NewsManagement.service.NewsService; import org.cmh.backend.NewsManagement.service.NewsService;
import org.cmh.backend.Utils.JwtVerify; import org.cmh.backend.Utils.JwtVerify;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/news") @RequestMapping("/news")
@ -25,12 +25,19 @@ public class NewsController {
return new ResponseEntity<>(newsService.getNewsByPage(request), HttpStatus.OK); return new ResponseEntity<>(newsService.getNewsByPage(request), HttpStatus.OK);
} }
// @PostMapping @PostMapping
// public ResponseEntity<String> createNews(@RequestBody NewsRequest request) { @JwtVerify
// // TODO: 实现创建资讯的逻辑 public ResponseEntity<MessageResponse> createNews(@RequestBody NewsRequest request) {
// return new ResponseEntity<>("创建成功", HttpStatus.OK); try {
// } newsService.createNews(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);
}
// @PutMapping("/{id}") // @PutMapping("/{id}")
// public ResponseEntity<String> updateNews(@PathVariable Long id, @RequestBody NewsRequest request) { // public ResponseEntity<String> updateNews(@PathVariable Long id, @RequestBody NewsRequest request) {
// // TODO: 实现修改资讯的逻辑 // // TODO: 实现修改资讯的逻辑

View File

@ -0,0 +1,12 @@
package org.cmh.backend.NewsManagement.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
public class MessageResponse {
String message;
}

View File

@ -0,0 +1,15 @@
package org.cmh.backend.NewsManagement.dto;
import lombok.Getter;
import lombok.Setter;
import org.cmh.backend.Utils.JwtRequest;
@Getter
@Setter
public class NewsRequest extends JwtRequest {
private String title;
private String summary;
private String content;
private String imagePath;
private String author;
}

View File

@ -1,6 +1,7 @@
package org.cmh.backend.NewsManagement.service; package org.cmh.backend.NewsManagement.service;
import org.cmh.backend.NewsManagement.dto.GetNewsByPageRequest; import org.cmh.backend.NewsManagement.dto.GetNewsByPageRequest;
import org.cmh.backend.NewsManagement.dto.NewsRequest;
import org.cmh.backend.NewsManagement.model.News; import org.cmh.backend.NewsManagement.model.News;
import org.cmh.backend.NewsManagement.repository.NewsRepository; import org.cmh.backend.NewsManagement.repository.NewsRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -26,4 +27,14 @@ public class NewsService {
Pageable pageable = PageRequest.of(pageNo - 1, pageSize); Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
return newsRepository.findAllByOrderByIdDesc(pageable); return newsRepository.findAllByOrderByIdDesc(pageable);
} }
public void createNews(NewsRequest request) {
News news = new News();
news.setTitle(request.getTitle());
news.setSummary(request.getSummary());
news.setContent(request.getContent());
news.setAuthor(request.getAuthor());
news.setImagePath(request.getImagePath());
newsRepository.save(news);
}
} }