代码格式化

This commit is contained in:
守護
2024-05-09 22:18:02 +08:00
parent daea60f20f
commit 3473986b86
5 changed files with 311 additions and 309 deletions

View File

@@ -119,7 +119,7 @@ public class AssignmentController {
@ApiOperation(value = "导出") @ApiOperation(value = "导出")
@PostMapping(value = "/export") @PostMapping(value = "/export")
public void exportAssignments(@RequestParam(value = "ids") List<Long> ids, HttpServletResponse response) { public void exportAssignments(@RequestParam(value = "ids") List<Long> ids, HttpServletResponse response) {
assignmentService.exportAssignments(ids,response); assignmentService.exportAssignments(ids, response);
} }
} }

View File

@@ -63,331 +63,333 @@ import com.gitee.dbswitch.data.util.JsonUtils;
@Service @Service
public class AssignmentService { public class AssignmentService {
@Resource @Resource
private AssignmentTaskDAO assignmentTaskDAO; private AssignmentTaskDAO assignmentTaskDAO;
@Resource @Resource
private AssignmentConfigDAO assignmentConfigDAO; private AssignmentConfigDAO assignmentConfigDAO;
@Resource @Resource
private ScheduleService scheduleService; private ScheduleService scheduleService;
@Resource @Resource
private DatabaseConnectionDAO databaseConnectionDAO; private DatabaseConnectionDAO databaseConnectionDAO;
@Resource @Resource
private DriverLoadService driverLoadService; private DriverLoadService driverLoadService;
@Resource @Resource
private AssignmentJobMapper assignmentJobMapper; private AssignmentJobMapper assignmentJobMapper;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public AssignmentInfoResponse createAssignment(AssigmentCreateRequest request) { public AssignmentInfoResponse createAssignment(AssigmentCreateRequest request) {
AssignmentTaskEntity assignment = request.toAssignmentTask(); AssignmentTaskEntity assignment = request.toAssignmentTask();
assignmentTaskDAO.insert(assignment); assignmentTaskDAO.insert(assignment);
AssignmentConfigEntity assignmentConfigEntity = request.toAssignmentConfig(assignment.getId()); AssignmentConfigEntity assignmentConfigEntity = request.toAssignmentConfig(assignment.getId());
assignmentConfigDAO.insert(assignmentConfigEntity); assignmentConfigDAO.insert(assignmentConfigEntity);
Long targetConnectionId = assignmentConfigEntity.getTargetConnectionId(); Long targetConnectionId = assignmentConfigEntity.getTargetConnectionId();
DatabaseConnectionEntity targetEntity = databaseConnectionDAO.getById(targetConnectionId); DatabaseConnectionEntity targetEntity = databaseConnectionDAO.getById(targetConnectionId);
if (ProductTypeEnum.SQLITE3 == targetEntity.getType()) { if (ProductTypeEnum.SQLITE3 == targetEntity.getType()) {
if (ProductTypeEnum.isUnsupportedTargetSqlite(targetEntity.getUrl())) { if (ProductTypeEnum.isUnsupportedTargetSqlite(targetEntity.getUrl())) {
throw new DbswitchException(ResultCode.ERROR_INVALID_ASSIGNMENT_CONFIG, throw new DbswitchException(ResultCode.ERROR_INVALID_ASSIGNMENT_CONFIG,
"不支持目的端数据源为远程服务器上的SQLite或内存方式下的SQLite"); "不支持目的端数据源为远程服务器上的SQLite或内存方式下的SQLite");
} }
} }
Long sourceConnectionId = assignmentConfigEntity.getSourceConnectionId(); Long sourceConnectionId = assignmentConfigEntity.getSourceConnectionId();
DatabaseConnectionEntity sourceEntity = databaseConnectionDAO.getById(sourceConnectionId); DatabaseConnectionEntity sourceEntity = databaseConnectionDAO.getById(sourceConnectionId);
if (ProductTypeEnum.ELASTICSEARCH == sourceEntity.getType()) { if (ProductTypeEnum.ELASTICSEARCH == sourceEntity.getType()) {
throw new DbswitchException(ResultCode.ERROR_INVALID_ASSIGNMENT_CONFIG, throw new DbswitchException(ResultCode.ERROR_INVALID_ASSIGNMENT_CONFIG,
"不支持源端数据源为ElasticSearch类型"); "不支持源端数据源为ElasticSearch类型");
} }
return ConverterFactory.getConverter(AssignmentInfoConverter.class) return ConverterFactory.getConverter(AssignmentInfoConverter.class)
.convert(assignmentTaskDAO.getById(assignment.getId())); .convert(assignmentTaskDAO.getById(assignment.getId()));
} }
public void deleteAssignment(Long id) { public void deleteAssignment(Long id) {
AssignmentTaskEntity taskEntity = assignmentTaskDAO.getById(id); AssignmentTaskEntity taskEntity = assignmentTaskDAO.getById(id);
if (null != taskEntity && null != taskEntity.getPublished() && taskEntity.getPublished()) { if (null != taskEntity && null != taskEntity.getPublished() && taskEntity.getPublished()) {
throw new DbswitchException(ResultCode.ERROR_RESOURCE_HAS_DEPLOY, throw new DbswitchException(ResultCode.ERROR_RESOURCE_HAS_DEPLOY,
"已经发布的任务需先下线后方可执行删除操作"); "已经发布的任务需先下线后方可执行删除操作");
} }
assignmentTaskDAO.deleteById(id); assignmentTaskDAO.deleteById(id);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateAssignment(AssigmentUpdateRequest request) { public void updateAssignment(AssigmentUpdateRequest request) {
AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(request.getId()); AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(request.getId());
if (Objects.isNull(assignmentTaskEntity)) { if (Objects.isNull(assignmentTaskEntity)) {
throw new DbswitchException(ResultCode.ERROR_RESOURCE_NOT_EXISTS, "ID=" + request.getId()); throw new DbswitchException(ResultCode.ERROR_RESOURCE_NOT_EXISTS, "ID=" + request.getId());
} else if (assignmentTaskEntity.getPublished()) { } else if (assignmentTaskEntity.getPublished()) {
throw new DbswitchException(ResultCode.ERROR_RESOURCE_HAS_DEPLOY, "ID=" + request.getId()); throw new DbswitchException(ResultCode.ERROR_RESOURCE_HAS_DEPLOY, "ID=" + request.getId());
} }
AssignmentTaskEntity newAssignmentTaskEntity = request.toAssignmentTask(); AssignmentTaskEntity newAssignmentTaskEntity = request.toAssignmentTask();
assignmentTaskDAO.updateById(newAssignmentTaskEntity); assignmentTaskDAO.updateById(newAssignmentTaskEntity);
AssignmentConfigEntity assignmentConfigEntity = request AssignmentConfigEntity assignmentConfigEntity = request
.toAssignmentConfig(assignmentTaskEntity.getId()); .toAssignmentConfig(assignmentTaskEntity.getId());
assignmentConfigDAO.deleteByAssignmentTaskId(assignmentTaskEntity.getId()); assignmentConfigDAO.deleteByAssignmentTaskId(assignmentTaskEntity.getId());
assignmentConfigDAO.insert(assignmentConfigEntity); assignmentConfigDAO.insert(assignmentConfigEntity);
Long targetConnectionId = assignmentConfigEntity.getTargetConnectionId(); Long targetConnectionId = assignmentConfigEntity.getTargetConnectionId();
DatabaseConnectionEntity entity = databaseConnectionDAO.getById(targetConnectionId); DatabaseConnectionEntity entity = databaseConnectionDAO.getById(targetConnectionId);
if (ProductTypeEnum.SQLITE3 == entity.getType()) { if (ProductTypeEnum.SQLITE3 == entity.getType()) {
if (ProductTypeEnum.isUnsupportedTargetSqlite(entity.getUrl())) { if (ProductTypeEnum.isUnsupportedTargetSqlite(entity.getUrl())) {
throw new DbswitchException(ResultCode.ERROR_INVALID_ASSIGNMENT_CONFIG, throw new DbswitchException(ResultCode.ERROR_INVALID_ASSIGNMENT_CONFIG,
"不支持目的端数据源为远程服务器上的SQLite或内存方式下的SQLite"); "不支持目的端数据源为远程服务器上的SQLite或内存方式下的SQLite");
} }
} }
} }
public PageResult<AssignmentInfoResponse> listAll(AssignmentSearchRequest request) { public PageResult<AssignmentInfoResponse> listAll(AssignmentSearchRequest request) {
Supplier<List<AssignmentInfoResponse>> method = () -> { Supplier<List<AssignmentInfoResponse>> method = () -> {
List<AssignmentInfoResponse> assignmentInfoResponseList = ConverterFactory.getConverter(AssignmentInfoConverter.class) List<AssignmentInfoResponse> assignmentInfoResponseList = ConverterFactory.getConverter(
.convert(assignmentTaskDAO.listAll(request.getSearchText())); AssignmentInfoConverter.class)
assignmentInfoResponseList.forEach((e) -> { .convert(assignmentTaskDAO.listAll(request.getSearchText()));
AssignmentConfigEntity assignmentConfigEntity = this.assignmentConfigDAO.getByAssignmentTaskId(e.getId()); assignmentInfoResponseList.forEach((e) -> {
AssignmentConfigEntity assignmentConfigEntity = this.assignmentConfigDAO.getByAssignmentTaskId(e.getId());
Long sourceConnectionId = assignmentConfigEntity.getSourceConnectionId(); Long sourceConnectionId = assignmentConfigEntity.getSourceConnectionId();
DatabaseConnectionEntity databaseConnectionEntity = this.databaseConnectionDAO.getById(sourceConnectionId); DatabaseConnectionEntity databaseConnectionEntity = this.databaseConnectionDAO.getById(sourceConnectionId);
String sourceSchema = assignmentConfigEntity.getSourceSchema(); String sourceSchema = assignmentConfigEntity.getSourceSchema();
e.setSourceSchema(sourceSchema); e.setSourceSchema(sourceSchema);
String sourceType = databaseConnectionEntity.getType().getName(); String sourceType = databaseConnectionEntity.getType().getName();
e.setSourceType(sourceType); e.setSourceType(sourceType);
Long targetConnectionId = assignmentConfigEntity.getTargetConnectionId(); Long targetConnectionId = assignmentConfigEntity.getTargetConnectionId();
DatabaseConnectionEntity databaseConnectionEntity1 = this.databaseConnectionDAO.getById(targetConnectionId); DatabaseConnectionEntity databaseConnectionEntity1 = this.databaseConnectionDAO.getById(targetConnectionId);
String targetSchema = assignmentConfigEntity.getTargetSchema(); String targetSchema = assignmentConfigEntity.getTargetSchema();
e.setTargetSchema(targetSchema); e.setTargetSchema(targetSchema);
String targetType = databaseConnectionEntity1.getType().getName(); String targetType = databaseConnectionEntity1.getType().getName();
e.setTargetType(targetType); e.setTargetType(targetType);
AssignmentJobEntity assignmentJobEntity = this.assignmentJobMapper.selectOne( AssignmentJobEntity assignmentJobEntity = this.assignmentJobMapper.selectOne(
new LambdaQueryWrapper<AssignmentJobEntity>() new LambdaQueryWrapper<AssignmentJobEntity>()
.eq(AssignmentJobEntity::getAssignmentId, e.getId()).orderByDesc(AssignmentJobEntity::getCreateTime) .eq(AssignmentJobEntity::getAssignmentId, e.getId()).orderByDesc(AssignmentJobEntity::getCreateTime)
.last(" limit 1 ")); .last(" limit 1 "));
Integer status = (assignmentJobEntity == null || assignmentJobEntity.getStatus() == null) ? Integer status = (assignmentJobEntity == null || assignmentJobEntity.getStatus() == null) ?
JobStatusEnum.INIT.getValue() : JobStatusEnum.INIT.getValue() :
assignmentJobEntity.getStatus(); assignmentJobEntity.getStatus();
e.setRunStatus(JobStatusEnum.of(status).getName()); e.setRunStatus(JobStatusEnum.of(status).getName());
}); });
return assignmentInfoResponseList; return assignmentInfoResponseList;
}; };
return PageUtils.getPage(method, request.getPage(), request.getSize()); return PageUtils.getPage(method, request.getPage(), request.getSize());
} }
public Result<AssignmentDetailResponse> detailAssignment(Long id) { public Result<AssignmentDetailResponse> detailAssignment(Long id) {
AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id); AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id);
if (Objects.isNull(assignmentTaskEntity)) { if (Objects.isNull(assignmentTaskEntity)) {
return Result.failed(ResultCode.ERROR_RESOURCE_NOT_EXISTS, "ID=" + id); return Result.failed(ResultCode.ERROR_RESOURCE_NOT_EXISTS, "ID=" + id);
} }
AssignmentDetailResponse detailResponse = ConverterFactory AssignmentDetailResponse detailResponse = ConverterFactory
.getConverter(AssignmentDetailConverter.class).convert(assignmentTaskEntity); .getConverter(AssignmentDetailConverter.class).convert(assignmentTaskEntity);
return Result.success(detailResponse); return Result.success(detailResponse);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deployAssignments(List<Long> ids) { public void deployAssignments(List<Long> ids) {
checkAssignmentAllExist(ids); checkAssignmentAllExist(ids);
ids.forEach(id -> { ids.forEach(id -> {
AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id); AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id);
if (assignmentTaskEntity.getPublished()) { if (assignmentTaskEntity.getPublished()) {
throw new DbswitchException(ResultCode.ERROR_RESOURCE_HAS_DEPLOY, "ID=" + id); throw new DbswitchException(ResultCode.ERROR_RESOURCE_HAS_DEPLOY, "ID=" + id);
} }
}); });
for (Long id : ids) { for (Long id : ids) {
AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id); AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id);
AssignmentConfigEntity assignmentConfigEntity = assignmentConfigDAO.getByAssignmentTaskId(id); AssignmentConfigEntity assignmentConfigEntity = assignmentConfigDAO.getByAssignmentTaskId(id);
DbswichPropertiesConfiguration properties = new DbswichPropertiesConfiguration(); DbswichPropertiesConfiguration properties = new DbswichPropertiesConfiguration();
properties.setSource(this.getSourceDataSourceProperties(assignmentConfigEntity)); properties.setSource(this.getSourceDataSourceProperties(assignmentConfigEntity));
properties.setTarget(this.getTargetDataSourceProperties(assignmentConfigEntity)); properties.setTarget(this.getTargetDataSourceProperties(assignmentConfigEntity));
properties.setConfig(this.getGlobalParamConfigProperties(assignmentConfigEntity)); properties.setConfig(this.getGlobalParamConfigProperties(assignmentConfigEntity));
assignmentTaskEntity.setPublished(Boolean.TRUE); assignmentTaskEntity.setPublished(Boolean.TRUE);
assignmentTaskEntity.setContent(JsonUtils.toJsonString(properties)); assignmentTaskEntity.setContent(JsonUtils.toJsonString(properties));
assignmentTaskDAO.updateById(assignmentTaskEntity); assignmentTaskDAO.updateById(assignmentTaskEntity);
ScheduleModeEnum systemScheduled = ScheduleModeEnum.SYSTEM_SCHEDULED; ScheduleModeEnum systemScheduled = ScheduleModeEnum.SYSTEM_SCHEDULED;
if (assignmentTaskEntity.getScheduleMode() == systemScheduled) { if (assignmentTaskEntity.getScheduleMode() == systemScheduled) {
scheduleService.scheduleTask(assignmentTaskEntity.getId(), systemScheduled); scheduleService.scheduleTask(assignmentTaskEntity.getId(), systemScheduled);
} }
} }
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void runAssignments(List<Long> ids) { public void runAssignments(List<Long> ids) {
checkAssignmentAllExist(ids); checkAssignmentAllExist(ids);
List<AssignmentTaskEntity> tasks = new ArrayList<>(); List<AssignmentTaskEntity> tasks = new ArrayList<>();
for (Long id : ids) { for (Long id : ids) {
AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id); AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id);
if (assignmentTaskEntity.getPublished()) { if (assignmentTaskEntity.getPublished()) {
tasks.add(assignmentTaskEntity); tasks.add(assignmentTaskEntity);
} else { } else {
throw new DbswitchException(ResultCode.ERROR_RESOURCE_NOT_DEPLOY, assignmentTaskEntity.getName()); throw new DbswitchException(ResultCode.ERROR_RESOURCE_NOT_DEPLOY, assignmentTaskEntity.getName());
} }
} }
tasks.forEach(assignmentTask -> { tasks.forEach(assignmentTask -> {
scheduleService.scheduleTask(assignmentTask.getId(), ScheduleModeEnum.MANUAL); scheduleService.scheduleTask(assignmentTask.getId(), ScheduleModeEnum.MANUAL);
}); });
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void retireAssignments(List<Long> ids) { public void retireAssignments(List<Long> ids) {
checkAssignmentAllExist(ids); checkAssignmentAllExist(ids);
for (Long id : ids) { for (Long id : ids) {
AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id); AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id);
if (Objects.nonNull(assignmentTaskEntity.getPublished()) if (Objects.nonNull(assignmentTaskEntity.getPublished())
&& assignmentTaskEntity.getPublished()) { && assignmentTaskEntity.getPublished()) {
String jobKey = assignmentTaskEntity.getJobKey(); String jobKey = assignmentTaskEntity.getJobKey();
scheduleService.cancelByJobKey(jobKey); scheduleService.cancelByJobKey(jobKey);
scheduleService.cancelManualJob(id); scheduleService.cancelManualJob(id);
assignmentTaskEntity.setPublished(Boolean.FALSE); assignmentTaskEntity.setPublished(Boolean.FALSE);
assignmentTaskEntity.setContent("{}"); assignmentTaskEntity.setContent("{}");
assignmentTaskEntity.setJobKey(""); assignmentTaskEntity.setJobKey("");
assignmentTaskDAO.updateById(assignmentTaskEntity); assignmentTaskDAO.updateById(assignmentTaskEntity);
} }
} }
} }
private void checkAssignmentAllExist(List<Long> ids) { private void checkAssignmentAllExist(List<Long> ids) {
for (Long id : ids) { for (Long id : ids) {
if (Objects.isNull(assignmentTaskDAO.getById(id))) { if (Objects.isNull(assignmentTaskDAO.getById(id))) {
throw new DbswitchException(ResultCode.ERROR_RESOURCE_NOT_EXISTS, "ID=" + id); throw new DbswitchException(ResultCode.ERROR_RESOURCE_NOT_EXISTS, "ID=" + id);
} }
} }
} }
private SourceDataSourceProperties getSourceDataSourceProperties( private SourceDataSourceProperties getSourceDataSourceProperties(
AssignmentConfigEntity assignmentConfigEntity) { AssignmentConfigEntity assignmentConfigEntity) {
SourceDataSourceProperties sourceDataSourceProperties = new SourceDataSourceProperties(); SourceDataSourceProperties sourceDataSourceProperties = new SourceDataSourceProperties();
DatabaseConnectionEntity sourceDatabaseConnectionEntity = databaseConnectionDAO.getById( DatabaseConnectionEntity sourceDatabaseConnectionEntity = databaseConnectionDAO.getById(
assignmentConfigEntity.getSourceConnectionId() assignmentConfigEntity.getSourceConnectionId()
); );
File driverVersionFile = driverLoadService.getVersionDriverFile( File driverVersionFile = driverLoadService.getVersionDriverFile(
sourceDatabaseConnectionEntity.getType(), sourceDatabaseConnectionEntity.getType(),
sourceDatabaseConnectionEntity.getVersion()); sourceDatabaseConnectionEntity.getVersion());
sourceDataSourceProperties.setUrl(sourceDatabaseConnectionEntity.getUrl()); sourceDataSourceProperties.setUrl(sourceDatabaseConnectionEntity.getUrl());
sourceDataSourceProperties.setDriverClassName(sourceDatabaseConnectionEntity.getDriver()); sourceDataSourceProperties.setDriverClassName(sourceDatabaseConnectionEntity.getDriver());
sourceDataSourceProperties.setDriverPath(driverVersionFile.getAbsolutePath()); sourceDataSourceProperties.setDriverPath(driverVersionFile.getAbsolutePath());
sourceDataSourceProperties.setUsername(sourceDatabaseConnectionEntity.getUsername()); sourceDataSourceProperties.setUsername(sourceDatabaseConnectionEntity.getUsername());
sourceDataSourceProperties.setPassword(sourceDatabaseConnectionEntity.getPassword()); sourceDataSourceProperties.setPassword(sourceDatabaseConnectionEntity.getPassword());
String sourceSchema = assignmentConfigEntity.getSourceSchema(); String sourceSchema = assignmentConfigEntity.getSourceSchema();
if (assignmentConfigEntity.getExcluded()) { if (assignmentConfigEntity.getExcluded()) {
if (CollectionUtils.isEmpty(assignmentConfigEntity.getSourceTables())) { if (CollectionUtils.isEmpty(assignmentConfigEntity.getSourceTables())) {
sourceDataSourceProperties.setSourceExcludes(""); sourceDataSourceProperties.setSourceExcludes("");
} else { } else {
sourceDataSourceProperties.setSourceExcludes( sourceDataSourceProperties.setSourceExcludes(
assignmentConfigEntity.getSourceTables() assignmentConfigEntity.getSourceTables()
.stream().collect(Collectors.joining(",")) .stream().collect(Collectors.joining(","))
); );
} }
} else { } else {
if (CollectionUtils.isEmpty(assignmentConfigEntity.getSourceTables())) { if (CollectionUtils.isEmpty(assignmentConfigEntity.getSourceTables())) {
sourceDataSourceProperties.setSourceIncludes(""); sourceDataSourceProperties.setSourceIncludes("");
} else { } else {
sourceDataSourceProperties.setSourceIncludes( sourceDataSourceProperties.setSourceIncludes(
assignmentConfigEntity.getSourceTables() assignmentConfigEntity.getSourceTables()
.stream().collect(Collectors.joining(",")) .stream().collect(Collectors.joining(","))
); );
} }
} }
sourceDataSourceProperties.setSourceSchema(sourceSchema); sourceDataSourceProperties.setSourceSchema(sourceSchema);
sourceDataSourceProperties.setRegexTableMapper(assignmentConfigEntity.getTableNameMap()); sourceDataSourceProperties.setRegexTableMapper(assignmentConfigEntity.getTableNameMap());
sourceDataSourceProperties.setRegexColumnMapper(assignmentConfigEntity.getColumnNameMap()); sourceDataSourceProperties.setRegexColumnMapper(assignmentConfigEntity.getColumnNameMap());
sourceDataSourceProperties.setFetchSize(assignmentConfigEntity.getBatchSize()); sourceDataSourceProperties.setFetchSize(assignmentConfigEntity.getBatchSize());
sourceDataSourceProperties.setTableType(assignmentConfigEntity.getTableType().name()); sourceDataSourceProperties.setTableType(assignmentConfigEntity.getTableType().name());
return sourceDataSourceProperties; return sourceDataSourceProperties;
} }
private TargetDataSourceProperties getTargetDataSourceProperties( private TargetDataSourceProperties getTargetDataSourceProperties(
AssignmentConfigEntity assignmentConfigEntity) { AssignmentConfigEntity assignmentConfigEntity) {
TargetDataSourceProperties targetDataSourceProperties = new TargetDataSourceProperties(); TargetDataSourceProperties targetDataSourceProperties = new TargetDataSourceProperties();
DatabaseConnectionEntity targetDatabaseConnectionEntity = databaseConnectionDAO DatabaseConnectionEntity targetDatabaseConnectionEntity = databaseConnectionDAO
.getById(assignmentConfigEntity.getTargetConnectionId()); .getById(assignmentConfigEntity.getTargetConnectionId());
File driverVersionFile = driverLoadService.getVersionDriverFile( File driverVersionFile = driverLoadService.getVersionDriverFile(
targetDatabaseConnectionEntity.getType(), targetDatabaseConnectionEntity.getType(),
targetDatabaseConnectionEntity.getVersion()); targetDatabaseConnectionEntity.getVersion());
targetDataSourceProperties.setUrl(targetDatabaseConnectionEntity.getUrl()); targetDataSourceProperties.setUrl(targetDatabaseConnectionEntity.getUrl());
targetDataSourceProperties.setDriverClassName(targetDatabaseConnectionEntity.getDriver()); targetDataSourceProperties.setDriverClassName(targetDatabaseConnectionEntity.getDriver());
targetDataSourceProperties.setDriverPath(driverVersionFile.getAbsolutePath()); targetDataSourceProperties.setDriverPath(driverVersionFile.getAbsolutePath());
targetDataSourceProperties.setUsername(targetDatabaseConnectionEntity.getUsername()); targetDataSourceProperties.setUsername(targetDatabaseConnectionEntity.getUsername());
targetDataSourceProperties.setPassword(targetDatabaseConnectionEntity.getPassword()); targetDataSourceProperties.setPassword(targetDatabaseConnectionEntity.getPassword());
targetDataSourceProperties.setTargetSchema(assignmentConfigEntity.getTargetSchema()); targetDataSourceProperties.setTargetSchema(assignmentConfigEntity.getTargetSchema());
if (assignmentConfigEntity.getTargetDropTable()) { if (assignmentConfigEntity.getTargetDropTable()) {
targetDataSourceProperties.setTargetDrop(Boolean.TRUE); targetDataSourceProperties.setTargetDrop(Boolean.TRUE);
targetDataSourceProperties.setChangeDataSync(Boolean.FALSE); targetDataSourceProperties.setChangeDataSync(Boolean.FALSE);
} else { } else {
targetDataSourceProperties.setTargetDrop(Boolean.FALSE); targetDataSourceProperties.setTargetDrop(Boolean.FALSE);
targetDataSourceProperties.setChangeDataSync(Boolean.TRUE); targetDataSourceProperties.setChangeDataSync(Boolean.TRUE);
} }
if (assignmentConfigEntity.getTargetOnlyCreate()) { if (assignmentConfigEntity.getTargetOnlyCreate()) {
targetDataSourceProperties.setOnlyCreate(Boolean.TRUE); targetDataSourceProperties.setOnlyCreate(Boolean.TRUE);
} }
if (assignmentConfigEntity.getTargetAutoIncrement()) { if (assignmentConfigEntity.getTargetAutoIncrement()) {
targetDataSourceProperties.setCreateTableAutoIncrement(Boolean.TRUE); targetDataSourceProperties.setCreateTableAutoIncrement(Boolean.TRUE);
} }
targetDataSourceProperties.setTableNameCase(assignmentConfigEntity.getTableNameCase()); targetDataSourceProperties.setTableNameCase(assignmentConfigEntity.getTableNameCase());
targetDataSourceProperties.setColumnNameCase(assignmentConfigEntity.getColumnNameCase()); targetDataSourceProperties.setColumnNameCase(assignmentConfigEntity.getColumnNameCase());
targetDataSourceProperties.setTargetSyncOption(assignmentConfigEntity.getTargetSyncOption()); targetDataSourceProperties.setTargetSyncOption(assignmentConfigEntity.getTargetSyncOption());
targetDataSourceProperties.setBeforeSqlScripts(assignmentConfigEntity.getBeforeSqlScripts()); targetDataSourceProperties.setBeforeSqlScripts(assignmentConfigEntity.getBeforeSqlScripts());
targetDataSourceProperties.setAfterSqlScripts(assignmentConfigEntity.getAfterSqlScripts()); targetDataSourceProperties.setAfterSqlScripts(assignmentConfigEntity.getAfterSqlScripts());
return targetDataSourceProperties; return targetDataSourceProperties;
} }
private GlobalParamConfigProperties getGlobalParamConfigProperties( private GlobalParamConfigProperties getGlobalParamConfigProperties(
AssignmentConfigEntity assignmentConfigEntity) { AssignmentConfigEntity assignmentConfigEntity) {
GlobalParamConfigProperties configProperties = new GlobalParamConfigProperties(); GlobalParamConfigProperties configProperties = new GlobalParamConfigProperties();
configProperties.setChannelQueueSize(assignmentConfigEntity.getChannelSize()); configProperties.setChannelQueueSize(assignmentConfigEntity.getChannelSize());
return configProperties; return configProperties;
} }
public void exportAssignments(List<Long> ids, HttpServletResponse response) { public void exportAssignments(List<Long> ids, HttpServletResponse response) {
checkAssignmentAllExist(ids); checkAssignmentAllExist(ids);
List<AssignmentsDataResponse> assignmentsDataResponses = new ArrayList<>(); List<AssignmentsDataResponse> assignmentsDataResponses = new ArrayList<>();
for (Long id : ids) { for (Long id : ids) {
AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id); AssignmentTaskEntity assignmentTaskEntity = assignmentTaskDAO.getById(id);
AssignmentsDataResponse assignmentsDataResponse = ConverterFactory.getConverter(AssignmentsConverter.class) AssignmentsDataResponse assignmentsDataResponse = ConverterFactory.getConverter(AssignmentsConverter.class)
.convert(assignmentTaskEntity); .convert(assignmentTaskEntity);
AssignmentConfigEntity assignmentConfigEntity = this.assignmentConfigDAO.getByAssignmentTaskId(id); AssignmentConfigEntity assignmentConfigEntity = this.assignmentConfigDAO.getByAssignmentTaskId(id);
Long sourceConnectionId = assignmentConfigEntity.getSourceConnectionId(); Long sourceConnectionId = assignmentConfigEntity.getSourceConnectionId();
DatabaseConnectionEntity databaseConnectionEntity = this.databaseConnectionDAO.getById(sourceConnectionId); DatabaseConnectionEntity databaseConnectionEntity = this.databaseConnectionDAO.getById(sourceConnectionId);
String sourceSchema = assignmentConfigEntity.getSourceSchema(); String sourceSchema = assignmentConfigEntity.getSourceSchema();
assignmentsDataResponse.setSourceSchema(sourceSchema); assignmentsDataResponse.setSourceSchema(sourceSchema);
String sourceType = databaseConnectionEntity.getType().getName(); String sourceType = databaseConnectionEntity.getType().getName();
assignmentsDataResponse.setSourceType(sourceType); assignmentsDataResponse.setSourceType(sourceType);
Long targetConnectionId = assignmentConfigEntity.getTargetConnectionId(); Long targetConnectionId = assignmentConfigEntity.getTargetConnectionId();
DatabaseConnectionEntity databaseConnectionEntity1 = this.databaseConnectionDAO.getById(targetConnectionId); DatabaseConnectionEntity databaseConnectionEntity1 = this.databaseConnectionDAO.getById(targetConnectionId);
String targetSchema = assignmentConfigEntity.getTargetSchema(); String targetSchema = assignmentConfigEntity.getTargetSchema();
assignmentsDataResponse.setTargetSchema(targetSchema); assignmentsDataResponse.setTargetSchema(targetSchema);
String targetType = databaseConnectionEntity1.getType().getName(); String targetType = databaseConnectionEntity1.getType().getName();
assignmentsDataResponse.setTargetType(targetType); assignmentsDataResponse.setTargetType(targetType);
AssignmentJobEntity assignmentJobEntity = this.assignmentJobMapper.selectOne( AssignmentJobEntity assignmentJobEntity = this.assignmentJobMapper.selectOne(
new LambdaQueryWrapper<AssignmentJobEntity>() new LambdaQueryWrapper<AssignmentJobEntity>()
.eq(AssignmentJobEntity::getAssignmentId, assignmentsDataResponse.getId()).orderByDesc(AssignmentJobEntity::getCreateTime) .eq(AssignmentJobEntity::getAssignmentId, assignmentsDataResponse.getId())
.last(" limit 1 ")); .orderByDesc(AssignmentJobEntity::getCreateTime)
Integer status = (assignmentJobEntity == null || assignmentJobEntity.getStatus() == null) ? .last(" limit 1 "));
JobStatusEnum.INIT.getValue() : Integer status = (assignmentJobEntity == null || assignmentJobEntity.getStatus() == null) ?
assignmentJobEntity.getStatus(); JobStatusEnum.INIT.getValue() :
assignmentsDataResponse.setRunStatus(JobStatusEnum.of(status).getName()); assignmentJobEntity.getStatus();
assignmentsDataResponses.add(assignmentsDataResponse); assignmentsDataResponse.setRunStatus(JobStatusEnum.of(status).getName());
} assignmentsDataResponses.add(assignmentsDataResponse);
EasyexcelUtils.write(response,AssignmentsDataResponse.class,assignmentsDataResponses,"任务管理","任务管理列表"); }
} EasyexcelUtils.write(response, AssignmentsDataResponse.class, assignmentsDataResponses, "任务管理", "任务管理列表");
}
} }

