ApprovalController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.dragoninfo.dcuc.authweb.restcontroller.approval;
  2. import com.dragoninfo.dcuc.auth.auth.dto.ApprovalDto;
  3. import com.dragoninfo.dcuc.auth.auth.entity.FuncApproval;
  4. import com.dragoninfo.dcuc.auth.auth.facade.IApprovalFacade;
  5. import com.dragoninfo.dcuc.authweb.restcontroller.approval.vo.FuncApprovalVo;
  6. import com.dragoninfo.dcuc.org.entity.OrgInfo;
  7. import com.dragoninfo.dcuc.org.facade.IOrgInfoFacade;
  8. import com.dragoninfo.dcuc.user.user.entity.UserInfo;
  9. import com.dragoninfo.dcuc.user.user.facade.IUserInfoFacade;
  10. import com.dragoninfo.duceap.core.response.Result;
  11. import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
  12. import com.dragonsoft.duceap.base.entity.search.SearchDTO;
  13. import com.dragonsoft.duceap.web.annotation.Permission;
  14. import io.swagger.annotations.*;
  15. import org.springframework.beans.BeanUtils;
  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.text.SimpleDateFormat;
  20. import java.util.List;
  21. @Api(tags = {"动态授权管理接口"})
  22. @Permission(value = "power_config")
  23. @RestController
  24. @RequestMapping(value = "approsvr/v2/approval/")
  25. public class ApprovalController {
  26. @Autowired
  27. private IApprovalFacade iApprovalFacade;
  28. @Autowired
  29. private IOrgInfoFacade iOrgInfoFacade;
  30. @Autowired
  31. private IUserInfoFacade iUserInfoFacade;
  32. @ApiOperation(value = "获取动态授权信息列表")
  33. @ApiImplicitParam(name = "searchDTO", value = "查询条件", paramType = "body",
  34. examples = @Example({
  35. @ExampleProperty(value = "{'appName_like':'应用名称','roleName_like':'角色名称','proposerName_like':'申请人'," +
  36. "'proposerOrg_eq':'id申请机构id','approvalStatus_eq':'申请状态'}",
  37. mediaType = "application/json")
  38. }))
  39. @PostMapping(value = "_search")
  40. public Result<List<FuncApproval>> approvalPage(SearchDTO searchDTO) {
  41. Page<FuncApproval> page = iApprovalFacade.approvalPage(searchDTO);
  42. page.getContent().stream().forEach(this::setValues);
  43. return Result.success(page.getTotalElements(), page.getContent());
  44. }
  45. @ApiOperation(value = "同意授权")
  46. @ApiImplicitParams({
  47. @ApiImplicitParam(name = "id", value = "id"),
  48. @ApiImplicitParam(name = "hasTime", value = "hasTime,0:不存在时间限制 1:存在时间限制。"),
  49. @ApiImplicitParam(name = "validTime", value = "授权截止时间 格式:yyyyMMddHHmmss", paramType = "string")
  50. })
  51. @PutMapping(value = "agree")
  52. public Result agree(@RequestBody FuncApprovalVo funcApprovalVo) {
  53. ApprovalDto approvalDto = new ApprovalDto();
  54. BeanUtils.copyProperties(funcApprovalVo, approvalDto);
  55. ResponseStatus responseStatus = iApprovalFacade.agree(approvalDto);
  56. Result result = dealResponseStatus(responseStatus);
  57. return result;
  58. }
  59. @ApiOperation(value = "拒绝授权")
  60. @ApiImplicitParams({
  61. @ApiImplicitParam(name = "id", value = "id"),
  62. @ApiImplicitParam(name = "approvalOpinion", value = "拒绝意见"),
  63. })
  64. @PutMapping(value = "disagree")
  65. public Result disagree(@RequestBody FuncApprovalVo funcApprovalVo) {
  66. ApprovalDto approvalDto = new ApprovalDto();
  67. BeanUtils.copyProperties(funcApprovalVo, approvalDto);
  68. ResponseStatus responseStatus = iApprovalFacade.disagree(approvalDto);
  69. Result result = dealResponseStatus(responseStatus);
  70. return result;
  71. }
  72. @ApiOperation(value = "获取详情")
  73. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "授权ID", required = true
  74. , example = "40288a8b699fc2500169a33b20540000")})
  75. @GetMapping(value = "detail/{id}")
  76. public Result<FuncApprovalVo> toDetail(@PathVariable("id") String id) {
  77. FuncApproval approval = iApprovalFacade.detail(id);
  78. setValues(approval);
  79. FuncApprovalVo vo = new FuncApprovalVo();
  80. BeanUtils.copyProperties(approval, vo);
  81. if (approval.getValidTime() != null) {
  82. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  83. vo.setValidTime(format.format(approval.getValidTime()));
  84. }
  85. return Result.success(vo);
  86. }
  87. private FuncApproval setValues(FuncApproval approval) {
  88. OrgInfo orgInfo = iOrgInfoFacade.detail(approval.getProposerOrg());
  89. if (orgInfo != null) {
  90. approval.setOrgName(orgInfo.getFullName());
  91. }
  92. UserInfo approvalUser = iUserInfoFacade.userDetail(approval.getApprovalId());
  93. if (orgInfo != null) {
  94. approval.setApprovalName(approvalUser.getName());
  95. }
  96. return approval;
  97. }
  98. private Result dealResponseStatus(ResponseStatus responseStatus) {
  99. if (ResponseStatus.SUCCESS_CODE.equals(responseStatus.getStatusCode())) {
  100. return Result.success(responseStatus.getMessage());
  101. } else {
  102. return Result.fail(responseStatus.getMessage());
  103. }
  104. }
  105. }