NewsController.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /**
  2. * Copyright (c) 2018 Toby All rights reserved.
  3. * <p>
  4. * https://www.scjydz.com
  5. * <p>
  6. * 版权所有,侵权必究!
  7. */
  8. package com.wjp.modules.demo.controller;
  9. import com.github.xiaoymin.knife4j.annotations.Ignore;
  10. import com.wjp.common.annotation.LogOperation;
  11. import com.wjp.common.constant.Constant;
  12. import com.wjp.common.page.PageData;
  13. import com.wjp.common.utils.Result;
  14. import com.wjp.common.validator.AssertUtils;
  15. import com.wjp.common.validator.ValidatorUtils;
  16. import com.wjp.common.validator.group.AddGroup;
  17. import com.wjp.common.validator.group.DefaultGroup;
  18. import com.wjp.common.validator.group.UpdateGroup;
  19. import com.wjp.modules.demo.dto.NewsDTO;
  20. import com.wjp.modules.demo.service.NewsService;
  21. import io.swagger.v3.oas.annotations.Operation;
  22. import io.swagger.v3.oas.annotations.Parameter;
  23. import io.swagger.v3.oas.annotations.Parameters;
  24. import io.swagger.v3.oas.annotations.tags.Tag;
  25. import lombok.AllArgsConstructor;
  26. import org.apache.shiro.authz.annotation.RequiresPermissions;
  27. import org.springframework.web.bind.annotation.*;
  28. import java.util.Arrays;
  29. import java.util.Map;
  30. /**
  31. * 新闻
  32. *
  33. * @author Toby javatangbin@163.com
  34. */
  35. @AllArgsConstructor
  36. @RestController
  37. @RequestMapping("demo/news")
  38. @Tag(name = "新闻管理")
  39. public class NewsController {
  40. private final NewsService newsService;
  41. @GetMapping("page")
  42. @Operation(summary = "分页")
  43. @Parameters({
  44. @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
  45. @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
  46. @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
  47. @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)"),
  48. @Parameter(name = "title", description = "标题"),
  49. @Parameter(name = "startDate", description = "开始时间"),
  50. @Parameter(name = "endDate", description = "结束时间"),
  51. })
  52. @RequiresPermissions("demo:news:all")
  53. public Result<PageData<NewsDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
  54. PageData<NewsDTO> page = newsService.page(params);
  55. return new Result<PageData<NewsDTO>>().ok(page);
  56. }
  57. @Operation(summary = "信息")
  58. @GetMapping("{id}")
  59. @RequiresPermissions("demo:news:all")
  60. public Result<NewsDTO> info(@PathVariable("id") Long id) {
  61. NewsDTO news = newsService.get(id);
  62. return new Result<NewsDTO>().ok(news);
  63. }
  64. @PostMapping
  65. @Operation(summary = "保存")
  66. @LogOperation("保存")
  67. @RequiresPermissions("demo:news:all")
  68. public Result save(NewsDTO dto) {
  69. //效验数据
  70. ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
  71. newsService.save(dto);
  72. return new Result();
  73. }
  74. @PutMapping
  75. @Operation(summary = "修改")
  76. @LogOperation("修改")
  77. @RequiresPermissions("demo:news:all")
  78. public Result update(NewsDTO dto) {
  79. //效验数据
  80. ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
  81. newsService.update(dto);
  82. return new Result();
  83. }
  84. @DeleteMapping
  85. @Operation(summary = "删除")
  86. @LogOperation("删除")
  87. @RequiresPermissions("demo:news:all")
  88. public Result delete(@RequestBody Long[] ids) {
  89. //效验数据
  90. AssertUtils.isArrayEmpty(ids, "id");
  91. newsService.deleteBatchIds(Arrays.asList(ids));
  92. return new Result();
  93. }
  94. }