| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package com.aijiuyi.admin.controller;
- import com.aijiuyi.admin.common.annotation.Log;
- import com.aijiuyi.admin.common.entity.Result;
- import com.aijiuyi.admin.common.enums.OperationType;
- import com.aijiuyi.admin.controller.dto.ArticleRejectDTO;
- import com.aijiuyi.admin.controller.dto.ContentArticleQueryDTO;
- import com.aijiuyi.admin.entity.ContentArticle;
- import com.aijiuyi.admin.service.ContentArticleService;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.validation.Valid;
- /**
- * 内容管理(文章)Controller
- * 提供文章的增删改查、提交审核、发布、拒绝、上下架接口
- */
- @RestController
- @RequestMapping("/content/articles")
- public class ContentArticleController {
- @Autowired
- private ContentArticleService articleService;
- /**
- * 分页查询文章列表
- *
- * @param queryDTO 查询条件
- * @return 分页结果
- */
- @GetMapping
- @Log(value = "查询文章列表", module = "内容管理", operationType = OperationType.QUERY)
- public Result<IPage<ContentArticle>> page(ContentArticleQueryDTO queryDTO) {
- return Result.success(articleService.pageList(queryDTO));
- }
- /**
- * 查询文章详情
- *
- * @param id 文章ID
- * @return 文章详情
- */
- @GetMapping("/{id}")
- @Log(value = "查询文章详情", module = "内容管理", operationType = OperationType.QUERY)
- public Result<ContentArticle> getById(@PathVariable Long id) {
- return Result.success(articleService.getById(id));
- }
- /**
- * 新建文章(初始状态为草稿)
- *
- * @param article 文章内容
- * @return 操作结果
- */
- @PostMapping
- @Log(value = "新建文章", module = "内容管理", operationType = OperationType.INSERT)
- public Result<Void> add(@RequestBody ContentArticle article) {
- articleService.addArticle(article);
- return Result.success();
- }
- /**
- * 编辑文章
- *
- * @param id 文章ID
- * @param article 文章内容
- * @return 操作结果
- */
- @PutMapping("/{id}")
- @Log(value = "编辑文章", module = "内容管理", operationType = OperationType.UPDATE)
- public Result<Void> update(@PathVariable Long id, @RequestBody ContentArticle article) {
- article.setId(id);
- articleService.updateArticle(article);
- return Result.success();
- }
- /**
- * 删除文章(逻辑删除,仅系统管理员可操作)
- *
- * @param id 文章ID
- * @return 操作结果
- */
- @DeleteMapping("/{id}")
- @Log(value = "删除文章", module = "内容管理", operationType = OperationType.DELETE)
- public Result<Void> delete(@PathVariable Long id) {
- articleService.deleteArticle(id);
- return Result.success();
- }
- /**
- * 提交审核(草稿/已拒绝 → 待审核)
- *
- * @param id 文章ID
- * @return 操作结果
- */
- @PostMapping("/{id}/submit")
- @Log(value = "提交文章审核", module = "内容管理", operationType = OperationType.UPDATE)
- public Result<Void> submit(@PathVariable Long id) {
- articleService.submitForReview(id);
- return Result.success();
- }
- /**
- * 审核通过并发布(待审核 → 已发布,仅系统管理员)
- *
- * @param id 文章ID
- * @return 操作结果
- */
- @PostMapping("/{id}/publish")
- @Log(value = "发布文章", module = "内容管理", operationType = OperationType.UPDATE)
- public Result<Void> publish(@PathVariable Long id) {
- articleService.publish(id);
- return Result.success();
- }
- /**
- * 拒绝审核(待审核 → 已拒绝,仅系统管理员)
- *
- * @param id 文章ID
- * @param rejectDTO 拒绝原因
- * @return 操作结果
- */
- @PostMapping("/{id}/reject")
- @Log(value = "拒绝文章审核", module = "内容管理", operationType = OperationType.UPDATE)
- public Result<Void> reject(@PathVariable Long id, @RequestBody @Valid ArticleRejectDTO rejectDTO) {
- articleService.reject(id, rejectDTO);
- return Result.success();
- }
- /**
- * 下架(已发布 → 已下架,仅系统管理员)
- *
- * @param id 文章ID
- * @return 操作结果
- */
- @PostMapping("/{id}/offline")
- @Log(value = "下架文章", module = "内容管理", operationType = OperationType.UPDATE)
- public Result<Void> offline(@PathVariable Long id) {
- articleService.offline(id);
- return Result.success();
- }
- /**
- * 重新上架(已下架 → 已发布,仅系统管理员)
- *
- * @param id 文章ID
- * @return 操作结果
- */
- @PostMapping("/{id}/online")
- @Log(value = "上架文章", module = "内容管理", operationType = OperationType.UPDATE)
- public Result<Void> online(@PathVariable Long id) {
- articleService.online(id);
- return Result.success();
- }
- }
|