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;
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.service.NewsService;
import org.cmh.backend.Utils.JwtVerify;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.data.domain.Page;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/news")
@ -25,12 +25,19 @@ public class NewsController {
return new ResponseEntity<>(newsService.getNewsByPage(request), HttpStatus.OK);
}
// @PostMapping
// public ResponseEntity<String> createNews(@RequestBody NewsRequest request) {
// // TODO: 实现创建资讯的逻辑
// return new ResponseEntity<>("创建成功", HttpStatus.OK);
// }
//
@PostMapping
@JwtVerify
public ResponseEntity<MessageResponse> createNews(@RequestBody NewsRequest request) {
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}")
// public ResponseEntity<String> updateNews(@PathVariable Long id, @RequestBody NewsRequest request) {
// // 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;
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.repository.NewsRepository;
import org.springframework.beans.factory.annotation.Autowired;
@ -26,4 +27,14 @@ public class NewsService {
Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
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);
}
}