AppController.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package com.dragoninfo.dcuc.authweb.restcontroller.app;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.alibaba.nacos.client.naming.utils.CollectionUtils;
  5. import com.dragoninfo.dcuc.app.dto.ApplyInfoDTO;
  6. import com.dragoninfo.dcuc.app.entity.ApplyInfo;
  7. import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
  8. import com.dragoninfo.dcuc.app.facade.IManufacturerInfoFacade;
  9. import com.dragoninfo.dcuc.auth.auth.vo.ApplicationInfoVO;
  10. import com.dragoninfo.dcuc.auth.power.facade.IApplicationInfoFacade;
  11. import com.dragoninfo.dcuc.auth.sub.dto.AuthOrgDTO;
  12. import com.dragoninfo.dcuc.auth.sub.facade.IAuthOrgInfoFacade;
  13. import com.dragoninfo.dcuc.authweb.business.MtAuthBusiness;
  14. import com.dragoninfo.dcuc.authweb.restcontroller.app.vo.AppVo;
  15. import com.dragoninfo.dcuc.duceap.facade.IDuceapUploadFacade;
  16. import com.dragoninfo.duceap.core.enums.ResultEnum;
  17. import com.dragoninfo.duceap.core.response.Result;
  18. import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
  19. import com.dragonsoft.duceap.base.entity.search.SearchDTO;
  20. import com.dragonsoft.duceap.base.exception.ApplicationException;
  21. import com.dragonsoft.duceap.commons.util.string.StringUtils;
  22. import com.dragonsoft.duceap.core.search.Searchable;
  23. import io.swagger.annotations.Api;
  24. import io.swagger.annotations.ApiImplicitParam;
  25. import io.swagger.annotations.ApiImplicitParams;
  26. import io.swagger.annotations.ApiOperation;
  27. import lombok.extern.slf4j.Slf4j;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.data.domain.Page;
  30. import org.springframework.web.bind.annotation.*;
  31. import java.util.*;
  32. /**
  33. * @author yica
  34. * @date 2018/8/8
  35. */
  36. @Slf4j
  37. @Api(tags = {"应用管理接口"})
  38. @RestController
  39. @RequestMapping(value = "/appsvr/v2")
  40. public class AppController {
  41. @Autowired
  42. private IApplyInfoFacade applyInfoFacade;
  43. @Autowired
  44. private IAuthOrgInfoFacade authOrgInfoFacade;
  45. @Autowired
  46. private IDuceapUploadFacade uploadFacade;
  47. @ApiOperation(value = "查询所有应用列表")
  48. @ApiImplicitParam(name = "applyStatus", value = "applyStatus:应用在用标识(0:启用 1:禁用)")
  49. @GetMapping("allApps")
  50. public Result<List<ApplyInfo>> allApps(@RequestParam(value = "applyStatus",required = false) String applyStatus){
  51. List<ApplyInfo> applyList = applyInfoFacade.findList(applyStatus);
  52. return Result.success(applyList);
  53. }
  54. @ApiOperation(value = "查询应用列表")
  55. @ApiImplicitParam(name = "searchable", value = "查询条件(applyName:应用名称,like;orgCode:应用系统事权单位代码,like;applyStatus:应用在用标识(0:启用 1:禁用);=;)")
  56. @PostMapping(value = "apps")
  57. public Result<List<ApplyInfo>> applyPage(Searchable searchable) {
  58. SearchDTO searchDTO = searchable.toSearchDTO();
  59. Page<ApplyInfo> page = applyInfoFacade.applyInfoPage(searchDTO);
  60. return Result.success(page.getTotalElements(), page.getContent());
  61. }
  62. @ApiOperation(value = "修改应用")
  63. @PutMapping(value = "/app/{id}")
  64. public Result<Object> update(@RequestBody AppVo appVo) {
  65. try {
  66. ApplyInfoDTO applyInfoDTO = new ApplyInfoDTO();
  67. BeanUtil.copyProperties(appVo, applyInfoDTO);
  68. //检查应用信息是否已存
  69. ResponseStatus responseStatus = applyInfoFacade.isRepeat(applyInfoDTO);
  70. if (!ResponseStatus.SUCCESS_CODE.equals(responseStatus.getStatusCode())) {
  71. return Result.fail(ResultEnum.SERVICE_FAIL.getValue(), responseStatus.getMessage());
  72. }
  73. applyInfoFacade.updateApply(applyInfoDTO);
  74. } catch (Exception e) {
  75. log.error("update app", e);
  76. return Result.fail(ResultEnum.SERVICE_FAIL.getValue(), "修改异常");
  77. }
  78. return Result.success();
  79. }
  80. @ApiOperation(value = "保存应用")
  81. @PostMapping(value = "/app")
  82. public Result<Object> save(@RequestBody AppVo appVo) {
  83. try {
  84. ApplyInfoDTO applyInfoDTO = new ApplyInfoDTO();
  85. BeanUtil.copyProperties(appVo, applyInfoDTO);
  86. //检查应用信息是否已存
  87. ResponseStatus responseStatus = applyInfoFacade.isRepeat(applyInfoDTO);
  88. if (!ResponseStatus.SUCCESS_CODE.equals(responseStatus.getStatusCode())) {
  89. return Result.fail(ResultEnum.SERVICE_FAIL.getValue(), responseStatus.getMessage());
  90. }
  91. applyInfoFacade.saveAppIy(applyInfoDTO);
  92. } catch (Exception e) {
  93. log.error("save app", e);
  94. return Result.fail(ResultEnum.SERVICE_FAIL.getValue(), "保存异常");
  95. }
  96. return Result.success();
  97. }
  98. @ApiOperation(value = "删除应用")
  99. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "应用ID", required = true
  100. , example = "40288a8b699fc2500169a33b20540000")})
  101. @DeleteMapping(value = "/app/{id}")
  102. public Result<Object> del(@PathVariable("id") String id) {
  103. //TODO
  104. //权限中心对施工人员和厂商未做管理
  105. applyInfoFacade.del(id);
  106. return Result.success("删除成功");
  107. }
  108. /**
  109. * 详情
  110. *
  111. * @param id
  112. * @return
  113. */
  114. @ApiOperation(value = "查询应用")
  115. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "应用ID", required = true
  116. , example = "40288a8b699fc2500169a33b20540000")})
  117. @GetMapping(value = "/app/{id}")
  118. public Result<AppVo> toDetail(@PathVariable("id") String id) {
  119. //查询应用信息
  120. ApplyInfo applyInfo = applyInfoFacade.applyDetail(id);
  121. //存入机构信息信息
  122. String orgCode = applyInfo.getOrgCode();
  123. if(StringUtils.isNotBlank(orgCode)) {
  124. applyInfo.setOrgName(authOrgInfoFacade.getOrgByCode(orgCode).getFullName());
  125. }
  126. AppVo appVo = new AppVo();
  127. BeanUtil.copyProperties(applyInfo, appVo);
  128. appVo.setFile(uploadFacade.queryByBusiId(id, ""));
  129. return Result.success(appVo);
  130. }
  131. @ApiOperation(value = "开启停止应用")
  132. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "应用ID", required = true
  133. , example = "40288a8b699fc2500169a33b20540000")})
  134. @PutMapping(value = "/app/status/{id}")
  135. public Result<Object> startOrStop(@PathVariable String id) {
  136. String message = "";
  137. try {
  138. message = applyInfoFacade.startOrStop(id);
  139. } catch (Exception e) {
  140. log.error(e.getMessage(), e);
  141. throw new ApplicationException(300, "操作失败", e);
  142. }
  143. return Result.success(message);
  144. }
  145. }