ProjectController.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package com.yingpaipay.business.controller;
  2. import java.util.List;
  3. import com.yingpaipay.business.domain.bo.*;
  4. import com.yingpaipay.business.domain.vo.*;
  5. import com.yingpaipay.business.service.IFolderService;
  6. import lombok.RequiredArgsConstructor;
  7. import jakarta.servlet.http.HttpServletResponse;
  8. import jakarta.validation.constraints.*;
  9. import cn.dev33.satoken.annotation.SaCheckPermission;
  10. import org.dromara.common.core.service.UserService;
  11. import org.dromara.system.service.ISysUserService;
  12. import org.springframework.web.bind.annotation.*;
  13. import org.springframework.validation.annotation.Validated;
  14. import org.dromara.common.idempotent.annotation.RepeatSubmit;
  15. import org.dromara.common.log.annotation.Log;
  16. import org.dromara.common.web.core.BaseController;
  17. import org.dromara.common.mybatis.core.page.PageQuery;
  18. import org.dromara.common.core.domain.R;
  19. import org.dromara.common.core.validate.AddGroup;
  20. import org.dromara.common.core.validate.EditGroup;
  21. import org.dromara.common.log.enums.BusinessType;
  22. import org.dromara.common.excel.utils.ExcelUtil;
  23. import com.yingpaipay.business.service.IProjectService;
  24. import org.dromara.common.mybatis.core.page.TableDataInfo;
  25. /**
  26. * 项目管理
  27. *
  28. * @author Huanyi
  29. * @date 2025-12-05
  30. */
  31. @Validated
  32. @RequiredArgsConstructor
  33. @RestController
  34. @RequestMapping("/project/management")
  35. public class ProjectController extends BaseController {
  36. private final IProjectService projectService;
  37. private final IFolderService folderService;
  38. /**
  39. * 查询项目管理列表
  40. */
  41. @SaCheckPermission("project:management:list")
  42. @GetMapping("/list")
  43. public TableDataInfo<ProjectVo> list(ProjectBo bo, PageQuery pageQuery) {
  44. return projectService.queryPageList(bo, pageQuery);
  45. }
  46. @SaCheckPermission("dashboard:workbench:index")
  47. @GetMapping("/listOnDashboardWorkbench")
  48. public TableDataInfo<ProjectInDashboardWorkbenchVo> listOnDashboardWorkbench(ProjectListOnDashboardWorkbenchBo bo, PageQuery pageQuery) {
  49. return projectService.queryPageListOnDashboardWorkbench(bo, pageQuery);
  50. }
  51. /**
  52. * 导出项目管理列表
  53. */
  54. @SaCheckPermission("project:management:export")
  55. @Log(title = "项目管理", businessType = BusinessType.EXPORT)
  56. @PostMapping("/export")
  57. public void export(ProjectBo bo, HttpServletResponse response) {
  58. List<ProjectVo> list = projectService.queryList(bo);
  59. ExcelUtil.exportExcel(list, "项目管理", ProjectVo.class, response);
  60. }
  61. /**
  62. * 获取项目管理详细信息
  63. *
  64. * @param id 主键
  65. */
  66. @SaCheckPermission("project:management:query")
  67. @GetMapping("/{id}")
  68. public R<ProjectVo> getInfo(@NotNull(message = "主键不能为空")
  69. @PathVariable Long id) {
  70. return R.ok(projectService.queryById(id));
  71. }
  72. /**
  73. * 新增项目管理
  74. */
  75. @SaCheckPermission("project:management:add")
  76. @Log(title = "项目管理", businessType = BusinessType.INSERT)
  77. @RepeatSubmit()
  78. @PostMapping()
  79. public R<Void> add(@Validated(AddGroup.class) @RequestBody ProjectBo bo) {
  80. return toAjax(projectService.insertByBo(bo));
  81. }
  82. /**
  83. * 修改项目管理
  84. */
  85. @SaCheckPermission("project:management:edit")
  86. @Log(title = "项目管理", businessType = BusinessType.UPDATE)
  87. @RepeatSubmit()
  88. @PutMapping()
  89. public R<Void> edit(@Validated(EditGroup.class) @RequestBody ProjectBo bo) {
  90. return toAjax(projectService.updateByBo(bo));
  91. }
  92. /**
  93. * 删除项目管理
  94. *
  95. * @param ids 主键串
  96. */
  97. @SaCheckPermission("project:management:remove")
  98. @Log(title = "项目管理", businessType = BusinessType.DELETE)
  99. @DeleteMapping("/{ids}")
  100. public R<Void> remove(@NotEmpty(message = "主键不能为空")
  101. @PathVariable Long[] ids) {
  102. return toAjax(projectService.deleteWithValidByIds(List.of(ids), true));
  103. }
  104. @GetMapping("/getByName")
  105. public R<List<ProjectListByNameVo>> getListByName(String name) {
  106. return R.ok(projectService.getListByName(name));
  107. }
  108. @GetMapping("/listOnUser")
  109. public R<List<ProjectListByNameVo>> getList() {
  110. return R.ok(projectService.getList());
  111. }
  112. @SaCheckPermission("project:management:updateStatus")
  113. @Log(title = "项目管理", businessType = BusinessType.UPDATE)
  114. @RepeatSubmit()
  115. @PutMapping("/updateStatus")
  116. public R<Void> updateStatus(@RequestBody ProjectUpdateStatusBo bo) {
  117. return toAjax(projectService.updateStatus(bo));
  118. }
  119. @SaCheckPermission("project:management:queryProjectMember")
  120. @Log(title = "项目管理", businessType = BusinessType.UPDATE)
  121. @GetMapping("/queryProjectMember")
  122. public TableDataInfo<ProjectMemberListVo> queryProjectMember(Long id, PageQuery pageQuery) {
  123. return projectService.selectMemberListById(id, pageQuery);
  124. }
  125. @GetMapping("/queryMemberNotInCenter")
  126. public TableDataInfo<ProjectMemberNotInCenterVo> queryMemberNotInCenter(@RequestParam("projectId") Long projectId, @RequestParam("folderId") Long folderId, @RequestParam("name") String name, PageQuery pageQuery) {
  127. return projectService.queryMemberNotInCenter(projectId, folderId, name, pageQuery);
  128. }
  129. @SaCheckPermission("project:management:queryCenterInfo")
  130. @GetMapping("/queryCenterInfo")
  131. public TableDataInfo<ProjectCenterListVo> queryCenterInfo(ProjectCenterListBo bo, PageQuery pageQuery) {
  132. return folderService.queryCenterInfo(bo, pageQuery);
  133. }
  134. // @SaCheckPermission("project:management:queryCenterInfoInviteMember")
  135. // @Log(title = "项目管理", businessType = BusinessType.INSERT)
  136. // @RepeatSubmit()
  137. // @PostMapping("/queryCenterInfoInviteMember")
  138. // public R<Void> inviteCenterMember(@RequestBody ProjectInviteCenterMemberBo bo) {
  139. // return toAjax(projectService.inviteCenterMember(bo));
  140. // }
  141. @SaCheckPermission("project:management:queryProjectMemberAddMember")
  142. @Log(title = "项目管理", businessType = BusinessType.INSERT)
  143. @PostMapping("/queryProjectMemberAddMember")
  144. public R<Void> queryProjectMemberAddMember(@RequestBody ProjectAddMemberBo bo) {
  145. return toAjax(projectService.insertUser(bo));
  146. }
  147. @GetMapping("/getFolders")
  148. public R<ProjectFolderVo> getFolders(@RequestParam("userId") Long userId, @RequestParam("projectId") Long projectId) {
  149. return R.ok(projectService.getFoldersByUserId(userId, projectId));
  150. }
  151. @SaCheckPermission("project:management:queryProjectMemberAssignFolders")
  152. @Log(title = "项目管理", businessType = BusinessType.UPDATE)
  153. @PutMapping("/queryProjectMemberAssignFolders")
  154. public R<Void> queryProjectMemberAssignFolders(@RequestBody ProjectMemberUpdateFoldersBo bo) {
  155. return toAjax(projectService.updateFolders(bo));
  156. }
  157. @SaCheckPermission("project:management:queryCenterMember")
  158. @GetMapping("/queryCenterMember")
  159. public TableDataInfo<ProjectCenterMemberListVo> queryCenterMember(ProjectCenterMemberListBo bo, PageQuery pageQuery) {
  160. return folderService.queryCenterMember(bo, pageQuery);
  161. }
  162. }