View File

@@ -164,7 +164,7 @@ public class ConnectionService {
MetadataService metaDataService = getMetaDataCoreService(dbConn); MetadataService metaDataService = getMetaDataCoreService(dbConn);
try { try {
List<String> tables = Optional.ofNullable( List<String> tables = Optional.ofNullable(
metaDataService.queryTableList(schema)) metaDataService.queryTableList(schema))
.orElseGet(ArrayList::new).stream() .orElseGet(ArrayList::new).stream()
.filter(t -> !t.isViewTable()) .filter(t -> !t.isViewTable())
.map(t -> t.getTableName()) .map(t -> t.getTableName())
@@ -180,7 +180,7 @@ public class ConnectionService {
MetadataService metaDataService = getMetaDataCoreService(dbConn); MetadataService metaDataService = getMetaDataCoreService(dbConn);
try { try {
List<String> tables = Optional.ofNullable( List<String> tables = Optional.ofNullable(
metaDataService.queryTableList(schema)) metaDataService.queryTableList(schema))
.orElseGet(ArrayList::new).stream() .orElseGet(ArrayList::new).stream()
.filter(t -> t.isViewTable()) .filter(t -> t.isViewTable())
.map(t -> t.getTableName()) .map(t -> t.getTableName())

View File

@@ -26,26 +26,26 @@ import com.gitee.dbswitch.admin.common.response.ResultCode;
*/ */
public final class EasyexcelUtils { public final class EasyexcelUtils {
public static <T> void write(HttpServletResponse response, Class<T> clazz, List<T> list, String fileName, public static <T> void write(HttpServletResponse response, Class<T> clazz, List<T> list, String fileName,
String sheetName) { String sheetName) {
try { try {
// 这里注意 有同学反应使用swagger 会导致各种问题请直接用浏览器或者用postman // 这里注意 有同学反应使用swagger 会导致各种问题请直接用浏览器或者用postman
// response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); // response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setContentType("application/vnd.ms-excel"); response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
// response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); // response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
response.setHeader("Cache-Control", "no-cache"); response.setHeader("Cache-Control", "no-cache");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
EasyExcel.write(response.getOutputStream(), clazz) EasyExcel.write(response.getOutputStream(), clazz)
.sheet(sheetName) .sheet(sheetName)
.doWrite(list); .doWrite(list);
} catch (IOException ex) { } catch (IOException ex) {
throw new DbswitchException(ResultCode.ERROR_INTERNAL_ERROR, ex.getMessage()); throw new DbswitchException(ResultCode.ERROR_INTERNAL_ERROR, ex.getMessage());
} }
} }
} }

View File

@@ -84,9 +84,9 @@ public final class JdbcUrlUtils {
return true; return true;
} }
public static String getTemplateUrl(String url){ public static String getTemplateUrl(String url) {
return url.replaceAll("\\[(\\?|;|:)\\{params}\\]|\\[|\\]", "") return url.replaceAll("\\[(\\?|;|:)\\{params}\\]|\\[|\\]", "")
.replace("\\?{params}",""); .replace("\\?{params}", "");
} }
/** /**