117 lines
4.0 KiB
Java
117 lines
4.0 KiB
Java
package com.qf.myafterprojecy.controller;
|
||
|
||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||
import com.qf.myafterprojecy.pojo.Nonsense;
|
||
import com.qf.myafterprojecy.pojo.dto.NonsenseDto;
|
||
import com.qf.myafterprojecy.service.imp.INonsenseService;
|
||
|
||
import org.slf4j.Logger;
|
||
import org.slf4j.LoggerFactory;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.security.access.prepost.PreAuthorize;
|
||
import org.springframework.validation.annotation.Validated;
|
||
import org.springframework.web.bind.annotation.*;
|
||
|
||
import javax.validation.Valid;
|
||
import javax.validation.constraints.Max;
|
||
import javax.validation.constraints.Min;
|
||
import java.util.List;
|
||
|
||
@RestController
|
||
@RequestMapping("/api/nonsense")
|
||
@Validated
|
||
public class NonsenseController {
|
||
private static final Logger logger = LoggerFactory.getLogger(NonsenseController.class);
|
||
|
||
@Autowired
|
||
private INonsenseService nonsenseService;
|
||
|
||
/**
|
||
* 获取所有疯言疯语内容
|
||
* @return 疯言疯语内容列表
|
||
*/
|
||
@GetMapping
|
||
public ResponseMessage<List<Nonsense>> getAllNonsense() {
|
||
logger.info("请求获取所有疯言疯语内容");
|
||
return nonsenseService.getAllNonsense();
|
||
}
|
||
|
||
/**
|
||
* 根据状态获取疯言疯语内容
|
||
* @param status 状态:0未发表 1已发表 2已删除
|
||
* @return 疯言疯语内容列表
|
||
*/
|
||
@GetMapping("/status/{status}")
|
||
public ResponseMessage<List<Nonsense>> getNonsenseByStatus(
|
||
@PathVariable("status") Integer status) {
|
||
logger.info("请求获取状态为{}的疯言疯语内容", status);
|
||
return nonsenseService.getNonsenseByStatus(status);
|
||
}
|
||
|
||
/**
|
||
* 根据ID获取疯言疯语内容
|
||
* @param id 疯言疯语内容ID
|
||
* @return 疯言疯语内容
|
||
*/
|
||
@GetMapping("/{id}")
|
||
public ResponseMessage<Nonsense> getNonsenseById(@PathVariable("id") Integer id) {
|
||
logger.info("请求获取ID为{}的疯言疯语内容", id);
|
||
return nonsenseService.getNonsenseById(id);
|
||
}
|
||
|
||
/**
|
||
* 创建疯言疯语内容
|
||
* 需要管理员权限
|
||
* @param nonsenseDto 疯言疯语内容数据
|
||
* @return 创建结果
|
||
*/
|
||
@PostMapping
|
||
@PreAuthorize("hasRole('ADMIN')")
|
||
public ResponseMessage<Nonsense> saveNonsense(@Valid @RequestBody NonsenseDto nonsenseDto) {
|
||
logger.info("请求保存疯言疯语内容");
|
||
return nonsenseService.saveNonsense(nonsenseDto);
|
||
}
|
||
|
||
/**
|
||
* 更新疯言疯语内容
|
||
* 需要管理员权限
|
||
* @param id 疯言疯语内容ID
|
||
* @param nonsenseDto 疯言疯语内容数据
|
||
* @return 更新结果
|
||
*/
|
||
@PutMapping("/{id}")
|
||
@PreAuthorize("hasRole('ADMIN')")
|
||
public ResponseMessage<Nonsense> updateNonsense(@PathVariable("id") Integer id, @Valid @RequestBody NonsenseDto nonsenseDto) {
|
||
logger.info("请求更新ID为{}的疯言疯语内容", id);
|
||
return nonsenseService.updateNonsense(id, nonsenseDto);
|
||
}
|
||
|
||
/**
|
||
* 删除疯言疯语内容
|
||
* 需要管理员权限
|
||
* @param id 疯言疯语内容ID
|
||
* @return 删除结果
|
||
*/
|
||
@DeleteMapping("/{id}")
|
||
@PreAuthorize("hasRole('ADMIN')")
|
||
public ResponseMessage<Boolean> deleteNonsense(@PathVariable("id") Integer id) {
|
||
logger.info("请求删除ID为{}的疯言疯语内容", id);
|
||
return nonsenseService.deleteNonsense(id);
|
||
}
|
||
|
||
/**
|
||
* 更新疯言疯语内容状态
|
||
* 需要管理员权限
|
||
* @param id 疯言疯语内容ID
|
||
* @param status 新状态:0未发表 1已发表 2已删除
|
||
* @return 更新结果
|
||
*/
|
||
@PutMapping("/{id}/status/{status}")
|
||
@PreAuthorize("hasRole('ADMIN')")
|
||
public ResponseMessage<Nonsense> updateNonsenseStatus(
|
||
@PathVariable("id") Integer id,
|
||
@PathVariable("status") @Min(0) @Max(2) Integer status) {
|
||
logger.info("请求更新ID为{}的疯言疯语内容状态为{}", id, status);
|
||
return nonsenseService.updateNonsenseStatus(id, status);
|
||
}
|
||
} |