VisualDbServiceImpl.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package jnpf.visualdata.service.impl;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.metadata.IPage;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import jnpf.base.service.SuperServiceImpl;
  8. import jnpf.constant.MsgCode;
  9. import jnpf.database.model.dto.PrepSqlDTO;
  10. import jnpf.database.util.ConnUtil;
  11. import jnpf.database.util.JdbcUtil;
  12. import jnpf.exception.DataException;
  13. import jnpf.util.RandomUtil;
  14. import jnpf.util.StringUtil;
  15. import jnpf.util.UserProvider;
  16. import jnpf.visualdata.entity.VisualCategoryEntity;
  17. import jnpf.visualdata.entity.VisualComponentEntity;
  18. import jnpf.visualdata.entity.VisualDbEntity;
  19. import jnpf.visualdata.mapper.VisualDbMapper;
  20. import jnpf.visualdata.model.VisualPagination;
  21. import jnpf.visualdata.model.visual.VisualPaginationModel;
  22. import jnpf.visualdata.service.VisualDbService;
  23. import jnpf.visualdata.service.VisualService;
  24. import lombok.Cleanup;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import java.sql.Connection;
  28. import java.util.ArrayList;
  29. import java.util.Date;
  30. import java.util.List;
  31. import java.util.Map;
  32. /**
  33. * 大屏数据源配置
  34. *
  35. * @author JNPF开发平台组
  36. * @version V3.1.0
  37. * @copyright 引迈信息技术有限公司
  38. * @date 2021年6月15日
  39. */
  40. @Service
  41. public class VisualDbServiceImpl extends SuperServiceImpl<VisualDbMapper, VisualDbEntity> implements VisualDbService {
  42. @Autowired
  43. private VisualService visualService;
  44. @Override
  45. public List<VisualDbEntity> getList(VisualPaginationModel pagination) {
  46. QueryWrapper<VisualDbEntity> queryWrapper = new QueryWrapper<>();
  47. if(ObjectUtil.isNotEmpty(pagination.getName())){
  48. queryWrapper.lambda().like(VisualDbEntity::getName,pagination.getName());
  49. }
  50. queryWrapper.lambda().eq(VisualDbEntity::getSystemId,visualService.getSystemIdByReq());
  51. queryWrapper.lambda().orderByDesc(VisualDbEntity::getCreateTime);
  52. Page page = new Page(pagination.getCurrent(), pagination.getSize());
  53. IPage<VisualDbEntity> iPages = this.page(page, queryWrapper);
  54. return pagination.setData(iPages);
  55. }
  56. @Override
  57. public List<VisualDbEntity> getList() {
  58. QueryWrapper<VisualDbEntity> queryWrapper = new QueryWrapper<>();
  59. queryWrapper.lambda().eq(VisualDbEntity::getSystemId,visualService.getSystemIdByReq());
  60. queryWrapper.lambda().orderByDesc(VisualDbEntity::getCreateTime);
  61. return this.list(queryWrapper);
  62. }
  63. @Override
  64. public VisualDbEntity getInfo(String id) {
  65. QueryWrapper<VisualDbEntity> queryWrapper = new QueryWrapper<>();
  66. queryWrapper.lambda().eq(VisualDbEntity::getId, id);
  67. return this.getOne(queryWrapper);
  68. }
  69. @Override
  70. public void create(VisualDbEntity entity) {
  71. entity.setId(RandomUtil.uuId());
  72. entity.setCreateTime(new Date());
  73. entity.setUpdateUser(UserProvider.getLoginUserId());
  74. entity.setSystemId(visualService.getSystemIdByReq());
  75. this.creUpdateCheck(entity,true);
  76. this.save(entity);
  77. }
  78. @Override
  79. public boolean update(String id, VisualDbEntity entity) {
  80. entity.setId(id);
  81. entity.setUpdateTime(new Date());
  82. entity.setUpdateUser(UserProvider.getLoginUserId());
  83. entity.setSystemId(visualService.getSystemIdByReq());
  84. this.creUpdateCheck(entity,true);
  85. return this.updateById(entity);
  86. }
  87. @Override
  88. public void delete(VisualDbEntity entity) {
  89. if (entity != null) {
  90. this.removeById(entity.getId());
  91. }
  92. }
  93. @Override
  94. public boolean dbTest(VisualDbEntity entity) {
  95. boolean flag = false;
  96. try {
  97. @Cleanup Connection conn = ConnUtil.getConn(entity.getUsername(), entity.getPassword(), entity.getUrl());
  98. flag = conn != null;
  99. } catch (Exception e) {
  100. log.error(e.getMessage());
  101. }
  102. return flag;
  103. }
  104. @Override
  105. public List<Map<String, Object>> query(VisualDbEntity entity, String sql) {
  106. List<Map<String,Object>> data = new ArrayList<>();
  107. try {
  108. data = JdbcUtil.queryList(new PrepSqlDTO(sql).withConn(entity.getUsername(), entity.getPassword(), entity.getUrl())).setIsLowerCase(true).get();
  109. }catch (Exception e){
  110. log.error(e.getMessage());
  111. }
  112. return data;
  113. }
  114. public void creUpdateCheck(VisualDbEntity entity, Boolean fullNameCheck) {
  115. String title = entity.getName();
  116. String systemId = entity.getSystemId();
  117. // 名称长度验证(假设长度限制为80)
  118. if (StringUtil.isNotEmpty(title)&&title.length() > 80) {
  119. throw new DataException(MsgCode.EXIST005.get());
  120. }
  121. // 动态构建查询条件
  122. LambdaQueryWrapper<VisualDbEntity> queryWrapper = new LambdaQueryWrapper<>();
  123. if (fullNameCheck) {
  124. queryWrapper.eq(VisualDbEntity::getName, title)
  125. .eq(VisualDbEntity::getSystemId, systemId);
  126. List<VisualDbEntity> list = this.list(queryWrapper);
  127. if (!list.isEmpty()) {
  128. if (StringUtil.isNotEmpty(entity.getId())&&list.get(0).getId().equals(entity.getId())) {
  129. return;
  130. }
  131. throw new DataException(MsgCode.EXIST003.get());
  132. }
  133. }
  134. }
  135. }