VisualDbController.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. package jnpf.visualdata.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import io.swagger.v3.oas.annotations.Operation;
  4. import io.swagger.v3.oas.annotations.Parameter;
  5. import io.swagger.v3.oas.annotations.Parameters;
  6. import io.swagger.v3.oas.annotations.tags.Tag;
  7. import jnpf.base.ActionResult;
  8. import jnpf.base.controller.SuperController;
  9. import jnpf.constant.MsgCode;
  10. import jnpf.util.DesUtil;
  11. import jnpf.util.JsonUtil;
  12. import jnpf.util.StringUtil;
  13. import jnpf.visualdata.entity.VisualDbEntity;
  14. import jnpf.visualdata.model.VisualPageVO;
  15. import jnpf.visualdata.model.VisualPagination;
  16. import jnpf.visualdata.model.visual.VisualPaginationModel;
  17. import jnpf.visualdata.model.visualdb.*;
  18. import jnpf.visualdata.service.VisualDbService;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * 大屏数据源配置
  26. *
  27. * @author JNPF开发平台组
  28. * @version V3.1.0
  29. * @copyright 引迈信息技术有限公司
  30. * @date 2021年6月15日
  31. */
  32. @RestController
  33. @Tag(name = "大屏数据源配置", description = "db")
  34. @RequestMapping("/api/blade-visual/db")
  35. public class VisualDbController extends SuperController<VisualDbService, VisualDbEntity> {
  36. @Autowired
  37. private VisualDbService dbService;
  38. /**
  39. * 分页
  40. *
  41. * @param pagination 分页模型
  42. * @return
  43. */
  44. @Operation(summary = "分页")
  45. @GetMapping("/list")
  46. public ActionResult<VisualPageVO<VisualDbListVO>> list(VisualPaginationModel pagination) {
  47. List<VisualDbEntity> data = dbService.getList(pagination);
  48. List<VisualDbListVO> list = JsonUtil.getJsonToList(data, VisualDbListVO.class);
  49. VisualPageVO paginationVO = JsonUtil.getJsonToBean(pagination, VisualPageVO.class);
  50. paginationVO.setRecords(list);
  51. return ActionResult.success(paginationVO);
  52. }
  53. /**
  54. * 详情
  55. *
  56. * @param id 主键
  57. * @return
  58. */
  59. @Operation(summary = "详情")
  60. @GetMapping("/detail")
  61. @Parameters({
  62. @Parameter(name = "id", description = "主键", required = true),
  63. })
  64. @SaCheckPermission("onlineDev.dataScreen")
  65. public ActionResult<VisualDbInfoVO> info(@RequestParam("id")String id) {
  66. VisualDbEntity entity = dbService.getInfo(id);
  67. VisualDbInfoVO vo = JsonUtil.getJsonToBean(entity, VisualDbInfoVO.class);
  68. return ActionResult.success(vo);
  69. }
  70. /**
  71. * 新增或修改
  72. *
  73. * @param dbUpForm 数据模型
  74. * @return
  75. */
  76. @Operation(summary = "新增或修改")
  77. @PostMapping("/submit")
  78. @Parameters({
  79. @Parameter(name = "dbUpForm", description = "数据模型",required = true),
  80. })
  81. @SaCheckPermission("onlineDev.dataScreen")
  82. public ActionResult submit(@RequestBody VisualDbUpForm dbUpForm) {
  83. VisualDbEntity entity = JsonUtil.getJsonToBean(dbUpForm, VisualDbEntity.class);
  84. if (StringUtil.isEmpty(entity.getId())) {
  85. dbService.create(entity);
  86. return ActionResult.success(MsgCode.SU001.get());
  87. } else {
  88. dbService.update(entity.getId(), entity);
  89. return ActionResult.success(MsgCode.SU004.get());
  90. }
  91. }
  92. /**
  93. * 删除
  94. *
  95. * @param ids 主键
  96. * @return
  97. */
  98. @Operation(summary = "删除")
  99. @PostMapping("/remove")
  100. @Parameters({
  101. @Parameter(name = "ids", description = "主键", required = true),
  102. })
  103. @SaCheckPermission("onlineDev.dataScreen")
  104. public ActionResult delete(String ids) {
  105. VisualDbEntity entity = dbService.getInfo(ids);
  106. if (entity != null) {
  107. dbService.delete(entity);
  108. return ActionResult.success(MsgCode.SU003.get());
  109. }
  110. return ActionResult.fail(MsgCode.FA003.get());
  111. }
  112. /**
  113. * 下拉数据源
  114. *
  115. * @return
  116. */
  117. @Operation(summary = "下拉数据源")
  118. @GetMapping("/db-list")
  119. @SaCheckPermission("onlineDev.dataScreen")
  120. public ActionResult<List<VisualDbSelectVO>> list() {
  121. List<VisualDbEntity> data = dbService.getList();
  122. List<VisualDbSelectVO> list = JsonUtil.getJsonToList(data, VisualDbSelectVO.class);
  123. return ActionResult.success(list);
  124. }
  125. /**
  126. * 数据源测试连接
  127. *
  128. * @param dbCrForm 数据源模型
  129. * @return
  130. */
  131. @Operation(summary = "数据源测试连接")
  132. @PostMapping("/db-test")
  133. @Parameters({
  134. @Parameter(name = "dbCrForm", description = "数据源模型",required = true),
  135. })
  136. @SaCheckPermission("onlineDev.dataScreen")
  137. public ActionResult test(@RequestBody VisualDbCrForm dbCrForm) {
  138. VisualDbEntity entity = JsonUtil.getJsonToBean(dbCrForm, VisualDbEntity.class);
  139. entity.setPassword(DesUtil.aesOrDecode(entity.getPassword(), false, true));
  140. boolean flag = dbService.dbTest(entity);
  141. if (flag) {
  142. return ActionResult.success(MsgCode.DB301.get());
  143. }
  144. return ActionResult.fail(MsgCode.DB302.get());
  145. }
  146. /**
  147. * 动态执行SQL
  148. *
  149. * @param queryForm 数据模型
  150. * @return
  151. */
  152. @Operation(summary = "动态执行SQL")
  153. @PostMapping("/dynamic-query")
  154. @Parameters({
  155. @Parameter(name = "queryForm", description = "数据模型",required = true),
  156. })
  157. public ActionResult query(@RequestBody VisualDbQueryForm queryForm) {
  158. VisualDbEntity entity = dbService.getInfo(queryForm.getId());
  159. List<Map<String, Object>> data = new ArrayList<>();
  160. if (entity != null) {
  161. entity.setPassword(DesUtil.aesOrDecode(entity.getPassword(), false, true));
  162. queryForm.setSql(DesUtil.aesOrDecode(queryForm.getSql(), false, true));
  163. data = dbService.query(entity, queryForm.getSql());
  164. }
  165. return ActionResult.success(data);
  166. }
  167. }