ModuleDataAuthorizeSchemeController.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package jnpf.base.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.dev33.satoken.annotation.SaMode;
  4. import io.swagger.v3.oas.annotations.Operation;
  5. import io.swagger.v3.oas.annotations.Parameter;
  6. import io.swagger.v3.oas.annotations.Parameters;
  7. import io.swagger.v3.oas.annotations.tags.Tag;
  8. import jakarta.validation.Valid;
  9. import jnpf.base.ActionResult;
  10. import jnpf.base.Pagination;
  11. import jnpf.base.entity.ModuleDataAuthorizeSchemeEntity;
  12. import jnpf.base.model.moduledataauthorizescheme.DataAuthorizeSchemeCrForm;
  13. import jnpf.base.model.moduledataauthorizescheme.DataAuthorizeSchemeInfoVO;
  14. import jnpf.base.model.moduledataauthorizescheme.DataAuthorizeSchemeListVO;
  15. import jnpf.base.model.moduledataauthorizescheme.DataAuthorizeSchemeUpForm;
  16. import jnpf.base.service.ModuleDataAuthorizeSchemeService;
  17. import jnpf.base.vo.ListVO;
  18. import jnpf.base.vo.PageListVO;
  19. import jnpf.base.vo.PaginationVO;
  20. import jnpf.constant.MsgCode;
  21. import jnpf.exception.DataException;
  22. import jnpf.permission.service.AuthorizeService;
  23. import jnpf.util.JsonUtil;
  24. import jnpf.util.JsonUtilEx;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.web.bind.annotation.*;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29. /**
  30. * 数据权限方案
  31. *
  32. * @author JNPF开发平台组
  33. * @version V3.1.0
  34. * @copyright 引迈信息技术有限公司
  35. * @date 2019年9月27日 上午9:18
  36. */
  37. @Tag(name = "数据权限方案", description = "ModuleDataAuthorizeScheme")
  38. @RestController
  39. @RequestMapping("/api/system/ModuleDataAuthorizeScheme")
  40. public class ModuleDataAuthorizeSchemeController extends SuperController<ModuleDataAuthorizeSchemeService, ModuleDataAuthorizeSchemeEntity> {
  41. @Autowired
  42. private ModuleDataAuthorizeSchemeService schemeService;
  43. @Autowired
  44. private AuthorizeService authorizeService;
  45. /**
  46. * 列表
  47. *
  48. * @param moduleId 功能主键
  49. * @return ignore
  50. */
  51. @Operation(summary = "方案列表")
  52. @Parameters({
  53. @Parameter(name = "moduleId", description = "功能主键", required = true)
  54. })
  55. @GetMapping("/{moduleId}/List")
  56. public ActionResult<PageListVO<DataAuthorizeSchemeListVO>> list(@PathVariable("moduleId") String moduleId, Pagination pagination) {
  57. List<ModuleDataAuthorizeSchemeEntity> data = schemeService.getList(moduleId, pagination);
  58. List<DataAuthorizeSchemeListVO> list = JsonUtil.getJsonToList(data, DataAuthorizeSchemeListVO.class);
  59. PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class);
  60. return ActionResult.page(list, paginationVO);
  61. }
  62. /**
  63. * 信息
  64. *
  65. * @param id 主键值
  66. * @return ignore
  67. * @throws DataException ignore
  68. */
  69. @Operation(summary = "获取方案信息")
  70. @Parameters({
  71. @Parameter(name = "id", description = "主键值", required = true)
  72. })
  73. @SaCheckPermission(value = {"permission.resource", "appConfig.appResource"}, mode = SaMode.OR)
  74. @GetMapping("/{id}")
  75. public ActionResult<DataAuthorizeSchemeInfoVO> info(@PathVariable("id") String id) throws DataException {
  76. ModuleDataAuthorizeSchemeEntity entity = schemeService.getInfo(id);
  77. DataAuthorizeSchemeInfoVO vo = JsonUtilEx.getJsonToBeanEx(entity, DataAuthorizeSchemeInfoVO.class);
  78. return ActionResult.success(vo);
  79. }
  80. /**
  81. * 新建
  82. *
  83. * @param dataAuthorizeSchemeCrForm 实体对象
  84. * @return ignore
  85. */
  86. @Operation(summary = "新建方案")
  87. @Parameters({
  88. @Parameter(name = "dataAuthorizeSchemeCrForm", description = "实体对象", required = true)
  89. })
  90. @SaCheckPermission(value = {"permission.resource", "appConfig.appResource"}, mode = SaMode.OR)
  91. @PostMapping
  92. public ActionResult create(@RequestBody @Valid DataAuthorizeSchemeCrForm dataAuthorizeSchemeCrForm) {
  93. ModuleDataAuthorizeSchemeEntity entity = JsonUtil.getJsonToBean(dataAuthorizeSchemeCrForm, ModuleDataAuthorizeSchemeEntity.class);
  94. // 判断fullName是否重复
  95. if (schemeService.isExistByFullName(entity.getId(), entity.getFullName(), entity.getModuleId())) {
  96. return ActionResult.fail(MsgCode.EXIST001.get());
  97. }
  98. // 判断encode是否重复
  99. if (schemeService.isExistByEnCode(entity.getId(), entity.getEnCode(), entity.getModuleId())) {
  100. return ActionResult.fail(MsgCode.EXIST002.get());
  101. }
  102. schemeService.create(entity);
  103. return ActionResult.success(MsgCode.SU001.get());
  104. }
  105. /**
  106. * 更新
  107. *
  108. * @param id 主键值
  109. * @param dataAuthorizeSchemeUpForm 实体对象
  110. * @return ignore
  111. */
  112. @Operation(summary = "更新方案")
  113. @Parameters({
  114. @Parameter(name = "id", description = "主键值", required = true),
  115. @Parameter(name = "dataAuthorizeSchemeUpForm", description = "实体对象", required = true)
  116. })
  117. @SaCheckPermission(value = {"permission.resource", "appConfig.appResource"}, mode = SaMode.OR)
  118. @PutMapping("/{id}")
  119. public ActionResult update(@PathVariable("id") String id, @RequestBody @Valid DataAuthorizeSchemeUpForm dataAuthorizeSchemeUpForm) {
  120. ModuleDataAuthorizeSchemeEntity entity = JsonUtil.getJsonToBean(dataAuthorizeSchemeUpForm, ModuleDataAuthorizeSchemeEntity.class);
  121. // 判断encode是否重复
  122. if ("1".equals(String.valueOf(entity.getAllData()))) {
  123. return ActionResult.fail(MsgCode.SYS021.get());
  124. }
  125. // 判断fullName是否重复
  126. if (schemeService.isExistByFullName(id, entity.getFullName(), entity.getModuleId())) {
  127. return ActionResult.fail(MsgCode.EXIST001.get());
  128. }
  129. // 判断encode是否重复
  130. if (schemeService.isExistByEnCode(id, entity.getEnCode(), entity.getModuleId())) {
  131. return ActionResult.fail(MsgCode.EXIST002.get());
  132. }
  133. boolean flag = schemeService.update(id, entity);
  134. if (!flag) {
  135. return ActionResult.success(MsgCode.FA002.get());
  136. }
  137. authorizeService.removeAuthByUserOrMenu(null, new ArrayList() {{
  138. add(dataAuthorizeSchemeUpForm.getModuleId());
  139. }});
  140. return ActionResult.success(MsgCode.SU004.get());
  141. }
  142. /**
  143. * 删除
  144. *
  145. * @param id 主键值
  146. * @return ignore
  147. */
  148. @Operation(summary = "删除方案")
  149. @Parameters({
  150. @Parameter(name = "id", description = "主键值", required = true)
  151. })
  152. @SaCheckPermission(value = {"permission.resource", "appConfig.appResource"}, mode = SaMode.OR)
  153. @DeleteMapping("/{id}")
  154. public ActionResult delete(@PathVariable("id") String id) {
  155. ModuleDataAuthorizeSchemeEntity entity = schemeService.getInfo(id);
  156. if (entity != null) {
  157. schemeService.delete(entity);
  158. return ActionResult.success(MsgCode.SU003.get());
  159. }
  160. return ActionResult.fail(MsgCode.FA003.get());
  161. }
  162. }