package com.server; import com.dao.DataConnectorMapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.model.bo.DatabaseConfig; import com.model.bo.GroupUpdateId; import com.model.po.BaseConfig; import com.model.po.BdStrategys; import com.model.po.DataConnector; import com.model.po.DataConnectorList; import com.model.pojo.RepCode; import com.model.pojo.RepEntity; import com.model.vo.configVo.BdStrategysInfo; import com.model.vo.configVo.ColumnRenameInfo; import com.model.vo.configVo.DataConnectorInfo; import com.model.vo.configVo.GroupInfo; import com.util.ScreenUtil; import com.util.SqlMatch; import com.util.TimeUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @Service public class DataConnectorService { @Autowired private DataConnectorMapper dataConnectorMapper; @Autowired private TimeUtil timeUtil; @Autowired SqlMatch sqlMatch; @Autowired ObjectMapper objectmapper; @Autowired ScreenUtil screenUtil; /* 保存数据源 */ public RepEntity setDataConnector(DataConnectorInfo dataConnectorInfo){ if (dataConnectorInfo == null || "".equals(dataConnectorInfo)){ return new RepEntity(RepCode.Null); } DataConnector dataConnector = new DataConnector(); BeanUtils.copyProperties(dataConnectorInfo,dataConnector); //取出数据库连接ID DatabaseConfig dbConfig = dataConnectorInfo.getDbConfig(); int dbConId = dbConfig.getId(); String pw = dataConnectorMapper.getBasesById(dbConId); dbConfig.setPassWord(pw); // String tableName = SqlMatch.matchSql(dataConnector.getLoadObject()); dataConnector.setTableName(dataConnector.getLoadObject()); String columnConfig = null; String databaseConfig = null; String dataTag = null; try { columnConfig = objectmapper.writeValueAsString(dataConnectorInfo.getColumnConfig()); } catch (JsonProcessingException e) { e.printStackTrace(); } try { databaseConfig = objectmapper.writeValueAsString(dbConfig); } catch (JsonProcessingException e) { e.printStackTrace(); } try { dataTag = objectmapper.writeValueAsString(dataConnectorInfo.getDataTag()); } catch (JsonProcessingException e) { e.printStackTrace(); } dataConnector.setColumnConfig(columnConfig); dataConnector.setDbConfig(databaseConfig); dataConnector.setDataTag(dataTag); dataConnector.setCreateDate(timeUtil.SystemTime()); if (dataConnector.getConnectorGroup() == 0){ dataConnector.setConnectorGroup(-1); } if (dataConnectorInfo.getNote() == null || "".equals(dataConnectorInfo)){ dataConnector.setNote(""); } System.out.println(dataConnector); dataConnectorMapper.insertDataConnector(dataConnector); int id = dataConnector.getDataId(); return new RepEntity(RepCode.success,id); } //查看数据源列表 public RepEntity getListConnector(){ // if (pages == null || "".equals(pages)){ // int pageNum = pages.getPageNum(); // int pageSize = pages.getPageSize(); //使用分页插件,核心代码就这一行 // PageHelper.startPage(pageNum, pageSize); // } List listConnector = dataConnectorMapper.getDataConnectorList(); List listConnectors = new ArrayList<>(); Iterator isList = listConnector.iterator(); while (isList.hasNext()){ DataConnectorList dataConnectorList = (DataConnectorList) isList.next(); BaseConfig baseConfig = new BaseConfig(); String dbConfig = dataConnectorList.getDbConfig(); try { baseConfig = objectmapper.readValue(dbConfig, BaseConfig.class); } catch (Exception e) { e.printStackTrace(); } baseConfig.setPassWord(""); try{ dbConfig = objectmapper.writeValueAsString(baseConfig); }catch (Exception e) { e.printStackTrace(); } dataConnectorList.setDbConfig(dbConfig); listConnectors.add(dataConnectorList); } return new RepEntity(RepCode.success, listConnectors); } /* 查看单个数据源配置 */ public RepEntity getConnector(int id){ DataConnector dataConnector = dataConnectorMapper.getOneData(id); BaseConfig baseConfig = new BaseConfig(); String dbConfig = dataConnector.getDbConfig(); try { baseConfig = objectmapper.readValue(dbConfig, BaseConfig.class); } catch (Exception e) { e.printStackTrace(); } baseConfig.setPassWord(""); try{ dbConfig = objectmapper.writeValueAsString(baseConfig); }catch (Exception e) { e.printStackTrace(); } dataConnector.setDbConfig(dbConfig); System.out.println(dataConnector); return new RepEntity(RepCode.success, dataConnector); } /* 更新数据源配置 */ public RepEntity updateData(DataConnectorInfo dataConnectorInfo){ if (dataConnectorInfo == null && "".equals(dataConnectorInfo)){ return new RepEntity(RepCode.Null); } DataConnector dataConnector = new DataConnector(); BeanUtils.copyProperties(dataConnectorInfo,dataConnector); //获取表名 // String tableName = SqlMatch.matchSql(dataConnector.getLoadObject()); dataConnector.setTableName(dataConnector.getLoadObject()); List columnConfig = dataConnectorInfo.getColumnConfig(); // DatabaseConfig dbConfig = dataConnectorInfo.getDbConfig(); List dataTag = dataConnectorInfo.getDataTag(); String columnConfigJson = null; String dbConfigJson = null; String dataTagJson = null; if (!("".equals(columnConfig)) && columnConfig != null){ try { columnConfigJson = objectmapper.writeValueAsString(columnConfig); } catch (JsonProcessingException e) { e.printStackTrace(); } dataConnector.setColumnConfig(columnConfigJson); } // if (!("".equals(dbConfig)) && dbConfig != null){ // try { // dbConfigJson = objectmapper.writeValueAsString(dbConfig); // } catch (JsonProcessingException e) { // e.printStackTrace(); // } // dataConnector.setDbConfig(null); // } dataConnector.setDbConfig(dbConfigJson); if (dataTag != null){ try { dataTagJson = objectmapper.writeValueAsString(dataTag); } catch (JsonProcessingException e) { e.printStackTrace(); } dataConnector.setDataTag(dataTagJson); } dataConnector.setUpdateDate(timeUtil.SystemTime()); if (dataConnector.getConnectorGroup() == 0){ dataConnector.setConnectorGroup(-1); } System.out.println(dataConnector); dataConnectorMapper.updateData(dataConnector); return new RepEntity(RepCode.success); } /* 更新数据源分组 */ public RepEntity updateConfigGroup(GroupUpdateId groupUpdateId){ int id = groupUpdateId.getId(); int groupId = groupUpdateId.getGroupId(); dataConnectorMapper.updateConfigGroup(id, groupId); return new RepEntity(RepCode.success); } /* 删除数据源 */ public RepEntity delDataConnector(List idList){ Iterator isList = idList.iterator(); while (isList.hasNext()){ int id = (int) isList.next(); List chartName = dataConnectorMapper.getChartsName(id); if (chartName.size() != 0){ return new RepEntity(RepCode.hasChartsUsing, chartName); } } dataConnectorMapper.deleteData(idList); return new RepEntity(RepCode.success); } /* 创建数据源分组 */ public RepEntity setDataConnectorGroup(GroupInfo groupInfo){ if (groupInfo == null || "".equals(groupInfo)){ return new RepEntity(RepCode.Null); } dataConnectorMapper.setConnectorGroup(groupInfo); int id = groupInfo.getId(); return new RepEntity(RepCode.success, id); } /* 更新数据源分组 */ public RepEntity updataDataConnectorGroup(GroupInfo groupInfo){ dataConnectorMapper.updataConnectorGroup(groupInfo); return new RepEntity(RepCode.success); } /* 批量更新数据源分组 */ public RepEntity updataConnectorGroups(List groupInfoList){ Iterator isList = groupInfoList.iterator(); GroupInfo groupInfo = new GroupInfo(); while (isList.hasNext()){ groupInfo = (GroupInfo) isList.next(); dataConnectorMapper.updataConnectorGroup(groupInfo); } return new RepEntity(RepCode.success); } /* 删除数据源分组 */ public RepEntity delDataConnectorGroup(List idList){ List integerList = idList; Iterator isList = integerList.iterator(); while (isList.hasNext()){ int id = (int) isList.next(); List groupName = dataConnectorMapper.getFatherId(id); if (groupName.size() != 0){ return new RepEntity(RepCode.hasGroupUsing); } List chartName = dataConnectorMapper.getConName(id); if (chartName.size() != 0){ return new RepEntity(RepCode.hasConUsing); } } dataConnectorMapper.delConnectorGroup(idList); return new RepEntity(RepCode.success); } /* 查询数据源分组列表 */ public RepEntity getConnectorGroup(){ return new RepEntity(RepCode.success, dataConnectorMapper.getConnectorGroup()); } /* 保存数据源策略 */ public RepEntity addDbStrategys(BdStrategysInfo bdStrategysInfo){ BdStrategys bdStrategys = new BdStrategys(); BeanUtils.copyProperties(bdStrategysInfo, bdStrategys); String scr = screenUtil.screensUtil(bdStrategysInfo.getRule(), "", "").getRet(); bdStrategys.setRule(scr); dataConnectorMapper.addStrategys(bdStrategys); return new RepEntity(RepCode.success, bdStrategys.getId()); } /* 更新数据源策略 */ public RepEntity updateDbStrategys(BdStrategysInfo bdStrategysInfo){ BdStrategys bdStrategys = new BdStrategys(); BeanUtils.copyProperties(bdStrategysInfo, bdStrategys); String scr = screenUtil.screensUtil(bdStrategysInfo.getRule(), "", "").getRet(); bdStrategys.setRule(scr); dataConnectorMapper.addStrategys(bdStrategys); return new RepEntity(RepCode.success); } /* 删除数据源策略 */ public RepEntity delDbStrategys(List idList){ dataConnectorMapper.delDbStrategys(idList); return new RepEntity(RepCode.success); } /* 查询数据源策略列表 */ public RepEntity getDbStrategys(){ List bdStrategys = dataConnectorMapper.getDbStrategys(); return new RepEntity(RepCode.success); } }