SmartDataSourceController.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. package com.template.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.template.annotation.DESRespondSecret;
  5. import com.template.api.SmartDataSourceControllerAPI;
  6. import com.template.common.utils.CommonUtil;
  7. import com.template.common.utils.paramUtils;
  8. import com.template.model.pojo.SmartDataSource;
  9. import com.template.model.pojo.SmartDataSourceLog;
  10. import com.template.model.pojo.SmartDataTask;
  11. import com.template.model.result.CommonResult;
  12. import com.template.model.result.PageUtils;
  13. import com.template.services.SmartDataSourceLogService;
  14. import com.template.services.SmartDataSourceService;
  15. import com.template.services.SmartDataTaskService;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.validation.BindingResult;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import javax.servlet.http.HttpServletRequest;
  21. import java.util.Map;
  22. /**
  23. * <p>
  24. * 数据源配置 前端控制器
  25. * </p>
  26. *
  27. * @author ceshi
  28. * @since 2023-12-05
  29. */
  30. @RestController
  31. //返回参数加密注解
  32. @DESRespondSecret
  33. public class SmartDataSourceController implements SmartDataSourceControllerAPI {
  34. @Autowired
  35. private SmartDataSourceService smartDataSourceService;
  36. @Autowired
  37. private SmartDataTaskService smartDataTaskService;
  38. @Autowired
  39. private SmartDataSourceLogService smartDataSourceLogService;
  40. /**
  41. * 新增数据源
  42. *
  43. * @param smartDataSource 数据源
  44. * @param bindingResult
  45. * @return
  46. */
  47. @Override
  48. @DESRespondSecret(validated = true)
  49. public CommonResult insertSmartDataSource(SmartDataSource smartDataSource, HttpServletRequest httpServletRequest, BindingResult bindingResult) {
  50. if (bindingResult.hasErrors()) {
  51. String st = paramUtils.getParamError(bindingResult);
  52. return CommonResult.fail(st);
  53. }
  54. SmartDataSourceLog smartDataSourceLog =
  55. CommonUtil.generateLog("新增数据源|【数据交换中心】→【数据源管理】|新增【数据源】|create", httpServletRequest);
  56. Map<String, Object> result = smartDataSourceService.insertSmartDataSource(smartDataSource);
  57. if (Integer.parseInt((String) result.get("code")) == 0) {
  58. smartDataSourceLog.setLogActionStatus(1);
  59. smartDataSourceLogService.insertSmartDataSourceLog(smartDataSourceLog);
  60. return CommonResult.ok(result.get("msg"));
  61. } else {
  62. return CommonResult.fail((String) result.get("msg"));
  63. }
  64. }
  65. /**
  66. * 测试 数据源连接状态
  67. *
  68. * @param smartDataSource
  69. * @param bindingResult
  70. * @return
  71. */
  72. @Override
  73. @DESRespondSecret(validated = true)
  74. public CommonResult vcoSmartDataSource(SmartDataSource smartDataSource, BindingResult bindingResult) {
  75. if (bindingResult.hasErrors()) {
  76. String st = paramUtils.getParamError(bindingResult);
  77. return CommonResult.fail(st);
  78. }
  79. Map<String, Object> result = smartDataSourceService.vcoSmartDataSource(smartDataSource);
  80. return Integer.parseInt((String) result.get("code")) == 0 ? CommonResult.ok(result.get("msg")) : CommonResult.fail((String) result.get("msg"));
  81. }
  82. /**
  83. * 更新数据源
  84. *
  85. * @param smartDataSource
  86. * @param bindingResult
  87. * @return
  88. */
  89. @Override
  90. @DESRespondSecret(validated = true)
  91. public CommonResult updateSmartDataSourceById(SmartDataSource smartDataSource, HttpServletRequest httpServletRequest, BindingResult bindingResult) {
  92. if (bindingResult.hasErrors()) {
  93. String st = paramUtils.getParamError(bindingResult);
  94. return CommonResult.fail(st);
  95. }
  96. SmartDataSourceLog smartDataSourceLog =
  97. CommonUtil.generateLog("更新数据源|【数据交换中心】→【数据源管理】|更新【数据源】|update", httpServletRequest);
  98. Map<String, Object> result = smartDataSourceService.updateSmartDataSource(smartDataSource);
  99. if (Integer.parseInt((String) result.get("code")) == 0) {
  100. smartDataSourceLog.setLogActionStatus(1);
  101. smartDataSourceLogService.insertSmartDataSourceLog(smartDataSourceLog);
  102. return CommonResult.ok(result.get("msg"));
  103. } else {
  104. return CommonResult.fail((String) result.get("msg"));
  105. }
  106. }
  107. /**
  108. * 数据源分页数据查询
  109. *
  110. * @param currentPage 当前页数
  111. * @param pageCount 一页数据条数
  112. * @param smartDataSource 查询数据源实体
  113. * @return
  114. */
  115. @Override
  116. @DESRespondSecret(validated = true)
  117. public CommonResult queryPageSmartDataSources(int currentPage, int pageCount, SmartDataSource smartDataSource) {
  118. PageInfo<SmartDataSource> result = smartDataSourceService.queryPageSmartDataSources(currentPage, pageCount, smartDataSource);
  119. return CommonResult.ok(result);
  120. }
  121. @Override
  122. @DESRespondSecret(validated = true)
  123. public CommonResult querySmartDataSourceById(int id) {
  124. SmartDataSource smartDataSource = smartDataSourceService.querySmartDataSourceById(id);
  125. return CommonResult.ok(smartDataSource);
  126. }
  127. @Override
  128. @DESRespondSecret(validated = true)
  129. public CommonResult deleteSmartDataSourceById(int id, HttpServletRequest httpServletRequest) {
  130. SmartDataSource data = smartDataSourceService.getSmartById(id);
  131. if (data == null) {
  132. return CommonResult.fail("当前数据源不存在,删除失败!");
  133. }
  134. // 检测当前类别下是否有数据源,有则不能删除,否则可以删除
  135. QueryWrapper<SmartDataTask> smartDataTaskQueryWrapper = new QueryWrapper<>();
  136. smartDataTaskQueryWrapper.eq("tk_ds_id_source", id).or().eq("tk_ds_id_destination", id);
  137. int count = smartDataTaskService.count(smartDataTaskQueryWrapper);
  138. if (count > 0) {
  139. return CommonResult.fail("当前数据源下有任务,不能删除,删除失败!");
  140. }
  141. SmartDataSourceLog smartDataSourceLog =
  142. CommonUtil.generateLog("删除数据源|【数据交换中心】→【数据源管理】|删除【数据源】|delete", httpServletRequest);
  143. int result = smartDataSourceService.deleteSmartDataSourceById(id);
  144. if (result > 0) {
  145. smartDataSourceLog.setLogActionStatus(1);
  146. smartDataSourceLogService.insertSmartDataSourceLog(smartDataSourceLog);
  147. return CommonResult.ok("删除成功");
  148. } else {
  149. return CommonResult.fail("删除失败");
  150. }
  151. }
  152. }