Commit 4a01f1a3 authored by Code-KingTT's avatar Code-KingTT

Merge remote-tracking branch 'origin/develop' into develop

parents d0928246 7b7e92a3
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.AgencyTreeModel;
import com.yeejoin.amos.api.tool.face.service.AgencyTreeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
/**
* @author r
*/
@RestController
@Api(tags = "机构树")
@RequestMapping(value = "/privilege_agency")
public class AgencyTreeResource {
@Autowired
private AgencyTreeService agencyTreeService;
/**
* 根据sequenceNbr删除
* @param sequenceNbr 主键
* @return Boolean
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(agencyTreeService.removeById(sequenceNbr));
}
/**
*列表全部数据查询
* @return List<AgencyTreeModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<AgencyTreeModel>> selectForList() {
return ResponseHelper.buildResponse(agencyTreeService.queryForAgencyTreeList());
}
}
......@@ -25,8 +25,6 @@ public class ApiSourceResource {
@Autowired
private ApiSourceService apiSourceService;
@Autowired
private ApiInfoService apiInfoService;
/**
* 新增
......
......@@ -36,7 +36,8 @@ import java.util.Map;
@TycloudResource(module = "atl", value = "dataApi")
@RequestMapping(value = "/v1/dataApi")
@Api(tags = "atl-导出")
public class DataApiResource {
public class
DataApiResource {
private final Logger logger = LogManager.getLogger(DataApiResource.class);
......
package com.yeejoin.amos.api.tool.controller;
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.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.model.TemplateVoModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseLinkService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -12,6 +14,9 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
......@@ -20,45 +25,89 @@ import java.util.List;
*/
@RestController
@Api(tags = "数据库信息")
@RequestMapping(value = "/database_join_record")
@RequestMapping(value = "/database_link")
public class DataBaseLinkResource {
@Autowired
private DataBaseLinkService dataBaseLinkService;
/**
* 数据库初始化
* @param dataBaseLinkModel 数据库连接信息
* @return List<DataBaseLinkModel>
* 新增
*
* @param dataBaseLinkModel 数据库连接
* @return DataBaseLinkModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<DataBaseLinkModel> save(@RequestBody DataBaseLinkModel dataBaseLinkModel) throws Exception {
return ResponseHelper.buildResponse(dataBaseLinkService.save(dataBaseLinkModel));
}
/**
* 根据sequenceNbr更新
*
* @param model 数据库连接
* @return DataBaseLinkModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<DataBaseLinkModel> updateBySeq(
@RequestBody DataBaseLinkModel model,
@PathVariable(value = "sequenceNbr") Long sequenceNbr) throws Exception {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(dataBaseLinkService.update(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return Boolean
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(dataBaseLinkService.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
* @param sequenceNbr 主键
* @return TemplateVoModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/refresh")
@ApiOperation(httpMethod = "POST", value = "数据库初始化", notes = "数据库初始化")
public ResponseModel<List<DataBaseLinkModel>> save(@RequestBody DataBaseLinkModel dataBaseLinkModel) throws Exception {
return ResponseHelper.buildResponse(
dataBaseLinkService.refreshDataBase(dataBaseLinkService.encryptPwd(dataBaseLinkModel)));
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<DataBaseLinkModel> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(dataBaseLinkService.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
* 机构分页查询
*
* @param current 当前分页
* @param size 分页大小
* @return Page<DataBaseLinkModel>
* @param size 分页大小
* @return Page<AgencyModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<DataBaseLinkModel>> queryForPage(
@ApiOperation(httpMethod = "GET", value = "机构分页查询", notes = "分页查询")
public ResponseModel<Page<AgencyModel>> queryForPage(
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<DataBaseLinkModel> page = new Page<DataBaseLinkModel>();
@RequestParam(value = "size") int size,
@RequestParam Long ipSeq) throws SQLException {
Page<AgencyModel> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(dataBaseLinkService.queryForDataBasePage(page));
return ResponseHelper.buildResponse(dataBaseLinkService.queryForAgencyPage(page,ipSeq));
}
/**
* 列表全部数据查询
*
* @return List<DataBaseLinkModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
......@@ -67,4 +116,19 @@ public class DataBaseLinkResource {
public ResponseModel<List<DataBaseLinkModel>> selectForList() {
return ResponseHelper.buildResponse(dataBaseLinkService.queryForDataBaseList());
}
/**
* 机构列表查询
*
* @return Page<AgencyModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/agency/list")
@ApiOperation(httpMethod = "GET", value = "机构列表查询", notes = "列表查询")
public ResponseModel<List<AgencyModel>> queryForList(HttpServletRequest request) throws SQLException, IOException {
return ResponseHelper.buildResponse(dataBaseLinkService.queryForAgencyList(request));
}
}
package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseNameListService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
@RestController
@Api(tags = "数据库名称表")
@RequestMapping(value = "/database_name")
public class DataBaseNameListResource {
@Autowired
private DataBaseNameListService dataBaseNameListService;
/**
* 数据库初始化
*
* @param ipSeq 数据库连接seq
* @return List<DataBaseLinkModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/refresh/{ipSeq}")
@ApiOperation(httpMethod = "POST", value = "数据库初始化", notes = "数据库初始化")
public ResponseModel<List<String>> refresh(@PathVariable Long ipSeq) throws Exception {
return ResponseHelper.buildResponse(
dataBaseNameListService.refreshDataBase(ipSeq));
}
/**
* 分页查询
*
* @param current 当前分页
* @param size 分页大小
* @return Page<DataBaseNameListModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<DataBaseNameListModel>> queryForPage(
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam Long ipSeq) {
Page<DataBaseNameListModel> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(dataBaseNameListService.queryForDataBasePage(page,ipSeq));
}
}
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseLinkService;
import com.yeejoin.amos.api.tool.face.service.RelationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.xml.crypto.Data;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
@CrossOrigin
......@@ -31,29 +26,35 @@ public class RelationResource {
/**
* 根据机构ID和数据库sequenceNbr批量删除数据库
*
* @param agencyCodeId 机构ID
* @param sequenceNbrs 多个主键
* @return String
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@DeleteMapping(value = "/relation/{agencyCodeId}/{sequenceNbrs}")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/relation/{agencyCode}/{sequenceNbrs}")
@ApiOperation(httpMethod = "DELETE", value = "机构删除", notes = "机构删除")
public ResponseModel<String> deleteDataBase(
@PathVariable Long agencyCodeId,
@PathVariable String agencyCode,
@PathVariable String sequenceNbrs) throws Exception {
relationService.deleteAgency(agencyCodeId,sequenceNbrs);
relationService.deleteAgency(agencyCode, sequenceNbrs);
return ResponseHelper.buildResponse("The data has been deleted !");
}
/**
* 导出SQL脚本
*
* @return String
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/output/{agencyCodeId}/{sequenceNbrs}")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/output/{agencyCode}/{sequenceNbrs}")
@ApiOperation(httpMethod = "GET", value = "导出", notes = "导出")
public ResponseModel<String> genereteSQL(@PathVariable Long agencyCodeId,@PathVariable String sequenceNbrs) throws Exception {
relationService.outputAgency(agencyCodeId, sequenceNbrs);
public ResponseModel<String> generateSQL(
@PathVariable String agencyCode,
@PathVariable String sequenceNbrs,
HttpServletResponse response) throws Exception {
relationService.outputAgency(agencyCode, sequenceNbrs,response);
return ResponseHelper.buildResponse("yes");
}
}
}
\ No newline at end of file
......@@ -133,9 +133,9 @@ public class TemplateResource {
* @return TemplateModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@CrossOrigin
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr导入content", notes = "根据sequenceNbr导入content")
@PostMapping(value = "/import")
@CrossOrigin(methods = RequestMethod.POST)
public ResponseModel<TemplateModel> importTpl(@RequestParam("file") MultipartFile multipartFile) throws IOException {
return ResponseHelper.buildResponse(templateService.createWithModel(templateService.fileToTpl(multipartFile)));
}
......
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.service.TransferDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.sql.SQLException;
@CrossOrigin
@RestController
@Api(tags = "数据迁移")
@RequestMapping(value = "/transfer_data")
public class TransferDataResource {
@Autowired
private TransferDataService transferDataService;
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PutMapping(value = "/relation/")
@ApiOperation(httpMethod = "Put", value = "数据迁移", notes = "数据迁移")
public ResponseModel<String> transferData( ) throws SQLException, ClassNotFoundException {
transferDataService.transferData();
return ResponseHelper.buildResponse("The data has been transferred !");
}
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.api.tool.face.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.typroject.tyboot.core.rdbms.model.BaseModel;
......@@ -10,9 +11,8 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
* @author r
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "DataBaseLinkModel", description = "")
public class AgencyTreeModel extends BaseModel {
@ApiModel(value = "AgencyModel", description = "")
public class AgencyModel {
@ApiModelProperty(value = "机构名称")
private String agencyName;
......
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.ApiModelProperty;
import lombok.Data;
......@@ -16,9 +17,6 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
@ApiModel(value = "DataBaseLinkModel", description = "")
public class DataBaseLinkModel extends BaseModel {
@ApiModelProperty(value = "数据名称")
private String dataName = "";
@ApiModelProperty(value = "主机IP")
private String ip;
......@@ -34,12 +32,13 @@ public class DataBaseLinkModel extends BaseModel {
@ApiModelProperty(value = "密码")
private String passWord;
public DataBaseLinkModel(String dataName, String ip, String port, String dbName, String userName, String passWord) {
this.dataName = dataName;
public DataBaseLinkModel(String ip, String port, String dbName, String userName, String passWord) {
this.ip = ip;
this.port = port;
this.dbName = dbName;
this.userName = userName;
this.passWord = passWord;
}
}
package com.yeejoin.amos.api.tool.face.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.typroject.tyboot.core.rdbms.model.BaseModel;
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "DataBaseNameListModel", description = "")
public class DataBaseNameListModel extends BaseModel {
@ApiModelProperty(value = "数据库名")
private String dbName;
@ApiModelProperty(value = "连接id")
private Long parentId;
}
......@@ -4,11 +4,11 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import sun.reflect.generics.tree.Tree;
// import sun.reflect.generics.tree.Tree;
import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;
//import java.util.TreeMap;
@Data
@NoArgsConstructor
......
package com.yeejoin.amos.api.tool.face.orm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.AgencyTree;
/**
* Mapper 接口
*
* @author r
*/
public interface AgencyTreeMapper extends BaseMapper<AgencyTree> {
}
package com.yeejoin.amos.api.tool.face.orm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface DataBaseNameListMapper extends BaseMapper<DataBaseNameList> {
}
......@@ -20,39 +20,33 @@ import lombok.experimental.Accessors;
public class DataBaseLink extends BaseEntity {
/**
*数据名称
*/
@TableField("dataName")
private String dataName;
/**
*主机IP
*/
@TableField("ip")
@TableField("IP")
private String ip;
/**
*端口
*/
@TableField("port")
@TableField("PORT")
private String port;
/**
*数据库名
*/
@TableField("dbName")
@TableField("DATABASE_NAME")
private String dbName;
/**
*用户名
*/
@TableField("userName")
@TableField("USER_NAME")
private String userName;
/**
*密码
*/
@TableField("passWord")
@TableField("PASSWORD")
private String passWord;
}
......@@ -2,35 +2,26 @@ package com.yeejoin.amos.api.tool.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author r
*/
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("privilege_agency")
public class AgencyTree extends BaseEntity {
@TableName("database_name_list")
public class DataBaseNameList extends BaseEntity {
/**
*机构名称
* 数据库名
*/
@TableField("AGENCY_NAME")
private String agencyName;
@TableField("DATABASE_NAME")
private String dbName;
/**
*机构编码
* 连接id
*/
@TableField("AGENCY_CODE")
private String agencyCode;
/**
*机构描述
*/
@TableField("AGENCY_DESC")
private String agencyDesc;
@TableField("PARENT_ID")
private Long parentId;
}
package com.yeejoin.amos.api.tool.face.service;
import com.yeejoin.amos.api.tool.face.model.AgencyTreeModel;
import com.yeejoin.amos.api.tool.face.orm.dao.AgencyTreeMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.AgencyTree;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.List;
/**
* 服务实现类
*
* @author r
*/
@Service
public class AgencyTreeService extends BaseService<AgencyTreeModel, AgencyTree, AgencyTreeMapper> {
/**
* 列表查询
*/
public List<AgencyTreeModel> queryForAgencyTreeList() {
return this.queryForList("" , false);
}
public String queryForAgencyCodeById(Long id){
return queryBySeq(id).getAgencyCode();
}
}
......@@ -2,19 +2,26 @@ package com.yeejoin.amos.api.tool.face.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.DataBaseLinkModel;
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.utils.AESUtils;
import org.apache.commons.beanutils.BeanUtils;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 服务实现类
......@@ -22,17 +29,85 @@ import java.util.List;
* @author r
*/
@Service
public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBaseLink, DataBaseLinkMapper> {
@Autowired
private DataBaseLinkMapper dataBaseLinkMapper;
DataBaseLinkMapper dataBaseLinkMapper;
/**
* 新增
*/
public DataBaseLinkModel save(DataBaseLinkModel dataBaseLinkModel) throws Exception {
DataBaseLinkModel model = this.encryptPwd(dataBaseLinkModel);
if (this.testConnection(model)) {
return this.createWithModel(model);
} else {
return new DataBaseLinkModel();
}
}
/**
* 编辑
*/
public DataBaseLinkModel update(DataBaseLinkModel dataBaseLinkModel) throws Exception {
DataBaseLinkModel model = this.encryptPwd(dataBaseLinkModel);
if (this.testConnection(model)) {
return this.updateWithModel(model);
} else {
return new DataBaseLinkModel();
}
}
/**
* 机构分页查询
*/
public Page<AgencyModel> queryForAgencyPage(Page<AgencyModel> page, Long ipSeq) throws SQLException {
Connection connection = this.connectNewDatabase(this.queryBySeq(ipSeq));
List<Map<String, Object>> maps =
DataBaseUtils.getMaps("SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;", connection);
connection.close();
List<AgencyModel> records = new ArrayList<>();
for (Map<String, Object> map : maps) {
AgencyModel model = new AgencyModel();
model.setAgencyName(map.get("AGENCY_NAME").toString());
model.setAgencyCode(map.get("AGENCY_CODE").toString());
if ((map.get("AGENCY_DESC") != null))
model.setAgencyDesc(map.get("AGENCY_DESC").toString());
records.add(model);
}
Page<AgencyModel> entiryPage = new Page(page.getCurrent(), page.getSize());
if (!ValidationUtil.isEmpty(records)) {
page.setTotal(records.size());
page.setPages(entiryPage.getPages());
page.setCurrent(entiryPage.getCurrent());
page.setSize(entiryPage.getSize());
page.setRecords(records);
}
return page;
}
/**
* 分页查询
* 机构列表查询
*/
public Page<DataBaseLinkModel> queryForDataBasePage(Page<DataBaseLinkModel> page) {
return this.queryForPage(page, null, false);
public List<AgencyModel> queryForAgencyList(HttpServletRequest request) throws SQLException, IOException {
// URL url = new URL(request.getRequestURL().toString());
DataBaseLink dataBaseLink = getOne(new QueryWrapper<DataBaseLink>().eq("IP",DataBaseUtils.getIp()));
DataBaseLinkModel dataBaseLinkModel = new DataBaseLinkModel();
Bean.toModel(dataBaseLink,dataBaseLinkModel);
Connection connection = this.connectNewDatabase(dataBaseLinkModel);
List<Map<String, Object>> maps =
DataBaseUtils.getMaps("SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;", connection);
connection.close();
List<AgencyModel> records = new ArrayList<>();
for (Map<String, Object> map : maps) {
AgencyModel model = new AgencyModel();
model.setAgencyName(map.get("AGENCY_NAME").toString());
model.setAgencyCode(map.get("AGENCY_CODE").toString());
if ((map.get("AGENCY_DESC") != null))
model.setAgencyDesc(map.get("AGENCY_DESC").toString());
records.add(model);
}
return records;
}
/**
......@@ -57,51 +132,45 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
}
/**
* 初始化数据库连接表
* 连接数据库
*/
public List<DataBaseLinkModel> refreshDataBase(DataBaseLinkModel dataBaseLinkModel) throws Exception {
//清空表单
this.remove(new QueryWrapper<>());
//连接数据库
Connection connection = this.connectNewDatabase(dataBaseLinkModel);
if (connection == null)
return null;
List<DataBaseLinkModel> dataBaseLinkModels = new ArrayList<>();
Collection<DataBaseLink> dataBaseLinks = new ArrayList<>();
for (String name : this.getDataBaseName(connection)) {
if (name == null)
break;
DataBaseLinkModel model = new DataBaseLinkModel();
BeanUtils.copyProperties(model, dataBaseLinkModel);
model.setDbName(name);
model.setDataName(name);
dataBaseLinkModels.add(model);
dataBaseLinks.add(this.prepareEntity(model));
public Connection connectNewDatabase(DataBaseLinkModel model) {
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 连接新增的数据库
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);
}
this.saveBatch(dataBaseLinks);
connection.close();
return dataBaseLinkModels;
return null;
}
/**
* 连接数据库
* 测试连接数据库
*/
public Connection connectNewDatabase(DataBaseLinkModel model) throws Exception {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 连接新增的数据库
String dbUrl = "jdbc:mysql://" + model.getIp() + ":" + model.getPort() + "/" + model.getDbName();
// 解密pwd,并连接
return DriverManager.getConnection(dbUrl, model.getUserName(),AESUtils.decrypt(model.getPassWord()));
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;
model.setPassWord(AESUtils.encrypt(model.getPassWord()));
return model;
}
}
package com.yeejoin.amos.api.tool.face.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.DataBaseNameListModel;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseNameListMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@Service
public class DataBaseNameListService extends BaseService<DataBaseNameListModel, DataBaseNameList, DataBaseNameListMapper> {
@Autowired
private DataBaseLinkService dataBaseLinkService;
/**
* 分页查询
*/
public Page<DataBaseNameListModel> queryForDataBasePage(Page<DataBaseNameListModel> page,Long parentId) {
return this.queryForPage(page, null, false, parentId);
}
/**
* 初始化数据库名表
*/
public List<String> refreshDataBase(Long ipSeq) throws Exception {
DataBaseLinkModel dataBaseLinkModel = dataBaseLinkService.queryBySeq(ipSeq);
//清空表单
this.remove(new QueryWrapper<DataBaseNameList>().eq("PARENT_ID", ipSeq));
//连接数据库
Connection connection = dataBaseLinkService.connectNewDatabase(dataBaseLinkModel);
if (connection == null)
return null;
List<String> strings = new ArrayList<>();
Collection<DataBaseNameList> dataBaseNameLists = new ArrayList<>();
for (String name : dataBaseLinkService.getDataBaseName(connection)) {
if (name == null)
break;
DataBaseNameListModel model = new DataBaseNameListModel(name, ipSeq);
strings.add(name);
dataBaseNameLists.add(this.prepareEntity(model));
}
this.saveBatch(dataBaseNameLists);
connection.close();
return strings;
}
}
......@@ -4,34 +4,62 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.PictureModel;
import com.yeejoin.amos.api.tool.face.model.TemplateCategoryTreeModel;
import com.yeejoin.amos.api.tool.face.model.TemplateModel;
import com.yeejoin.amos.api.tool.face.model.TemplateVoModel;
import com.yeejoin.amos.api.tool.face.orm.dao.TemplateMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.Template;
import com.yeejoin.amos.api.tool.utils.ConvertUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.utils.StringUtil;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@Service
public class TemplateService extends BaseService<TemplateModel, Template, TemplateMapper> {
@Autowired
private TemplateCategoryService templateCategoryService;
/**
* 分页查询
*/
public Page<TemplateModel> queryForTplPage(Page<TemplateModel> page, Long categorySeq, String displayName) {
List<TemplateCategoryTreeModel> modelList = templateCategoryService.getTree();
List<TemplateModel> records = new ArrayList<>();
for (TemplateCategoryTreeModel visualDesigner : modelList) {
if (Objects.equals(categorySeq, visualDesigner.getSequenceNbr())) {
for (TemplateCategoryTreeModel category : visualDesigner.getChildren()) {
records.addAll(this.queryForTplListByCategorySeq(category.getSequenceNbr()));
}
return this.queryForPages(records, page);
}
}
return this.queryForPage(page, null, false, categorySeq, displayName);
}
public Page<TemplateModel> queryForPages(List<TemplateModel> records, Page<TemplateModel> page) {
Page<TemplateModel> entiryPage = new Page(page.getCurrent(), page.getSize());
if (!ValidationUtil.isEmpty(records)) {
page.setTotal(records.size());
page.setPages(entiryPage.getPages());
page.setCurrent(entiryPage.getCurrent());
page.setSize(entiryPage.getSize());
page.setRecords(records);
}
return page;
}
/**
* 列表查询
*/
......@@ -42,9 +70,9 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 根据模板分类ID获取模板sequenceNb's
*/
public List<String> selectSeqsByCategorySeq(Long categorySeq){
public List<String> selectSeqsByCategorySeq(Long categorySeq) {
List<String> strings = new ArrayList<>();
for (TemplateModel model : this.queryForTplListByCategorySeq(categorySeq)){
for (TemplateModel model : this.queryForTplListByCategorySeq(categorySeq)) {
strings.add(Long.toString(model.getSequenceNbr()));
}
return strings;
......@@ -61,7 +89,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 根据sequenceNbr获取模板并转化为VO
*/
public TemplateVoModel queryForTplVo(Long sequenceNbr){
public TemplateVoModel queryForTplVo(Long sequenceNbr) {
TemplateModel templateModel = this.queryBySeq(sequenceNbr);
TemplateVoModel templateVoModel = this.convertVoModel(templateModel);
if (templateModel.getContent() != null) {
......@@ -114,10 +142,10 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* model转化VO
*/
public TemplateVoModel convertVoModel(TemplateModel templateModel){
public TemplateVoModel convertVoModel(TemplateModel templateModel) {
TemplateVoModel tplVoModel = new TemplateVoModel();
BeanUtils.copyProperties(templateModel, tplVoModel);
if(templateModel.getSketch() != null)
if (templateModel.getSketch() != null)
tplVoModel.setSketches(this.urlToPicModel(templateModel.getSketch()));
if (templateModel.getThumb() != null)
tplVoModel.setThumbs(this.urlToPicModel(templateModel.getThumb()));
......@@ -128,8 +156,8 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* 生成随机UID
*/
public String getUid(){
UUID uuid= UUID.randomUUID();
public String getUid() {
UUID uuid = UUID.randomUUID();
String str = uuid.toString();
return str.replace("-", "");
}
......@@ -137,7 +165,7 @@ public class TemplateService extends BaseService<TemplateModel, Template, Templa
/**
* url转化图片
*/
public List<PictureModel> urlToPicModel(String url){
public List<PictureModel> urlToPicModel(String url) {
List<PictureModel> pictureModels = new ArrayList<>();
PictureModel pictureModel = new PictureModel("", this.getUid(), url, "done");
pictureModels.add(pictureModel);
......
package com.yeejoin.amos.api.tool.face.service;
import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class TransferDataService {
private static String TABLE_DES = "mcb_warning_base_source_attribution";
private static String TABLE_ORI = "qms_explorer";
private static String DBNAME_DES = "amos_mcb";
private static String DBNAME_ORI = "amos_studio";
public Connection connectDataBase(String dataBaseName) throws ClassNotFoundException, SQLException {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 生成url
String dbUrl = "jdbc:mysql://172.16.3.18:3306/" + dataBaseName;
// 连接数据库
return DriverManager.getConnection(dbUrl, "root", "Yeejoin@2020");
}
public void transferData() throws SQLException, ClassNotFoundException {
Connection connection = this.connectDataBase(DBNAME_ORI);
List<Map<String,Object>> maps = DataBaseUtils.getMaps("SELECT * FROM " + TABLE_ORI + " ;" , connection);
connection.close();
connection = this.connectDataBase(DBNAME_DES);
List<TableColumn> columns = DataBaseUtils.getTableColumn(TABLE_DES,connection);
List<Map<String,Object>> dataList = this.convertDataMap(maps, columns);
System.out.println(DataBaseUtils.getInsertSQL(dataList,columns,TABLE_DES));
}
public List<Map<String, Object>> convertDataMap(List<Map<String, Object>> maps, List<TableColumn> columns) {
List<Map<String, Object>> dataList = new ArrayList<>();
for (Map<String, Object> map : maps) {
Map<String, Object> data = new HashMap<>();
for (TableColumn column : columns) {
data.put(column.getColumnName(), null);
}
data.replace("SEQUENCE_NBR", map.get("SEQUENCE_NBR"));
data.replace("NAME", map.get("RESOURCE_NAME"));
data.replace("PARENT_ID", map.get("PARENT_ID"));
data.replace("CODE", map.get("AGENCY_CODE"));
data.replace("REC_USER_ID", map.get("REC_USER_ID"));
data.replace("REC_DATE", map.get("REC_DATE"));
dataList.add(data);
}
return dataList;
}
}
package com.yeejoin.amos.api.tool.utils;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.*;
import java.util.*;
public class DataBaseUtils {
/**
* 数据库备份路径
*/
public static final String BACKUP_PATH = "/db/";
/**
* 数据库备份文本前缀
*/
public static String ONESQL_PREFIX = "";
public static String SUFFIX = "sql";
public static String BR = "\r\n";
public static String SLASH = "/";
public static String BRANCH = ";";
private static String SPLIT = "`";
private static String SPACE = " ";
private static String INSERT_INTO = " INSERT INTO ";
private static String CREATE_INTO = " CREATE TABLE ";
private static String VALUES = "VALUES";
private static String LEFTBRACE = "(";
private static String RIGHTBRACE = ")";
private static String QUOTES = "'";
private static String COMMA = ",";
private static String DISABLEFOREIGN = "SET FOREIGN_KEY_CHECKS = 0;\r\n";
private static String ABLEFOREIGN = "SET FOREIGN_KEY_CHECKS = 1;\r\n";
public static String DELIMITER = "###################################";
/**
* 获取maps
*/
public static List<Map<String, Object>> getMaps(String sql, Connection connection) throws SQLException {
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(sql);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();
while (rs.next()) {
Map<String, Object> rowData = new HashMap<String, Object>();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
rs = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
/**
* 获取表单列名
*/
public static List<TableColumn> getTableColumn(String tableName, Connection connection) throws SQLException {
String columnSql = "" +
"\t\t SELECT\n" +
"\t\t table_name as table_name,\n" +
"\t\t\tcolumn_name as columnName,\n" +
"\t\t\t( CASE WHEN ( is_nullable = 'no' && column_key != 'PRI' ) THEN '1' ELSE NULL END ) AS isRequired,\n" +
"\t\t\t( CASE WHEN column_key = 'PRI' THEN '1' ELSE '0' END ) AS isPk,\n" +
"\t\t\tordinal_position AS sort,\n" +
"\t\t\tcolumn_comment as columnComment,\n" +
"\t\t\t( CASE WHEN extra = 'auto_increment' THEN '1' ELSE '0' END ) AS isIncrement,\n" +
"\t\t\tcolumn_type as columnType \n" +
"\t\tFROM\n" +
"\t\t\tinformation_schema.COLUMNS \n" +
"\t\tWHERE\n" +
"\t\t\ttable_schema = database()\n" +
"\t\t\tAND table_name = \"" + tableName + "\"\n" +
"\t\tORDER BY\n" +
"\t\t\tordinal_position\t";
List<Map<String, Object>> columnList = DataBaseUtils.getMaps(columnSql, connection);
List<TableColumn> columns = new ArrayList<>();
for (Map<String, Object> map : columnList) {
TableColumn column = JSON.parseObject(JSON.toJSONString(map), TableColumn.class);
if(!column.getColumnName().equals("content"))
columns.add(column);
}
return columns;
}
/**
* 获取insert语句
*/
public static StringBuffer getInsertSQL(List<Map<String, Object>> dataList, List<TableColumn> columns, String tableName) {
StringBuffer sql = new StringBuffer();
for (Map<String, Object> map : dataList) {
sql.append(INSERT_INTO);
sql.append(SPACE).append(tableName).append(SPACE);
sql.append(LEFTBRACE);
for (TableColumn column : columns) {
sql.append(SPLIT);
sql.append(column.getColumnName());
sql.append(SPLIT);
sql.append(COMMA);
}
sql.deleteCharAt(sql.length() - 1);
sql.append(RIGHTBRACE);
sql.append(VALUES);
sql.append(LEFTBRACE);
for (TableColumn column : columns) {
if (column.getColumnType().contains("bigint") ||
column.getColumnType().contains("int") ||
column.getColumnType().contains("bit(1)")) {
if (!ObjectUtils.isEmpty(map.get(column.getColumnName()))) {
sql.append(map.get(column.getColumnName()));
} else {
sql.append("0");
}
} else {
if (!ObjectUtils.isEmpty(map.get(column.getColumnName()))) {
sql.append("'").append(map.get(column.getColumnName())).append("'");
} else {
sql.append("null");
}
}
sql.append(COMMA);
}
sql.deleteCharAt(sql.length() - 1);
sql.append(RIGHTBRACE);
sql.append(BRANCH).append(BR);
}
return sql;
}
public static String getIp() throws IOException {
// InetAddress inetAddress = null;
// boolean isFind = false; // 返回标识
// Enumeration<NetworkInterface> networkInterfaceLists = null;
// try {
// // 获取网络接口
// networkInterfaceLists = (Enumeration<NetworkInterface>) NetworkInterface.getNetworkInterfaces();
// } catch (SocketException e) {
// e.printStackTrace();
// }
// while (networkInterfaceLists.hasMoreElements()) {
// NetworkInterface networkInterface = (NetworkInterface) networkInterfaceLists.nextElement();
// Enumeration<InetAddress> ips = networkInterface.getInetAddresses();
// // 遍历所有ip,获取本地地址中不是回环地址的ipv4地址
// while (ips.hasMoreElements()) {
// inetAddress = (InetAddress) ips.nextElement();
// if (inetAddress instanceof Inet4Address && inetAddress.isSiteLocalAddress()
// && !inetAddress.isLoopbackAddress()) {
// isFind = true;
// break;
// }
// }
// if (isFind) {
// break;
// }
// }
// return inetAddress == null ? "" : inetAddress.getHostAddress();
//获取jar包同级目录
String filePath = System.getProperty("user.dir") + "/config/application-dev.properties";
InputStream in = new BufferedInputStream(Files.newInputStream(Paths.get(filePath)));
Properties properties = new Properties();
properties.load(in);
//获取配置文件数据
return properties.getProperty("eureka.instance.hostname");
}
}
spring.application.name=AMOS-ATL
server.servlet.context-path=/atl
<<<<<<< HEAD
#server.servlet.context-path=/jcs
server.port=30002
#server.port=20000
=======
server.port=30201
>>>>>>> 56d4a0ab360f8ce8f2fa01e2ecf68e745d42bc24
#server.port=30201
server.port=20000
spring.profiles.active=dev
management.health.elasticsearch.enabled=false
......
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