AttrController.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package com.dragoninfo.dcuc.authweb.restcontroller.sub;
  2. import com.dragoninfo.dcuc.app.entity.ApplyInfo;
  3. import com.dragoninfo.dcuc.auth.sub.dto.RelSearchDTO;
  4. import com.dragoninfo.dcuc.auth.sub.dto.ServiceRelSearchDTO;
  5. import com.dragoninfo.dcuc.auth.sub.facade.IAttrFacade;
  6. import com.dragoninfo.dcuc.auth.sub.vo.*;
  7. import com.dragoninfo.dcuc.authweb.util.VersionUtils;
  8. import com.dragoninfo.duceap.core.response.Result;
  9. import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
  10. import com.dragonsoft.duceap.core.search.Searchable;
  11. import com.dragonsoft.duceap.core.search.filter.Condition;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiImplicitParam;
  14. import io.swagger.annotations.ApiOperation;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.data.domain.Page;
  18. import org.springframework.web.bind.annotation.*;
  19. import java.util.List;
  20. /**
  21. * 主客体属性管理controller
  22. * @author mazq
  23. * @date 2021/5/20
  24. */
  25. @Slf4j
  26. @Api(tags = {"主客体授权-属性管理接口"})
  27. @RestController
  28. @RequestMapping(value = "/attrsvr/"+ VersionUtils.VERSION_UID)
  29. public class AttrController {
  30. @Autowired
  31. private IAttrFacade attrFacade;
  32. @ApiOperation(value = "添加主客体属性")
  33. @ApiImplicitParam(name = "AttrInfoTreeVo", value = "主客体属性Vo")
  34. @PostMapping(value = "attrAdds")
  35. public Result attrAdds(@RequestBody AttrInfoAddVo vo){
  36. ResponseStatus response = attrFacade.attrSave(vo);
  37. if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
  38. return Result.success();
  39. } else {
  40. return Result.fail(ResponseStatus.FAIL_CODE, response.getMessage());
  41. }
  42. }
  43. @ApiOperation(value = "根据id,删除本级下的所有主客体属性,包括本级")
  44. @ApiImplicitParam(name = "id", value = "本级id")
  45. @GetMapping(value = "deleteAllById")
  46. public Result deleteAllById(@RequestParam("id") String id) {
  47. Boolean b = attrFacade.deleteAllById(id);
  48. if (b) {
  49. return Result.success();
  50. } else {
  51. return Result.fail();
  52. }
  53. }
  54. @ApiOperation(value = "根据属性所属类别获取属性列表,返回树结构")
  55. @ApiImplicitParam(name = "attrSubType", value = "属性类别 SUB:主体属性 OBJ:客体属性")
  56. @GetMapping(value = "getAttrTreeList")
  57. public Result getAttrTreeList(@RequestParam("attrSubType") String attrSubType) {
  58. List<AttrInfoTreeVo> list = attrFacade.getAttrTreeList(attrSubType);
  59. return Result.success(list);
  60. }
  61. @ApiOperation(value = "属性关联主客体关系添加")
  62. @ApiImplicitParam(name = "attrRelAcceptVo", value = "主客体-属性关联关系添加对象")
  63. @PostMapping(value = "attrRelAdd")
  64. public Result attrRelAdd(@RequestBody AttrRelAcceptVo vo) {
  65. Boolean b = attrFacade.relAdd(vo);
  66. if (b) {
  67. return Result.success();
  68. } else {
  69. return Result.fail();
  70. }
  71. }
  72. @ApiOperation(value = "查询属性关联的应用列表")
  73. @ApiImplicitParam(name = "RelSearchVo",
  74. value = "searchable 列表查询条件[attrId: 属性id op: =] [id: 应用id op:=] [code:应用code op:=] [status: 在用状态 op: =]")
  75. @PostMapping(value = "relAppPage")
  76. public Result relAppPage(Searchable searchable) {
  77. RelSearchDTO dto = new RelSearchDTO();
  78. setUpSearchValues(dto, searchable);
  79. Page<ApplyInfoRelVo> page = attrFacade.relAppPage(dto);
  80. return Result.success(page.getTotalElements(),page.getContent());
  81. }
  82. @ApiOperation(value = "查询属性未关联的应用列表")
  83. @ApiImplicitParam(name = "RelSearchVo",
  84. value = "searchable 列表查询条件[attrId: 属性id op: =] [id: 应用id op:=] [code:应用code op:like] [status: 在用状态 op: =]")
  85. @PostMapping(value = "notRelAppPage")
  86. public Result notRelAppPage(Searchable searchable) {
  87. RelSearchDTO dto = new RelSearchDTO();
  88. setUpSearchValues(dto, searchable);
  89. Page<ApplyInfoVo> page = attrFacade.notRelAppPage(dto);
  90. return Result.success(page.getTotalElements(),page.getContent());
  91. }
  92. @ApiOperation(value = "查询属性关联的服务列表")
  93. @ApiImplicitParam(name = "RelSearchVo",
  94. value = "searchable 列表查询条件[attrId: 属性id op: =] [name: 服务名称 op:like] [code:服务code op:like] [appCode:应用code op: =] [status: 在用状态 op: =]")
  95. @PostMapping(value = "relServicePage")
  96. public Result<List<ServiceRelVo>> relServicePage(Searchable searchable) {
  97. ServiceRelSearchDTO dto = new ServiceRelSearchDTO();
  98. setUpServiceSearchValues(dto, searchable);
  99. Page<ServiceRelVo> page = attrFacade.relServicePage(dto);
  100. attrFacade.relServicePage(dto);
  101. return Result.success(page.getTotalElements(),page.getContent());
  102. }
  103. @ApiOperation(value = "查询属性未关联的服务列表")
  104. @ApiImplicitParam(name = "RelSearchVo",
  105. value = "searchable 列表查询条件[attrId: 属性id op: =] [name: 服务名称 op:like] [code:服务code op:like] [appCode:应用code op: =] [status: 在用状态 op: =]")
  106. @PostMapping(value = "notRelServicePage")
  107. public Result<List<ServiceResourceVo>> notRelServicePage(Searchable searchable) {
  108. ServiceRelSearchDTO dto = new ServiceRelSearchDTO();
  109. setUpServiceSearchValues(dto, searchable);
  110. Page<ServiceResourceVo> page = attrFacade.notRelServicePage(dto);
  111. return Result.success(page.getTotalElements(),page.getContent());
  112. }
  113. @ApiOperation(value = "删除单个被关联的记录")
  114. @ApiImplicitParam(name = "attrRelId",
  115. value = "attrRelId 关联记录的id")
  116. @GetMapping(value = "delAttrRelResource")
  117. public Result<List<ServiceResourceVo>> delAttrRelResource(@RequestParam("attrRelId") String attrRelId) {
  118. Boolean b = attrFacade.delAttrRelResource(attrRelId);
  119. if (b) {
  120. return Result.success();
  121. } else {
  122. return Result.fail();
  123. }
  124. }
  125. private <T extends ServiceRelSearchDTO> void setUpServiceSearchValues(T dto, Searchable searchable) {
  126. setUpSearchValues(dto, searchable);
  127. Condition appCodeCondition = searchable.getSearchFilterByKey("appCode_eq");
  128. if(null != appCodeCondition) {
  129. dto.setAppCode(appCodeCondition.getValue().toString());
  130. }
  131. }
  132. private <T extends RelSearchDTO> void setUpSearchValues(T dto, Searchable searchable) {
  133. Condition idCondition = searchable.getSearchFilterByKey("id_eq");
  134. Condition nameCondition = searchable.getSearchFilterByKey("name_like");
  135. Condition attrIdEq = searchable.getSearchFilterByKey("attrId_eq");
  136. dto.setAttrId(attrIdEq.getValue().toString());
  137. if(null != idCondition) {
  138. dto.setId(idCondition.getValue().toString());
  139. }
  140. if(null != nameCondition) {
  141. dto.setName(nameCondition.getValue().toString());
  142. }
  143. Condition statusCondition = searchable.getSearchFilterByKey("status_eq");
  144. if(null != statusCondition) {
  145. dto.setStatus(statusCondition.getValue().toString());
  146. }
  147. dto.setPage(searchable.getPageNumber());
  148. dto.setSize(searchable.getPageSize());
  149. }
  150. }