DataConnectorService.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. package com.server;
  2. import com.dao.DataConnectorMapper;
  3. import com.fasterxml.jackson.core.JsonProcessingException;
  4. import com.fasterxml.jackson.databind.ObjectMapper;
  5. import com.model.bo.DatabaseConfig;
  6. import com.model.bo.GroupUpdateId;
  7. import com.model.po.BaseConfig;
  8. import com.model.po.BdStrategys;
  9. import com.model.po.DataConnector;
  10. import com.model.po.DataConnectorList;
  11. import com.model.pojo.RepCode;
  12. import com.model.pojo.RepEntity;
  13. import com.model.vo.configVo.BdStrategysInfo;
  14. import com.model.vo.configVo.ColumnRenameInfo;
  15. import com.model.vo.configVo.DataConnectorInfo;
  16. import com.model.vo.configVo.GroupInfo;
  17. import com.util.ScreenUtil;
  18. import com.util.SqlMatch;
  19. import com.util.TimeUtil;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import java.util.ArrayList;
  24. import java.util.Iterator;
  25. import java.util.List;
  26. @Service
  27. public class DataConnectorService {
  28. @Autowired
  29. private DataConnectorMapper dataConnectorMapper;
  30. @Autowired
  31. private TimeUtil timeUtil;
  32. @Autowired
  33. SqlMatch sqlMatch;
  34. @Autowired
  35. ObjectMapper objectmapper;
  36. @Autowired
  37. ScreenUtil screenUtil;
  38. /*
  39. 保存数据源
  40. */
  41. public RepEntity setDataConnector(DataConnectorInfo dataConnectorInfo){
  42. if (dataConnectorInfo == null || "".equals(dataConnectorInfo)){
  43. return new RepEntity(RepCode.Null);
  44. }
  45. DataConnector dataConnector = new DataConnector();
  46. BeanUtils.copyProperties(dataConnectorInfo,dataConnector);
  47. //取出数据库连接ID
  48. DatabaseConfig dbConfig = dataConnectorInfo.getDbConfig();
  49. int dbConId = dbConfig.getId();
  50. String pw = dataConnectorMapper.getBasesById(dbConId);
  51. dbConfig.setPassWord(pw);
  52. // String tableName = SqlMatch.matchSql(dataConnector.getLoadObject());
  53. dataConnector.setTableName(dataConnector.getLoadObject());
  54. String columnConfig = null;
  55. String databaseConfig = null;
  56. String dataTag = null;
  57. try {
  58. columnConfig = objectmapper.writeValueAsString(dataConnectorInfo.getColumnConfig());
  59. } catch (JsonProcessingException e) {
  60. e.printStackTrace();
  61. }
  62. try {
  63. databaseConfig = objectmapper.writeValueAsString(dbConfig);
  64. } catch (JsonProcessingException e) {
  65. e.printStackTrace();
  66. }
  67. try {
  68. dataTag = objectmapper.writeValueAsString(dataConnectorInfo.getDataTag());
  69. } catch (JsonProcessingException e) {
  70. e.printStackTrace();
  71. }
  72. dataConnector.setColumnConfig(columnConfig);
  73. dataConnector.setDbConfig(databaseConfig);
  74. dataConnector.setDataTag(dataTag);
  75. dataConnector.setCreateDate(timeUtil.SystemTime());
  76. if (dataConnector.getConnectorGroup() == 0){
  77. dataConnector.setConnectorGroup(-1);
  78. }
  79. if (dataConnectorInfo.getNote() == null || "".equals(dataConnectorInfo)){
  80. dataConnector.setNote("");
  81. }
  82. System.out.println(dataConnector);
  83. dataConnectorMapper.insertDataConnector(dataConnector);
  84. int id = dataConnector.getDataId();
  85. return new RepEntity(RepCode.success,id);
  86. }
  87. //查看数据源列表
  88. public RepEntity getListConnector(){
  89. // if (pages == null || "".equals(pages)){
  90. // int pageNum = pages.getPageNum();
  91. // int pageSize = pages.getPageSize();
  92. //使用分页插件,核心代码就这一行
  93. // PageHelper.startPage(pageNum, pageSize);
  94. // }
  95. List<DataConnectorList> listConnector = dataConnectorMapper.getDataConnectorList();
  96. List<DataConnectorList> listConnectors = new ArrayList<>();
  97. Iterator isList = listConnector.iterator();
  98. while (isList.hasNext()){
  99. DataConnectorList dataConnectorList = (DataConnectorList) isList.next();
  100. BaseConfig baseConfig = new BaseConfig();
  101. String dbConfig = dataConnectorList.getDbConfig();
  102. try {
  103. baseConfig = objectmapper.readValue(dbConfig, BaseConfig.class);
  104. } catch (Exception e) {
  105. e.printStackTrace();
  106. }
  107. baseConfig.setPassWord("");
  108. try{
  109. dbConfig = objectmapper.writeValueAsString(baseConfig);
  110. }catch (Exception e) {
  111. e.printStackTrace();
  112. }
  113. dataConnectorList.setDbConfig(dbConfig);
  114. listConnectors.add(dataConnectorList);
  115. }
  116. return new RepEntity(RepCode.success, listConnectors);
  117. }
  118. /*
  119. 查看单个数据源配置
  120. */
  121. public RepEntity getConnector(int id){
  122. DataConnector dataConnector = dataConnectorMapper.getOneData(id);
  123. BaseConfig baseConfig = new BaseConfig();
  124. String dbConfig = dataConnector.getDbConfig();
  125. try {
  126. baseConfig = objectmapper.readValue(dbConfig, BaseConfig.class);
  127. } catch (Exception e) {
  128. e.printStackTrace();
  129. }
  130. baseConfig.setPassWord("");
  131. try{
  132. dbConfig = objectmapper.writeValueAsString(baseConfig);
  133. }catch (Exception e) {
  134. e.printStackTrace();
  135. }
  136. dataConnector.setDbConfig(dbConfig);
  137. System.out.println(dataConnector);
  138. return new RepEntity(RepCode.success, dataConnector);
  139. }
  140. /*
  141. 更新数据源配置
  142. */
  143. public RepEntity updateData(DataConnectorInfo dataConnectorInfo){
  144. if (dataConnectorInfo == null && "".equals(dataConnectorInfo)){
  145. return new RepEntity(RepCode.Null);
  146. }
  147. DataConnector dataConnector = new DataConnector();
  148. BeanUtils.copyProperties(dataConnectorInfo,dataConnector);
  149. //获取表名
  150. // String tableName = SqlMatch.matchSql(dataConnector.getLoadObject());
  151. dataConnector.setTableName(dataConnector.getLoadObject());
  152. List<ColumnRenameInfo> columnConfig = dataConnectorInfo.getColumnConfig();
  153. // DatabaseConfig dbConfig = dataConnectorInfo.getDbConfig();
  154. List<String> dataTag = dataConnectorInfo.getDataTag();
  155. String columnConfigJson = null;
  156. String dbConfigJson = null;
  157. String dataTagJson = null;
  158. if (!("".equals(columnConfig)) && columnConfig != null){
  159. try {
  160. columnConfigJson = objectmapper.writeValueAsString(columnConfig);
  161. } catch (JsonProcessingException e) {
  162. e.printStackTrace();
  163. }
  164. dataConnector.setColumnConfig(columnConfigJson);
  165. }
  166. // if (!("".equals(dbConfig)) && dbConfig != null){
  167. // try {
  168. // dbConfigJson = objectmapper.writeValueAsString(dbConfig);
  169. // } catch (JsonProcessingException e) {
  170. // e.printStackTrace();
  171. // }
  172. // dataConnector.setDbConfig(null);
  173. // }
  174. dataConnector.setDbConfig(dbConfigJson);
  175. if (dataTag != null){
  176. try {
  177. dataTagJson = objectmapper.writeValueAsString(dataTag);
  178. } catch (JsonProcessingException e) {
  179. e.printStackTrace();
  180. }
  181. dataConnector.setDataTag(dataTagJson);
  182. }
  183. dataConnector.setUpdateDate(timeUtil.SystemTime());
  184. if (dataConnector.getConnectorGroup() == 0){
  185. dataConnector.setConnectorGroup(-1);
  186. }
  187. System.out.println(dataConnector);
  188. dataConnectorMapper.updateData(dataConnector);
  189. return new RepEntity(RepCode.success);
  190. }
  191. /*
  192. 更新数据源分组
  193. */
  194. public RepEntity updateConfigGroup(GroupUpdateId groupUpdateId){
  195. int id = groupUpdateId.getId();
  196. int groupId = groupUpdateId.getGroupId();
  197. dataConnectorMapper.updateConfigGroup(id, groupId);
  198. return new RepEntity(RepCode.success);
  199. }
  200. /*
  201. 删除数据源
  202. */
  203. public RepEntity delDataConnector(List<Integer> idList){
  204. Iterator isList = idList.iterator();
  205. while (isList.hasNext()){
  206. int id = (int) isList.next();
  207. List<String> chartName = dataConnectorMapper.getChartsName(id);
  208. if (chartName.size() != 0){
  209. return new RepEntity(RepCode.hasChartsUsing, chartName);
  210. }
  211. }
  212. dataConnectorMapper.deleteData(idList);
  213. return new RepEntity(RepCode.success);
  214. }
  215. /*
  216. 创建数据源分组
  217. */
  218. public RepEntity setDataConnectorGroup(GroupInfo groupInfo){
  219. if (groupInfo == null || "".equals(groupInfo)){
  220. return new RepEntity(RepCode.Null);
  221. }
  222. dataConnectorMapper.setConnectorGroup(groupInfo);
  223. int id = groupInfo.getId();
  224. return new RepEntity(RepCode.success, id);
  225. }
  226. /*
  227. 更新数据源分组
  228. */
  229. public RepEntity updataDataConnectorGroup(GroupInfo groupInfo){
  230. dataConnectorMapper.updataConnectorGroup(groupInfo);
  231. return new RepEntity(RepCode.success);
  232. }
  233. /*
  234. 批量更新数据源分组
  235. */
  236. public RepEntity updataConnectorGroups(List<GroupInfo> groupInfoList){
  237. Iterator isList = groupInfoList.iterator();
  238. GroupInfo groupInfo = new GroupInfo();
  239. while (isList.hasNext()){
  240. groupInfo = (GroupInfo) isList.next();
  241. dataConnectorMapper.updataConnectorGroup(groupInfo);
  242. }
  243. return new RepEntity(RepCode.success);
  244. }
  245. /*
  246. 删除数据源分组
  247. */
  248. public RepEntity delDataConnectorGroup(List<Integer> idList){
  249. List<Integer> integerList = idList;
  250. Iterator isList = integerList.iterator();
  251. while (isList.hasNext()){
  252. int id = (int) isList.next();
  253. List<String> groupName = dataConnectorMapper.getFatherId(id);
  254. if (groupName.size() != 0){
  255. return new RepEntity(RepCode.hasGroupUsing);
  256. }
  257. List<String> chartName = dataConnectorMapper.getConName(id);
  258. if (chartName.size() != 0){
  259. return new RepEntity(RepCode.hasConUsing);
  260. }
  261. }
  262. dataConnectorMapper.delConnectorGroup(idList);
  263. return new RepEntity(RepCode.success);
  264. }
  265. /*
  266. 查询数据源分组列表
  267. */
  268. public RepEntity getConnectorGroup(){
  269. return new RepEntity(RepCode.success, dataConnectorMapper.getConnectorGroup());
  270. }
  271. /*
  272. 保存数据源策略
  273. */
  274. public RepEntity addDbStrategys(BdStrategysInfo bdStrategysInfo){
  275. BdStrategys bdStrategys = new BdStrategys();
  276. BeanUtils.copyProperties(bdStrategysInfo, bdStrategys);
  277. String scr = screenUtil.screensUtil(bdStrategysInfo.getRule(), "", "").getRet();
  278. bdStrategys.setRule(scr);
  279. dataConnectorMapper.addStrategys(bdStrategys);
  280. return new RepEntity(RepCode.success, bdStrategys.getId());
  281. }
  282. /*
  283. 更新数据源策略
  284. */
  285. public RepEntity updateDbStrategys(BdStrategysInfo bdStrategysInfo){
  286. BdStrategys bdStrategys = new BdStrategys();
  287. BeanUtils.copyProperties(bdStrategysInfo, bdStrategys);
  288. String scr = screenUtil.screensUtil(bdStrategysInfo.getRule(), "", "").getRet();
  289. bdStrategys.setRule(scr);
  290. dataConnectorMapper.addStrategys(bdStrategys);
  291. return new RepEntity(RepCode.success);
  292. }
  293. /*
  294. 删除数据源策略
  295. */
  296. public RepEntity delDbStrategys(List<Integer> idList){
  297. dataConnectorMapper.delDbStrategys(idList);
  298. return new RepEntity(RepCode.success);
  299. }
  300. /*
  301. 查询数据源策略列表
  302. */
  303. public RepEntity getDbStrategys(){
  304. List<BdStrategys> bdStrategys = dataConnectorMapper.getDbStrategys();
  305. return new RepEntity(RepCode.success);
  306. }
  307. }