ProjectController.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package com.ylx.project.controller;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.ylx.common.annotation.Log;
  4. import com.ylx.common.core.domain.R;
  5. import com.ylx.common.enums.BusinessType;
  6. import com.ylx.common.exception.ServiceException;
  7. import com.ylx.project.domain.Project;
  8. import com.ylx.project.domain.dto.ProjectAddDTO;
  9. import com.ylx.project.domain.dto.ProjectSearchDTO;
  10. import com.ylx.project.domain.dto.ProjectUpdateDTO;
  11. import com.ylx.project.domain.vo.ProjectDetailVo;
  12. import com.ylx.project.domain.vo.ProjectPageVo;
  13. import com.ylx.project.service.ProjectService;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import lombok.extern.slf4j.Slf4j;
  17. import org.springframework.security.access.prepost.PreAuthorize;
  18. import org.springframework.validation.annotation.Validated;
  19. import org.springframework.web.bind.annotation.*;
  20. import javax.annotation.Resource;
  21. @RestController
  22. @RequestMapping("/project")
  23. @Api(tags = {"项目相关"})
  24. @Slf4j
  25. public class ProjectController {
  26. @Resource
  27. private ProjectService projectService;
  28. /**
  29. * 根据条件分页获取项目列表。
  30. *
  31. * @param page 分页参数
  32. * @param dto 项目查询条件
  33. * @return R<Page<ProjectPageVo>> 项目分页数据
  34. */
  35. @PreAuthorize("@ss.hasPermi('project:list')")
  36. @ApiOperation("根据条件分页查询项目")
  37. @GetMapping("/page")
  38. public R<Page<ProjectPageVo>> page(Page<Project> page, ProjectSearchDTO dto) {
  39. try {
  40. Page<ProjectPageVo> pageData = this.projectService.list(page, dto);
  41. return R.ok(pageData);
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. throw new RuntimeException("分页查询项目异常", e);
  45. }
  46. }
  47. /**
  48. * 编辑项目信息。
  49. *
  50. * @param dto 项目编辑参数
  51. * @return 操作结果
  52. */
  53. @PreAuthorize("@ss.hasPermi('project:edit')")
  54. @ApiOperation("编辑项目")
  55. @Log(title = "编辑项目", businessType = BusinessType.UPDATE)
  56. @PutMapping
  57. public R<?> edit(@Validated @RequestBody ProjectUpdateDTO dto) {
  58. this.projectService.edit(dto);
  59. return R.ok();
  60. }
  61. /**
  62. * 新增项目信息。
  63. *
  64. * @param dto 项目新增参数
  65. * @return 操作结果
  66. */
  67. @PreAuthorize("@ss.hasPermi('project:add')")
  68. @ApiOperation("新增项目")
  69. @Log(title = "新增项目", businessType = BusinessType.INSERT)
  70. @PostMapping
  71. public R<?> add(@Validated @RequestBody ProjectAddDTO dto) {
  72. try {
  73. this.projectService.add(dto);
  74. return R.ok();
  75. } catch (Exception e) {
  76. e.printStackTrace();
  77. throw new RuntimeException("新增项目失败", e);
  78. }
  79. }
  80. /**
  81. * 根据主键ID查询项目详情信息。
  82. *
  83. * @param id 项目ID
  84. * @return 项目详情信息
  85. */
  86. @PreAuthorize("@ss.hasPermi('project:list')")
  87. @ApiOperation("根据主键ID查询项目详情")
  88. @GetMapping("/{id}")
  89. public R<ProjectDetailVo> getDetailsInfo(@PathVariable("id") Long id) {
  90. try {
  91. ProjectDetailVo vo = this.projectService.getDetailsInfo(id);
  92. return R.ok(vo);
  93. } catch (ServiceException e) {
  94. throw e;
  95. } catch (Exception e) {
  96. log.error("根据主键ID查询项目详情异常", e);
  97. throw new RuntimeException("根据主键ID查询项目详情异常", e);
  98. }
  99. }
  100. /**
  101. * 根据主键ID删除项目。
  102. *
  103. * @param id 项目ID
  104. * @return 操作结果
  105. */
  106. @PreAuthorize("@ss.hasPermi('project:remove')")
  107. @ApiOperation("根据主键ID删除项目")
  108. @Log(title = "删除项目", businessType = BusinessType.DELETE)
  109. @DeleteMapping("/{id}")
  110. public R<?> delete(@PathVariable("id") Long id) {
  111. try {
  112. this.projectService.deleteProjectById(id);
  113. return R.ok();
  114. } catch (ServiceException e) {
  115. throw e;
  116. } catch (Exception e) {
  117. log.error("根据主键ID删除项目异常", e);
  118. throw new RuntimeException("根据主键ID删除项目异常", e);
  119. }
  120. }
  121. }