Commit 0ac3360d authored by Gwofoo's avatar Gwofoo

调整了一些代码结构

parent 25f5aedd
...@@ -3,9 +3,7 @@ package com.yeejoin.amos.api.tool.controller; ...@@ -3,9 +3,7 @@ package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel; import com.yeejoin.amos.api.tool.face.model.AmosToolTemplateModel;
import com.yeejoin.amos.api.tool.face.model.AmosToolTemplateVoModel; import com.yeejoin.amos.api.tool.face.model.AmosToolTemplateVoModel;
import com.yeejoin.amos.api.tool.face.model.ProjectModel;
import com.yeejoin.amos.api.tool.face.service.AmosToolTemplateService; import com.yeejoin.amos.api.tool.face.service.AmosToolTemplateService;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -16,7 +14,6 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation; ...@@ -16,7 +14,6 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.sql.SQLException;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
......
...@@ -3,7 +3,7 @@ package com.yeejoin.amos.api.tool.controller; ...@@ -3,7 +3,7 @@ package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.ProjectModel; import com.yeejoin.amos.api.tool.face.model.ProjectModel;
import com.yeejoin.amos.api.tool.face.service.StudioResourceService; import com.yeejoin.amos.api.tool.face.service.StudioResourceService;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils; import com.yeejoin.amos.api.tool.utils.DatabaseUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
...@@ -98,7 +98,7 @@ DataApiResource { ...@@ -98,7 +98,7 @@ DataApiResource {
page.setCurrent(current); page.setCurrent(current);
page.setSize(size); page.setSize(size);
return ResponseHelper.buildResponse( return ResponseHelper.buildResponse(
DataBaseUtils.listToPage(studioResourceService.getAppList(sequenceNbr, projectNbr), current, size)); DatabaseUtils.listToPage(studioResourceService.getAppList(sequenceNbr, projectNbr), current, size));
} }
@TycloudOperation(ApiLevel = UserType.SUPER_ADMIN, needAuth = false) @TycloudOperation(ApiLevel = UserType.SUPER_ADMIN, needAuth = false)
...@@ -113,7 +113,7 @@ DataApiResource { ...@@ -113,7 +113,7 @@ DataApiResource {
page.setCurrent(current); page.setCurrent(current);
page.setSize(size); page.setSize(size);
return ResponseHelper.buildResponse( return ResponseHelper.buildResponse(
DataBaseUtils.listToPage(studioResourceService.getIdx(ipSeq, agencyCode), current, size)); DatabaseUtils.listToPage(studioResourceService.getIdx(ipSeq, agencyCode), current, size));
} }
} }
...@@ -2,9 +2,8 @@ package com.yeejoin.amos.api.tool.controller; ...@@ -2,9 +2,8 @@ package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.AgencyModel; import com.yeejoin.amos.api.tool.face.model.AgencyModel;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel; import com.yeejoin.amos.api.tool.face.model.DatabaseConnectionModel;
import com.yeejoin.amos.api.tool.face.model.TemplateVoModel; import com.yeejoin.amos.api.tool.face.service.DatabaseConnectionService;
import com.yeejoin.amos.api.tool.face.service.DataBaseLinkService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -14,7 +13,6 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation; ...@@ -14,7 +13,6 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
...@@ -26,22 +24,22 @@ import java.util.List; ...@@ -26,22 +24,22 @@ import java.util.List;
@RestController @RestController
@Api(tags = "数据库信息") @Api(tags = "数据库信息")
@RequestMapping(value = "/database_link") @RequestMapping(value = "/database_link")
public class DataBaseLinkResource { public class DatabaseConnectionResource {
@Autowired @Autowired
private DataBaseLinkService dataBaseLinkService; private DatabaseConnectionService databaseConnectionService;
/** /**
* 新增 * 新增
* *
* @param dataBaseLinkModel 数据库连接 * @param dataBaseConnectionModel 数据库连接
* @return DataBaseLinkModel * @return DataBaseLinkModel
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增") @ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<DataBaseLinkModel> save(@RequestBody DataBaseLinkModel dataBaseLinkModel) throws Exception { public ResponseModel<DatabaseConnectionModel> save(@RequestBody DatabaseConnectionModel dataBaseConnectionModel) throws Exception {
return ResponseHelper.buildResponse(dataBaseLinkService.save(dataBaseLinkModel)); return ResponseHelper.buildResponse(databaseConnectionService.save(dataBaseConnectionModel));
} }
/** /**
...@@ -53,11 +51,11 @@ public class DataBaseLinkResource { ...@@ -53,11 +51,11 @@ public class DataBaseLinkResource {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PutMapping(value = "/{sequenceNbr}") @PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新") @ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<DataBaseLinkModel> updateBySeq( public ResponseModel<DatabaseConnectionModel> updateBySeq(
@RequestBody DataBaseLinkModel model, @RequestBody DatabaseConnectionModel model,
@PathVariable(value = "sequenceNbr") Long sequenceNbr) throws Exception { @PathVariable(value = "sequenceNbr") Long sequenceNbr) throws Exception {
model.setSequenceNbr(sequenceNbr); model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(dataBaseLinkService.update(model)); return ResponseHelper.buildResponse(databaseConnectionService.update(model));
} }
/** /**
...@@ -70,7 +68,7 @@ public class DataBaseLinkResource { ...@@ -70,7 +68,7 @@ public class DataBaseLinkResource {
@DeleteMapping(value = "/{sequenceNbr}") @DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除") @ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(dataBaseLinkService.removeById(sequenceNbr)); return ResponseHelper.buildResponse(databaseConnectionService.removeById(sequenceNbr));
} }
/** /**
...@@ -81,12 +79,13 @@ public class DataBaseLinkResource { ...@@ -81,12 +79,13 @@ public class DataBaseLinkResource {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/{sequenceNbr}") @GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个") @ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<DataBaseLinkModel> selectOne(@PathVariable Long sequenceNbr) { public ResponseModel<DatabaseConnectionModel> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(dataBaseLinkService.queryBySeq(sequenceNbr)); return ResponseHelper.buildResponse(databaseConnectionService.queryBySeq(sequenceNbr));
} }
/** /**
* 机构分页查询 * 位于:脚本导出-机构管理
* 分页查询,获取指定地址下的机构
* *
* @param current 当前分页 * @param current 当前分页
* @param size 分页大小 * @param size 分页大小
...@@ -99,13 +98,13 @@ public class DataBaseLinkResource { ...@@ -99,13 +98,13 @@ public class DataBaseLinkResource {
@RequestParam(value = "current") int current, @RequestParam(value = "current") int current,
@RequestParam(value = "size") int size, @RequestParam(value = "size") int size,
@RequestParam Long ipSeq) throws SQLException { @RequestParam Long ipSeq) throws SQLException {
Page<AgencyModel> page = new Page<>(); Page<AgencyModel> page = new Page<>(current, size);
page.setCurrent(current); return ResponseHelper.buildResponse(databaseConnectionService.queryForAgencyPage(page, ipSeq));
page.setSize(size);
return ResponseHelper.buildResponse(dataBaseLinkService.queryForAgencyPage(page,ipSeq));
} }
/** /**
* 位于:脚本导出-机构管理
* 获取全部数据库ip
* 列表全部数据查询 * 列表全部数据查询
* *
* @return List<DataBaseLinkModel> * @return List<DataBaseLinkModel>
...@@ -113,8 +112,8 @@ public class DataBaseLinkResource { ...@@ -113,8 +112,8 @@ public class DataBaseLinkResource {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询") @ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public ResponseModel<List<DataBaseLinkModel>> selectForList() { public ResponseModel<List<DatabaseConnectionModel>> selectForList() {
return ResponseHelper.buildResponse(dataBaseLinkService.queryForDataBaseList()); return ResponseHelper.buildResponse(databaseConnectionService.queryForDataBaseList());
} }
/** /**
...@@ -126,7 +125,7 @@ public class DataBaseLinkResource { ...@@ -126,7 +125,7 @@ public class DataBaseLinkResource {
@GetMapping(value = "/agency/list") @GetMapping(value = "/agency/list")
@ApiOperation(httpMethod = "GET", value = "机构列表查询", notes = "列表查询") @ApiOperation(httpMethod = "GET", value = "机构列表查询", notes = "列表查询")
public ResponseModel<List<AgencyModel>> queryForList() throws SQLException, IOException { public ResponseModel<List<AgencyModel>> queryForList() throws SQLException, IOException {
return ResponseHelper.buildResponse(dataBaseLinkService.queryForAgencyList()); return ResponseHelper.buildResponse(databaseConnectionService.queryForAgencyList());
} }
......
...@@ -2,7 +2,7 @@ package com.yeejoin.amos.api.tool.controller; ...@@ -2,7 +2,7 @@ package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel; import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseNameListService; import com.yeejoin.amos.api.tool.face.service.DatabaseNameListService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -18,10 +18,10 @@ import java.util.List; ...@@ -18,10 +18,10 @@ import java.util.List;
@RestController @RestController
@Api(tags = "数据库名称表") @Api(tags = "数据库名称表")
@RequestMapping(value = "/database_name") @RequestMapping(value = "/database_name")
public class DataBaseNameListResource { public class DatabaseNameListResource {
@Autowired @Autowired
private DataBaseNameListService dataBaseNameListService; private DatabaseNameListService databaseNameListService;
/** /**
* 数据库初始化 * 数据库初始化
...@@ -33,8 +33,7 @@ public class DataBaseNameListResource { ...@@ -33,8 +33,7 @@ public class DataBaseNameListResource {
@PostMapping(value = "/refresh/{ipSeq}") @PostMapping(value = "/refresh/{ipSeq}")
@ApiOperation(httpMethod = "POST", value = "数据库初始化", notes = "数据库初始化") @ApiOperation(httpMethod = "POST", value = "数据库初始化", notes = "数据库初始化")
public ResponseModel<List<String>> refresh(@PathVariable Long ipSeq) throws Exception { public ResponseModel<List<String>> refresh(@PathVariable Long ipSeq) throws Exception {
return ResponseHelper.buildResponse( return ResponseHelper.buildResponse(databaseNameListService.refreshDatabase(ipSeq));
dataBaseNameListService.refreshDataBase(ipSeq));
} }
/** /**
...@@ -52,7 +51,7 @@ public class DataBaseNameListResource { ...@@ -52,7 +51,7 @@ public class DataBaseNameListResource {
@RequestParam(value = "size") int size, @RequestParam(value = "size") int size,
@RequestParam Long ipSeq) throws SQLException, ClassNotFoundException { @RequestParam Long ipSeq) throws SQLException, ClassNotFoundException {
Page<DataBaseNameListModel> page = new Page<>(); Page<DataBaseNameListModel> page = new Page<>();
return ResponseHelper.buildResponse(dataBaseNameListService.queryForDataBasePage(page, ipSeq,current,size)); return ResponseHelper.buildResponse(databaseNameListService.queryForDataBasePage(page, ipSeq, current, size));
} }
} }
package com.yeejoin.amos.api.tool.controller; package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.service.DataBaseLinkService; import com.yeejoin.amos.api.tool.face.service.DatabaseConnectionService;
import com.yeejoin.amos.api.tool.face.service.RelationService; import com.yeejoin.amos.api.tool.face.service.RelationService;
import com.yeejoin.amos.api.tool.face.service.StudioResourceService; import com.yeejoin.amos.api.tool.face.service.StudioResourceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -26,7 +26,7 @@ public class RelationResource { ...@@ -26,7 +26,7 @@ public class RelationResource {
@Autowired @Autowired
private RelationService relationService; private RelationService relationService;
@Autowired @Autowired
DataBaseLinkService dataBaseLinkService; DatabaseConnectionService databaseConnectionService;
@Autowired @Autowired
private StudioResourceService studioResourceService; private StudioResourceService studioResourceService;
......
package com.yeejoin.amos.api.tool.face.model; package com.yeejoin.amos.api.tool.face.model;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseLink;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -15,9 +14,9 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel; ...@@ -15,9 +14,9 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@NoArgsConstructor @NoArgsConstructor
//@AllArgsConstructor @AllArgsConstructor
@ApiModel(value = "DataBaseLinkModel", description = "") @ApiModel(value = "DatabaseConnectionModel", description = "")
public class DataBaseLinkModel extends BaseModel { public class DatabaseConnectionModel extends BaseModel {
@ApiModelProperty(value = "主机IP") @ApiModelProperty(value = "主机IP")
private String ip; private String ip;
...@@ -39,16 +38,4 @@ public class DataBaseLinkModel extends BaseModel { ...@@ -39,16 +38,4 @@ public class DataBaseLinkModel extends BaseModel {
@ApiModelProperty(value = "后缀") @ApiModelProperty(value = "后缀")
private String suffix; private String suffix;
public DataBaseLinkModel(String ip, String port, String dbName, String userName, String passWord,String prefix,String suffix) {
this.ip = ip;
this.port = port;
this.dbName = dbName;
this.userName = userName;
this.passWord = passWord;
this.prefix=prefix;
this.suffix = suffix;
}
} }
...@@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.sql.*;
import java.util.*; import java.util.*;
@Component @Component
...@@ -21,7 +20,7 @@ public class AmosToolTemplateService extends BaseService<AmosToolTemplateModel, ...@@ -21,7 +20,7 @@ public class AmosToolTemplateService extends BaseService<AmosToolTemplateModel,
private AmosToolTemplateMapper amosToolTemplateMapper; private AmosToolTemplateMapper amosToolTemplateMapper;
@Autowired @Autowired
private DataBaseLinkService dataBaseLinkService; private DatabaseConnectionService databaseConnectionService;
......
...@@ -6,7 +6,7 @@ import com.yeejoin.amos.api.tool.face.model.*; ...@@ -6,7 +6,7 @@ import com.yeejoin.amos.api.tool.face.model.*;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseLinkMapper; import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseLinkMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseLink; import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseLink;
import com.yeejoin.amos.api.tool.utils.AESUtils; import com.yeejoin.amos.api.tool.utils.AESUtils;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils; import com.yeejoin.amos.api.tool.utils.DatabaseUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -29,9 +29,9 @@ import java.util.Map; ...@@ -29,9 +29,9 @@ import java.util.Map;
*/ */
@Service @Service
public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBaseLink, DataBaseLinkMapper> { public class DatabaseConnectionService extends BaseService<DatabaseConnectionModel, DataBaseLink, DataBaseLinkMapper> {
private static final Logger log = LogManager.getLogger(DataBaseLinkService.class); private static final Logger log = LogManager.getLogger(DatabaseConnectionService.class);
@Autowired @Autowired
private DataSource dataSource; private DataSource dataSource;
...@@ -39,23 +39,21 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase ...@@ -39,23 +39,21 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
/** /**
* 新增 * 新增
*/ */
public DataBaseLinkModel save(DataBaseLinkModel dataBaseLinkModel) throws Exception { public DatabaseConnectionModel save(DatabaseConnectionModel dataBaseConnectionModel) throws Exception {
DataBaseLinkModel model = this.encryptPwd(dataBaseLinkModel); DatabaseConnectionModel model = AESUtils.encryptPwd(dataBaseConnectionModel);
if (this.testConnection(model)) { if (DatabaseUtils.isConnectionValid(model)) {
return this.createWithModel(model); return this.createWithModel(model);
} else { } else {
return new DataBaseLinkModel(); return new DatabaseConnectionModel();
} }
} }
/** /**
* 编辑 * 编辑
*/ */
public DatabaseConnectionModel update(DatabaseConnectionModel model) throws Exception {
public DataBaseLinkModel update(DataBaseLinkModel model) throws Exception { if (DatabaseUtils.isConnectionValid(model)) {
// DataBaseLinkModel model = this.decryptPwd(dataBaseLinkModel); return this.updateWithModel(AESUtils.encryptPwd(model));
if (this.testConnection(model)) {
return this.updateWithModel(encryptPwd(model));
} else { } else {
return null; return null;
} }
...@@ -65,10 +63,14 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase ...@@ -65,10 +63,14 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
* 机构分页查询 * 机构分页查询
*/ */
public Page<AgencyModel> queryForAgencyPage(Page<AgencyModel> page, Long ipSeq) throws SQLException { public Page<AgencyModel> queryForAgencyPage(Page<AgencyModel> page, Long ipSeq) throws SQLException {
Connection connection = this.connectNewDatabase(this.queryBySeq(ipSeq)); Connection connection = DatabaseUtils.getConnection(this.queryBySeq(ipSeq));
List<Map<String, Object>> maps = if (connection == null) {
DataBaseUtils.getMaps("SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;", connection); throw new SQLException("db connection is null!!!");
}
String selectSql = "SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;";
List<Map<String, Object>> maps = DatabaseUtils.getMaps(selectSql, connection);
connection.close(); connection.close();
List<AgencyModel> records = new ArrayList<>(); List<AgencyModel> records = new ArrayList<>();
for (Map<String, Object> map : maps) { for (Map<String, Object> map : maps) {
AgencyModel model = new AgencyModel(); AgencyModel model = new AgencyModel();
...@@ -78,7 +80,7 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase ...@@ -78,7 +80,7 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
model.setAgencyDesc(map.get("AGENCY_DESC").toString()); model.setAgencyDesc(map.get("AGENCY_DESC").toString());
records.add(model); records.add(model);
} }
Page<AgencyModel> entiryPage = new Page(page.getCurrent(), page.getSize()); Page<AgencyModel> entiryPage = new Page<>(page.getCurrent(), page.getSize());
if (!ValidationUtil.isEmpty(records)) { if (!ValidationUtil.isEmpty(records)) {
page.setTotal(records.size()); page.setTotal(records.size());
page.setPages(entiryPage.getPages()); page.setPages(entiryPage.getPages());
...@@ -99,12 +101,17 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase ...@@ -99,12 +101,17 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
con.close(); con.close();
log.info(url); log.info(url);
DataBaseLink dataBaseLink = getOne(new QueryWrapper<DataBaseLink>().eq("IP", url.getHost())); DataBaseLink dataBaseLink = getOne(new QueryWrapper<DataBaseLink>().eq("IP", url.getHost()));
DataBaseLinkModel dataBaseLinkModel = new DataBaseLinkModel(); DatabaseConnectionModel dataBaseConnectionModel = new DatabaseConnectionModel();
Bean.toModel(dataBaseLink, dataBaseLinkModel); Bean.toModel(dataBaseLink, dataBaseConnectionModel);
Connection connection = this.connectNewDatabase(dataBaseLinkModel);
List<Map<String, Object>> maps = DataBaseUtils.getMaps Connection connection = DatabaseUtils.getConnection(dataBaseConnectionModel);
("SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;", connection); if (connection == null) {
throw new SQLException("db connection is null!!!");
}
String selectSql = "SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;";
List<Map<String, Object>> maps = DatabaseUtils.getMaps(selectSql, connection);
connection.close(); connection.close();
List<AgencyModel> records = new ArrayList<>(); List<AgencyModel> records = new ArrayList<>();
for (Map<String, Object> map : maps) { for (Map<String, Object> map : maps) {
AgencyModel model = new AgencyModel(); AgencyModel model = new AgencyModel();
...@@ -117,80 +124,11 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase ...@@ -117,80 +124,11 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
return records; return records;
} }
/** /**
* 列表查询 * 列表查询
*/ */
public List<DataBaseLinkModel> queryForDataBaseList() { public List<DatabaseConnectionModel> queryForDataBaseList() {
return this.queryForList("", false); return this.queryForList("", false);
} }
/**
* 获取数据库名称
*/
public String[] getDataBaseName(Connection connection) throws SQLException {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SHOW DATABASES");
String[] result = new String[1000];
int count = 0;
while (rs.next()) {
result[count++] = rs.getString(1);
}
return result;
}
/**
* 连接数据库
*/
public Connection connectNewDatabase(DataBaseLinkModel model) {
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
if (model.getPrefix() == null || model.getPrefix().isEmpty() || model.getPrefix().equals("null")) {
model.setPrefix("");
}
if (model.getSuffix() == null || model.getSuffix().isEmpty() || model.getSuffix().equals("null")) {
model.setSuffix("");
}
// 连接新增的数据库
// String dbUrl = "jdbc:mysql://" + model.getIp() + ":" + model.getPort() + "/" +
// model.getPrefix() + model.getDbName() + model.getSuffix();
String dbUrl = "jdbc:mysql://" + model.getIp() + ":" + model.getPort() + "/" + model.getDbName() ;
// 解密pwd,并连接
return DriverManager.getConnection(dbUrl, model.getUserName(), AESUtils.decrypt(model.getPassWord()));
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
throw new RuntimeException(e);
}
return null;
}
/**
* 测试连接数据库
*/
public boolean testConnection(DataBaseLinkModel model) throws Exception {
Connection connection = this.connectNewDatabase(model);
if (connection != null) {
connection.close();
return true;
}
return false;
}
/**
* 加密model里的密码
*/
public DataBaseLinkModel encryptPwd(DataBaseLinkModel model) throws Exception {
model.setPassWord(AESUtils.encrypt(model.getPassWord()));
return model;
}
public DataBaseLinkModel decryptPwd(DataBaseLinkModel model) throws Exception {
model.setPassWord(AESUtils.decrypt(model.getPassWord()));
return model;
}
} }
package com.yeejoin.amos.api.tool.face.service; package com.yeejoin.amos.api.tool.face.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel; import com.yeejoin.amos.api.tool.face.model.DatabaseConnectionModel;
import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel; import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseNameListMapper; import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseNameListMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList; import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils; import com.yeejoin.amos.api.tool.utils.DatabaseUtils;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
...@@ -17,9 +15,9 @@ import java.sql.*; ...@@ -17,9 +15,9 @@ import java.sql.*;
import java.util.*; import java.util.*;
@Service @Service
public class DataBaseNameListService extends BaseService<DataBaseNameListModel, DataBaseNameList, DataBaseNameListMapper> { public class DatabaseNameListService extends BaseService<DataBaseNameListModel, DataBaseNameList, DataBaseNameListMapper> {
@Autowired @Autowired
private DataBaseLinkService dataBaseLinkService; private DatabaseConnectionService databaseConnectionService;
@Autowired @Autowired
private DataBaseNameListMapper dataBaseNameListMapper; private DataBaseNameListMapper dataBaseNameListMapper;
...@@ -27,23 +25,23 @@ public class DataBaseNameListService extends BaseService<DataBaseNameListModel, ...@@ -27,23 +25,23 @@ public class DataBaseNameListService extends BaseService<DataBaseNameListModel,
/** /**
* 分页查询 * 分页查询
*/ */
public Page<DataBaseNameListModel> queryForDataBasePage(Page<DataBaseNameListModel> page,Long parentId,int current,int size) throws ClassNotFoundException, SQLException { public Page<DataBaseNameListModel> queryForDataBasePage(Page<DataBaseNameListModel> page, Long parentId, int current, int size) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver"); Class.forName("com.mysql.cj.jdbc.Driver");
DataBaseLinkModel dataBaseLinkModel = dataBaseLinkService.queryBySeq(parentId); DatabaseConnectionModel dataBaseConnectionModel = databaseConnectionService.queryBySeq(parentId);
String ip=dataBaseLinkModel.getIp(); String ip = dataBaseConnectionModel.getIp();
String port=dataBaseLinkModel.getPort(); String port = dataBaseConnectionModel.getPort();
String url = "jdbc:mysql://"+ip+":"+port+" "; String url = "jdbc:mysql://" + ip + ":" + port + " ";
String user = "root"; String user = "root";
String passWord = "Yeejoin@2020"; String passWord = "Yeejoin@2020";
String sql="show databases"; String sql = "show databases";
Connection connection = DriverManager.getConnection(url,user,passWord); Connection connection = DriverManager.getConnection(url, user, passWord);
Statement statement = connection.createStatement(); Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(sql); ResultSet rs = statement.executeQuery(sql);
List<DataBaseNameListModel> list=new ArrayList<>(); List<DataBaseNameListModel> list = new ArrayList<>();
long result=1; long result = 1;
try { try {
while (rs.next()){ while (rs.next()) {
DataBaseNameListModel listModel=new DataBaseNameListModel(); DataBaseNameListModel listModel = new DataBaseNameListModel();
listModel.setDbName(rs.getString("Database")); listModel.setDbName(rs.getString("Database"));
listModel.setParentId(parentId); listModel.setParentId(parentId);
listModel.setSequenceNbr(result); listModel.setSequenceNbr(result);
...@@ -74,8 +72,8 @@ public class DataBaseNameListService extends BaseService<DataBaseNameListModel, ...@@ -74,8 +72,8 @@ public class DataBaseNameListService extends BaseService<DataBaseNameListModel,
page.setSize(size); page.setSize(size);
page.setCurrent(current); page.setCurrent(current);
page.setTotal(count); page.setTotal(count);
//计算分页总页数 // 计算分页总页数
page.setPages(count %10 == 0 ? count/10 :count/10+1); page.setPages(count % 10 == 0 ? count / 10 : count / 10 + 1);
int startIndex = (current - 1) * size; int startIndex = (current - 1) * size;
page.setRecords(list.subList(startIndex, Math.min(startIndex + size, list.size()))); page.setRecords(list.subList(startIndex, Math.min(startIndex + size, list.size())));
return page; return page;
...@@ -84,21 +82,19 @@ public class DataBaseNameListService extends BaseService<DataBaseNameListModel, ...@@ -84,21 +82,19 @@ public class DataBaseNameListService extends BaseService<DataBaseNameListModel,
/** /**
* 初始化数据库名表 * 初始化数据库名表
*/ */
public List<String> refreshDataBase(Long ipSeq) throws Exception { public List<String> refreshDatabase(Long ipSeq) throws Exception {
DataBaseLinkModel dataBaseLinkModel = dataBaseLinkService.queryBySeq(ipSeq); DatabaseConnectionModel databaseConnectionModel = databaseConnectionService.queryBySeq(ipSeq);
//清空表单 // 清空表单
this.remove(new QueryWrapper<DataBaseNameList>().eq("PARENT_ID", ipSeq)); this.remove(new QueryWrapper<DataBaseNameList>().eq("PARENT_ID", ipSeq));
//连接数据库 // 连接数据库
Connection connection = dataBaseLinkService.connectNewDatabase(dataBaseLinkModel); Connection connection = DatabaseUtils.getConnection(databaseConnectionModel);
if (connection == null) if (connection == null)
return null; return null;
List<String> strings = new ArrayList<>(); List<String> strings = new ArrayList<>();
Collection<DataBaseNameList> dataBaseNameLists = new ArrayList<>(); Collection<DataBaseNameList> dataBaseNameLists = new ArrayList<>();
for (String name : dataBaseLinkService.getDataBaseName(connection)) { for (String dbName : DatabaseUtils.getDatabaseNames(connection)) {
if (name == null) DataBaseNameListModel model = new DataBaseNameListModel(dbName, ipSeq);
break; strings.add(dbName);
DataBaseNameListModel model = new DataBaseNameListModel(name, ipSeq);
strings.add(name);
dataBaseNameLists.add(this.prepareEntity(model)); dataBaseNameLists.add(this.prepareEntity(model));
} }
this.saveBatch(dataBaseNameLists); this.saveBatch(dataBaseNameLists);
......
package com.yeejoin.amos.api.tool.face.service; package com.yeejoin.amos.api.tool.face.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.api.tool.enums.SourceEnum; import com.yeejoin.amos.api.tool.face.model.DatabaseConnectionModel;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel; import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel;
import com.yeejoin.amos.api.tool.face.model.RelationModel; import com.yeejoin.amos.api.tool.face.model.RelationModel;
import com.yeejoin.amos.api.tool.face.model.RelationTreeModel; import com.yeejoin.amos.api.tool.face.model.RelationTreeModel;
import com.yeejoin.amos.api.tool.face.orm.dao.RelationMapper; import com.yeejoin.amos.api.tool.face.orm.dao.RelationMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.Relation; import com.yeejoin.amos.api.tool.face.orm.entity.Relation;
import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn; import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils; import com.yeejoin.amos.api.tool.utils.DatabaseUtils;
import com.yeejoin.amos.api.tool.utils.DateUtils; import com.yeejoin.amos.api.tool.utils.DateUtils;
import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
...@@ -33,7 +32,7 @@ import java.util.HashMap; ...@@ -33,7 +32,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.yeejoin.amos.api.tool.utils.DataBaseUtils.*; import static com.yeejoin.amos.api.tool.utils.DatabaseUtils.*;
@Service @Service
public class RelationService extends BaseService<RelationModel, Relation, RelationMapper> { public class RelationService extends BaseService<RelationModel, Relation, RelationMapper> {
...@@ -42,11 +41,11 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati ...@@ -42,11 +41,11 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
@Autowired @Autowired
private RelationMapper relationMapper; private RelationMapper relationMapper;
@Autowired @Autowired
private DataBaseLinkService dataBaseLinkService; private DatabaseConnectionService databaseConnectionService;
@Autowired @Autowired
JdbcTemplate jdbcTemplate; JdbcTemplate jdbcTemplate;
@Autowired @Autowired
private DataBaseNameListService dataBaseNameListService; private DatabaseNameListService dataBaseNameListService;
@Autowired @Autowired
public EmqKeeper emqKeeper; public EmqKeeper emqKeeper;
/** /**
...@@ -55,9 +54,9 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati ...@@ -55,9 +54,9 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
public void deleteAgency(String agencyCode, String sequenceNbrs) throws Exception { public void deleteAgency(String agencyCode, String sequenceNbrs) throws Exception {
for (Long seq : (Long[]) ConvertUtils.convert(StringUtil.string2Array(sequenceNbrs), Long.class)) { for (Long seq : (Long[]) ConvertUtils.convert(StringUtil.string2Array(sequenceNbrs), Long.class)) {
DataBaseNameListModel nameListModel = dataBaseNameListService.queryBySeq(seq); DataBaseNameListModel nameListModel = dataBaseNameListService.queryBySeq(seq);
DataBaseLinkModel model = dataBaseLinkService.queryBySeq(nameListModel.getParentId()); DatabaseConnectionModel model = databaseConnectionService.queryBySeq(nameListModel.getParentId());
model.setDbName(nameListModel.getDbName()); model.setDbName(nameListModel.getDbName());
Connection connection = dataBaseLinkService.connectNewDatabase(model); Connection connection = DatabaseUtils.getConnection(model);
this.deleteDataBase( this.deleteDataBase(
connection, agencyCode, model.getDbName()); connection, agencyCode, model.getDbName());
} }
...@@ -69,8 +68,8 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati ...@@ -69,8 +68,8 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
public void outputAgency(String agencyCode,Long ipSeq, String dbName, HttpServletResponse response) throws Exception { public void outputAgency(String agencyCode,Long ipSeq, String dbName, HttpServletResponse response) throws Exception {
// for (Long seq : (Long[]) ConvertUtils.convert(StringUtil.string2Array(sequenceNbrs), Long.class)) { // for (Long seq : (Long[]) ConvertUtils.convert(StringUtil.string2Array(sequenceNbrs), Long.class)) {
// DataBaseNameListModel nameListModel = dataBaseNameListService.queryBySeq(seq); // DataBaseNameListModel nameListModel = dataBaseNameListService.queryBySeq(seq);
DataBaseLinkModel model = dataBaseLinkService.queryBySeq(ipSeq); DatabaseConnectionModel model = databaseConnectionService.queryBySeq(ipSeq);
Connection connection = dataBaseLinkService.connectNewDatabase(model); Connection connection = DatabaseUtils.getConnection(model);
model.setDbName(dbName); model.setDbName(dbName);
this.insertData(connection, agencyCode, model.getDbName(), ipSeq, response); this.insertData(connection, agencyCode, model.getDbName(), ipSeq, response);
// } // }
...@@ -232,13 +231,13 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati ...@@ -232,13 +231,13 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
//根据列表获取sql语句 //根据列表获取sql语句
for (RelationTreeModel model : array) { for (RelationTreeModel model : array) {
List<RelationTreeModel> tableSet = tableRelation(model, array); List<RelationTreeModel> tableSet = tableRelation(model, array);
List<TableColumn> columns = DataBaseUtils.getTableColumn(model.getName(), connection); List<TableColumn> columns = DatabaseUtils.getTableColumn(model.getName(), connection);
String selectSQL = this.getSelectSQL(tableSet, model.getName(), columns, agencyCode).toString(); String selectSQL = this.getSelectSQL(tableSet, model.getName(), columns, agencyCode).toString();
print(seq.toString(),"开始查询"+model.getName()+"表","running"); print(seq.toString(),"开始查询"+model.getName()+"表","running");
List<Map<String, Object>> dataList = DataBaseUtils.getMaps(selectSQL, connection); List<Map<String, Object>> dataList = DatabaseUtils.getMaps(selectSQL, connection);
print(seq.toString(),"开始创建"+model.getName()+"表insert语句","running"); print(seq.toString(),"开始创建"+model.getName()+"表insert语句","running");
System.out.println(selectSQL); System.out.println(selectSQL);
StringBuffer insertSQL = DataBaseUtils.getInsertSQL(dataList, columns, model.getName()); StringBuffer insertSQL = DatabaseUtils.getInsertSQL(dataList, columns, model.getName());
System.out.println(insertSQL); System.out.println(insertSQL);
if (!ObjectUtils.isEmpty(insertSQL)) insertSql.append(insertSQL); if (!ObjectUtils.isEmpty(insertSQL)) insertSql.append(insertSQL);
} }
......
...@@ -7,10 +7,9 @@ import com.yeejoin.amos.api.tool.face.model.ToolLibraryTreeModel; ...@@ -7,10 +7,9 @@ import com.yeejoin.amos.api.tool.face.model.ToolLibraryTreeModel;
import com.yeejoin.amos.api.tool.face.orm.dao.ToolLibraryMapper; import com.yeejoin.amos.api.tool.face.orm.dao.ToolLibraryMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn; import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn;
import com.yeejoin.amos.api.tool.face.orm.entity.ToolLibrary; import com.yeejoin.amos.api.tool.face.orm.entity.ToolLibrary;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils; import com.yeejoin.amos.api.tool.utils.DatabaseUtils;
import com.yeejoin.amos.api.tool.utils.SqlExportUtils; import com.yeejoin.amos.api.tool.utils.SqlExportUtils;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
...@@ -37,12 +36,15 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar ...@@ -37,12 +36,15 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
* 由一级到二级 * 由一级到二级
*/ */
public List<ToolLibraryTreeModel> queryForComponentList(String designer) throws ClassNotFoundException, SQLException { public List<ToolLibraryTreeModel> queryForComponentList(String designer) throws ClassNotFoundException, SQLException {
// DatabaseConnectionModel databaseConnectionModel = new DatabaseConnectionModel();
// DatabaseUtils.getConnection(databaseConnectionModel)
Class.forName(className); Class.forName(className);
Connection connection = DriverManager.getConnection(url, userName, passWord); Connection connection = DriverManager.getConnection(url, userName, passWord);
List<Map<String, Object>> displayMaps = DataBaseUtils.getMaps List<Map<String, Object>> displayMaps = DatabaseUtils.getMaps
("select display_name, DESIGNER_TYPE,SEQUENCE_NBR,parent from morphic_widget_group where DESIGNER_TYPE " + ("select display_name, DESIGNER_TYPE,SEQUENCE_NBR,parent from morphic_widget_group where DESIGNER_TYPE " +
"= '" + designer + "' and is_delete!=1;", connection); "= '" + designer + "' and is_delete!=1;", connection);
connection.close(); connection.close();
List<ToolLibraryTreeModel> displayLists = new ArrayList<>(); List<ToolLibraryTreeModel> displayLists = new ArrayList<>();
for (Map<String, Object> map : displayMaps) { for (Map<String, Object> map : displayMaps) {
ToolLibraryTreeModel model = new ToolLibraryTreeModel(); ToolLibraryTreeModel model = new ToolLibraryTreeModel();
...@@ -85,7 +87,7 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar ...@@ -85,7 +87,7 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
Class.forName(className); Class.forName(className);
Connection connection = DriverManager.getConnection(url, userName, passWord); Connection connection = DriverManager.getConnection(url, userName, passWord);
// 先查当前节点的parent,看是不是0,从而判断在叶子节点还是父节点 // 先查当前节点的parent,看是不是0,从而判断在叶子节点还是父节点
List<Map<String, Object>> clickedNodeMaps = DataBaseUtils.getMaps( List<Map<String, Object>> clickedNodeMaps = DatabaseUtils.getMaps(
"select SEQUENCE_NBR, parent, DESIGNER_TYPE, display_name " + "select SEQUENCE_NBR, parent, DESIGNER_TYPE, display_name " +
"from morphic_widget_group " + "from morphic_widget_group " +
"where is_delete != 1 and SEQUENCE_NBR = " + sequenceNbr, connection); "where is_delete != 1 and SEQUENCE_NBR = " + sequenceNbr, connection);
...@@ -94,20 +96,20 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar ...@@ -94,20 +96,20 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
if (parent.equals("0")) { if (parent.equals("0")) {
// 父节点 // 父节点
// 查询所有表中parent==sequenceNbr的行数据 // 查询所有表中parent==sequenceNbr的行数据
List<Map<String, Object>> displayMaps = DataBaseUtils.getMaps( List<Map<String, Object>> displayMaps = DatabaseUtils.getMaps(
"select SEQUENCE_NBR, parent, DESIGNER_TYPE, display_name " + "select SEQUENCE_NBR, parent, DESIGNER_TYPE, display_name " +
"from morphic_widget_group " + "from morphic_widget_group " +
"where is_delete != 1 and parent = " + sequenceNbr, connection); "where is_delete != 1 and parent = " + sequenceNbr, connection);
for (Map<String, Object> map: displayMaps) { for (Map<String, Object> map: displayMaps) {
String seqNbr = map.get("SEQUENCE_NBR").toString(); String seqNbr = map.get("SEQUENCE_NBR").toString();
displayTools.addAll(DataBaseUtils.getMaps("select SEQUENCE_NBR, category, component_key, name, thumb " + displayTools.addAll(DatabaseUtils.getMaps("select SEQUENCE_NBR, category, component_key, name, thumb " +
"from morphic_widget where is_delete != 1 and group_id = " + seqNbr, connection)); "from morphic_widget where is_delete != 1 and group_id = " + seqNbr, connection));
} }
} }
else { else {
// 叶子节点 // 叶子节点
// 查询morphic_widget表中,group_id为sequenceNbr的所有工具数据 // 查询morphic_widget表中,group_id为sequenceNbr的所有工具数据
displayTools.addAll(DataBaseUtils.getMaps( displayTools.addAll(DatabaseUtils.getMaps(
"select SEQUENCE_NBR, category, component_key, name, thumb " + "select SEQUENCE_NBR, category, component_key, name, thumb " +
"from morphic_widget " + "from morphic_widget " +
"where is_delete != 1 and group_id = " + sequenceNbr, connection)); "where is_delete != 1 and group_id = " + sequenceNbr, connection));
...@@ -145,12 +147,12 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar ...@@ -145,12 +147,12 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
try { try {
Class.forName(className); Class.forName(className);
Connection connection = DriverManager.getConnection(url, userName, passWord); Connection connection = DriverManager.getConnection(url, userName, passWord);
List<Map<String, Object>> resultMaps = DataBaseUtils.getMaps("select * from " + List<Map<String, Object>> resultMaps = DatabaseUtils.getMaps("select * from " +
" (select SEQUENCE_NBR from morphic_widget_group " + " (select SEQUENCE_NBR from morphic_widget_group " +
" where DESIGNER_TYPE='" + id + "' and is_delete!=1) as t\n" + " where DESIGNER_TYPE='" + id + "' and is_delete!=1) as t\n" +
" inner join morphic_widget mw on mw.group_id=t.SEQUENCE_NBR", connection); " inner join morphic_widget mw on mw.group_id=t.SEQUENCE_NBR", connection);
List<TableColumn> tableColumn = DataBaseUtils.getTableColumn("morphic_widget",connection); List<TableColumn> tableColumn = DatabaseUtils.getTableColumn("morphic_widget",connection);
StringBuffer insertSql = DataBaseUtils.getInsertSQL(resultMaps, tableColumn, "morphic_widget"); StringBuffer insertSql = DatabaseUtils.getInsertSQL(resultMaps, tableColumn, "morphic_widget");
connection.close(); connection.close();
exportDownload(id, insertSql, httpServletResponse); exportDownload(id, insertSql, httpServletResponse);
} catch (Exception e) { } catch (Exception e) {
...@@ -166,7 +168,7 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar ...@@ -166,7 +168,7 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
Class.forName(className); Class.forName(className);
Connection connection = DriverManager.getConnection(url, userName, passWord); Connection connection = DriverManager.getConnection(url, userName, passWord);
// 先查当前节点的parent,看是不是0,从而判断在叶子节点还是父节点 // 先查当前节点的parent,看是不是0,从而判断在叶子节点还是父节点
List<Map<String, Object>> clickedNodeMaps = DataBaseUtils.getMaps( List<Map<String, Object>> clickedNodeMaps = DatabaseUtils.getMaps(
"select SEQUENCE_NBR, parent, DESIGNER_TYPE, display_name " + "select SEQUENCE_NBR, parent, DESIGNER_TYPE, display_name " +
"from morphic_widget_group " + "from morphic_widget_group " +
"where is_delete != 1 and SEQUENCE_NBR = " + sequenceNbr, connection); "where is_delete != 1 and SEQUENCE_NBR = " + sequenceNbr, connection);
...@@ -185,9 +187,9 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar ...@@ -185,9 +187,9 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
sql = "SELECT * FROM morphic_widget\n" + sql = "SELECT * FROM morphic_widget\n" +
"WHERE is_delete!=1 AND group_id = " + sequenceNbr + ";"; "WHERE is_delete!=1 AND group_id = " + sequenceNbr + ";";
} }
List<Map<String, Object>> resultMaps = DataBaseUtils.getMaps(sql, connection); List<Map<String, Object>> resultMaps = DatabaseUtils.getMaps(sql, connection);
List<TableColumn> tableColumn = DataBaseUtils.getTableColumn("morphic_widget", connection); List<TableColumn> tableColumn = DatabaseUtils.getTableColumn("morphic_widget", connection);
StringBuffer insertSql = DataBaseUtils.getInsertSQL(resultMaps, tableColumn, "morphic_widget"); StringBuffer insertSql = DatabaseUtils.getInsertSQL(resultMaps, tableColumn, "morphic_widget");
connection.close(); connection.close();
// 下载.sql文件 // 下载.sql文件
...@@ -212,9 +214,9 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar ...@@ -212,9 +214,9 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
"FROM morphic_widget\n" + "FROM morphic_widget\n" +
"WHERE is_delete!=1 AND SEQUENCE_NBR IN ("+sequenceNbres+");"; "WHERE is_delete!=1 AND SEQUENCE_NBR IN ("+sequenceNbres+");";
Connection connection = DriverManager.getConnection(url, userName, passWord); Connection connection = DriverManager.getConnection(url, userName, passWord);
List<Map<String, Object>> resultMaps = DataBaseUtils.getMaps(sql, connection); List<Map<String, Object>> resultMaps = DatabaseUtils.getMaps(sql, connection);
List<TableColumn> tableColumn = DataBaseUtils.getTableColumn("morphic_widget",connection); List<TableColumn> tableColumn = DatabaseUtils.getTableColumn("morphic_widget",connection);
StringBuffer insertSql = DataBaseUtils.getInsertSQL(resultMaps, tableColumn, "morphic_widget"); StringBuffer insertSql = DatabaseUtils.getInsertSQL(resultMaps, tableColumn, "morphic_widget");
connection.close(); connection.close();
exportDownload("tool", insertSql, httpServletResponse); exportDownload("tool", insertSql, httpServletResponse);
} catch (Exception e) { } catch (Exception e) {
......
package com.yeejoin.amos.api.tool.utils; package com.yeejoin.amos.api.tool.utils;
import com.yeejoin.amos.api.tool.face.model.DatabaseConnectionModel;
import javax.crypto.Cipher; import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import java.util.Base64; import java.util.Base64;
...@@ -13,6 +15,21 @@ public class AESUtils { ...@@ -13,6 +15,21 @@ public class AESUtils {
private static final String ALGORITHM = "AES"; private static final String ALGORITHM = "AES";
private static final String SECRET_KEY = "aes-key-lima1995"; // 密钥 private static final String SECRET_KEY = "aes-key-lima1995"; // 密钥
/**
* 加密model里的密码,并返回model
*/
public static DatabaseConnectionModel encryptPwd(DatabaseConnectionModel model) throws Exception {
model.setPassWord(encrypt(model.getPassWord()));
return model;
}
public static DatabaseConnectionModel decryptPwd(DatabaseConnectionModel model) throws Exception {
model.setPassWord(decrypt(model.getPassWord()));
return model;
}
/** /**
* 加密 * 加密
*/ */
......
...@@ -2,6 +2,7 @@ package com.yeejoin.amos.api.tool.utils; ...@@ -2,6 +2,7 @@ package com.yeejoin.amos.api.tool.utils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.DatabaseConnectionModel;
import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn; import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
...@@ -9,7 +10,7 @@ import java.sql.*; ...@@ -9,7 +10,7 @@ import java.sql.*;
import java.util.*; import java.util.*;
@Component @Component
public class DataBaseUtils { public class DatabaseUtils {
/** /**
...@@ -40,6 +41,60 @@ public class DataBaseUtils { ...@@ -40,6 +41,60 @@ public class DataBaseUtils {
/** /**
* 连接数据库
* @param model DataBaseLinkModel
* @return 数据库连接
*/
public static Connection getConnection(DatabaseConnectionModel model) {
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
if (model.getPrefix() == null || model.getPrefix().isEmpty() || model.getPrefix().equals("null")) {
model.setPrefix("");
}
if (model.getSuffix() == null || model.getSuffix().isEmpty() || model.getSuffix().equals("null")) {
model.setSuffix("");
}
// 连接新增的数据库
// String dbUrl = "jdbc:mysql://" + model.getIp() + ":" + model.getPort() + "/" +
// model.getPrefix() + model.getDbName() + model.getSuffix();
String dbUrl = "jdbc:mysql://" + model.getIp() + ":" + model.getPort() + "/" + model.getDbName();
// 解密pwd,并连接
return DriverManager.getConnection(dbUrl, model.getUserName(), AESUtils.decrypt(model.getPassWord()));
} catch (ClassNotFoundException e) {
// 处理数据库驱动加载异常
e.printStackTrace();
} catch (SQLException e) {
// 处理数据库连接异常
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 测试数据库连接是否成功
*/
public static boolean isConnectionValid(DatabaseConnectionModel model) throws Exception {
Connection connection = DatabaseUtils.getConnection(model);
if (connection != null) {
connection.close();
return true;
}
return false;
}
/**
* 获取所有数据库名称,如果为空,则返回空的List<String>
*/
public static List<String> getDatabaseNames(Connection connection) throws SQLException {
return new ArrayList<>(DatabaseUtils.getList("SHOW DATABASES;", connection));
}
/**
* 获取maps * 获取maps
*/ */
public static List<Map<String, Object>> getMaps(String sql, Connection connection) throws SQLException { public static List<Map<String, Object>> getMaps(String sql, Connection connection) throws SQLException {
...@@ -120,7 +175,7 @@ public class DataBaseUtils { ...@@ -120,7 +175,7 @@ public class DataBaseUtils {
"\t\t\tAND table_name = \"" + tableName + "\"\n" + "\t\t\tAND table_name = \"" + tableName + "\"\n" +
"\t\tORDER BY\n" + "\t\tORDER BY\n" +
"\t\t\tordinal_position\t"; "\t\t\tordinal_position\t";
List<Map<String, Object>> columnList = DataBaseUtils.getMaps(columnSql, connection); List<Map<String, Object>> columnList = DatabaseUtils.getMaps(columnSql, connection);
List<TableColumn> columns = new ArrayList<>(); List<TableColumn> columns = new ArrayList<>();
for (Map<String, Object> map : columnList) { for (Map<String, Object> map : columnList) {
TableColumn column = JSON.parseObject(JSON.toJSONString(map), TableColumn.class); TableColumn column = JSON.parseObject(JSON.toJSONString(map), TableColumn.class);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment