代码格式化

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

View File

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

View File

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

View File

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