API数据表更新
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
package com.mini.capi.biz.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/biz/dbConfig")
|
||||
public class DbConfigController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.mini.capi.biz.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/biz/syncTask")
|
||||
public class SyncTaskController {
|
||||
|
||||
}
|
||||
94
src/main/java/com/mini/capi/biz/domain/DbConfig.java
Normal file
94
src/main/java/com/mini/capi/biz/domain/DbConfig.java
Normal file
@@ -0,0 +1,94 @@
|
||||
package com.mini.capi.biz.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("biz_db_config")
|
||||
public class DbConfig implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableField("create_time")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@TableId(value = "db_id", type = IdType.AUTO)
|
||||
private String dbId;
|
||||
|
||||
@TableField("db_type")
|
||||
private String dbType;
|
||||
|
||||
@TableField("db_name")
|
||||
private String dbName;
|
||||
|
||||
@TableField("host")
|
||||
private String host;
|
||||
|
||||
@TableField("port")
|
||||
private Integer port;
|
||||
|
||||
@TableField("username")
|
||||
private String username;
|
||||
|
||||
@TableField("password")
|
||||
private String password;
|
||||
|
||||
@TableField("driver_class")
|
||||
private String driverClass;
|
||||
|
||||
@TableField("url_template")
|
||||
private String urlTemplate;
|
||||
|
||||
@TableField("is_active")
|
||||
private Boolean isActive;
|
||||
|
||||
@TableField("update_time")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 租户id
|
||||
*/
|
||||
@TableField("f_tenant_id")
|
||||
private String fTenantId;
|
||||
|
||||
/**
|
||||
* 流程id
|
||||
*/
|
||||
@TableField("f_flow_id")
|
||||
private String fFlowId;
|
||||
|
||||
/**
|
||||
* 流程任务主键
|
||||
*/
|
||||
@TableField("f_flow_task_id")
|
||||
private String fFlowTaskId;
|
||||
|
||||
/**
|
||||
* 流程任务状态
|
||||
*/
|
||||
@TableField("f_flow_state")
|
||||
private Integer fFlowState;
|
||||
|
||||
|
||||
// 生成数据库连接URL
|
||||
public String getJdbcUrl() {
|
||||
return urlTemplate.replace("{host}", host)
|
||||
.replace("{port}", port.toString())
|
||||
.replace("{dbName}", dbName);
|
||||
}
|
||||
}
|
||||
89
src/main/java/com/mini/capi/biz/domain/SyncTask.java
Normal file
89
src/main/java/com/mini/capi/biz/domain/SyncTask.java
Normal file
@@ -0,0 +1,89 @@
|
||||
package com.mini.capi.biz.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("biz_sync_task")
|
||||
public class SyncTask implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableField("create_time")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@TableId(value = "task_id", type = IdType.AUTO)
|
||||
private String taskId;
|
||||
|
||||
@TableField("task_name")
|
||||
private String taskName;
|
||||
|
||||
@TableField("source_db_id")
|
||||
private String sourceDbId;
|
||||
|
||||
@TableField("target_db_id")
|
||||
private String targetDbId;
|
||||
|
||||
@TableField("source_table")
|
||||
private String sourceTable;
|
||||
|
||||
@TableField("target_table")
|
||||
private String targetTable;
|
||||
|
||||
@TableField("sync_type")
|
||||
private String syncType;
|
||||
|
||||
@TableField("increment_column")
|
||||
private String incrementColumn;
|
||||
|
||||
@TableField("cron_expression")
|
||||
private String cronExpression;
|
||||
|
||||
@TableField("is_active")
|
||||
private Boolean isActive;
|
||||
|
||||
@TableField("last_sync_time")
|
||||
private LocalDateTime lastSyncTime;
|
||||
|
||||
@TableField("update_time")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 租户id
|
||||
*/
|
||||
@TableField("f_tenant_id")
|
||||
private String fTenantId;
|
||||
|
||||
/**
|
||||
* 流程id
|
||||
*/
|
||||
@TableField("f_flow_id")
|
||||
private String fFlowId;
|
||||
|
||||
/**
|
||||
* 流程任务主键
|
||||
*/
|
||||
@TableField("f_flow_task_id")
|
||||
private String fFlowTaskId;
|
||||
|
||||
/**
|
||||
* 流程任务状态
|
||||
*/
|
||||
@TableField("f_flow_state")
|
||||
private Integer fFlowState;
|
||||
}
|
||||
16
src/main/java/com/mini/capi/biz/mapper/DbConfigMapper.java
Normal file
16
src/main/java/com/mini/capi/biz/mapper/DbConfigMapper.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.mini.capi.biz.mapper;
|
||||
|
||||
import com.mini.capi.biz.domain.DbConfig;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
public interface DbConfigMapper extends BaseMapper<DbConfig> {
|
||||
|
||||
}
|
||||
16
src/main/java/com/mini/capi/biz/mapper/SyncTaskMapper.java
Normal file
16
src/main/java/com/mini/capi/biz/mapper/SyncTaskMapper.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.mini.capi.biz.mapper;
|
||||
|
||||
import com.mini.capi.biz.domain.SyncTask;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
public interface SyncTaskMapper extends BaseMapper<SyncTask> {
|
||||
|
||||
}
|
||||
16
src/main/java/com/mini/capi/biz/service/DbConfigService.java
Normal file
16
src/main/java/com/mini/capi/biz/service/DbConfigService.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.mini.capi.biz.service;
|
||||
|
||||
import com.mini.capi.biz.domain.DbConfig;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
public interface DbConfigService extends IService<DbConfig> {
|
||||
|
||||
}
|
||||
16
src/main/java/com/mini/capi/biz/service/SyncTaskService.java
Normal file
16
src/main/java/com/mini/capi/biz/service/SyncTaskService.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.mini.capi.biz.service;
|
||||
|
||||
import com.mini.capi.biz.domain.SyncTask;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
public interface SyncTaskService extends IService<SyncTask> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.mini.capi.biz.service.impl;
|
||||
|
||||
import com.mini.capi.biz.domain.DbConfig;
|
||||
import com.mini.capi.biz.mapper.DbConfigMapper;
|
||||
import com.mini.capi.biz.service.DbConfigService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
@Service
|
||||
public class DbConfigServiceImpl extends ServiceImpl<DbConfigMapper, DbConfig> implements DbConfigService {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.mini.capi.biz.service.impl;
|
||||
|
||||
import com.mini.capi.biz.domain.SyncTask;
|
||||
import com.mini.capi.biz.mapper.SyncTaskMapper;
|
||||
import com.mini.capi.biz.service.SyncTaskService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author gaoxq
|
||||
* @since 2025-08-26
|
||||
*/
|
||||
@Service
|
||||
public class SyncTaskServiceImpl extends ServiceImpl<SyncTaskMapper, SyncTask> implements SyncTaskService {
|
||||
|
||||
}
|
||||
23
src/main/java/com/mini/capi/config/DataSourceConfig.java
Normal file
23
src/main/java/com/mini/capi/config/DataSourceConfig.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.mini.capi.config;
|
||||
|
||||
import com.mini.capi.biz.domain.DbConfig;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.datasource.DriverManagerDataSource;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
public class DataSourceConfig {
|
||||
|
||||
public static DataSource createDataSource(DbConfig dbConfig) {
|
||||
DriverManagerDataSource dataSource = new DriverManagerDataSource();
|
||||
dataSource.setDriverClassName(dbConfig.getDriverClass());
|
||||
dataSource.setUrl(dbConfig.getJdbcUrl());
|
||||
dataSource.setUsername(dbConfig.getUsername());
|
||||
dataSource.setPassword(dbConfig.getPassword());
|
||||
return dataSource;
|
||||
}
|
||||
|
||||
public static JdbcTemplate createJdbcTemplate(DbConfig dbConfig) {
|
||||
return new JdbcTemplate(createDataSource(dbConfig));
|
||||
}
|
||||
}
|
||||
64
src/main/java/com/mini/capi/job/taskDbSync.java
Normal file
64
src/main/java/com/mini/capi/job/taskDbSync.java
Normal file
@@ -0,0 +1,64 @@
|
||||
package com.mini.capi.job;
|
||||
|
||||
import com.mini.capi.biz.domain.DbConfig;
|
||||
import com.mini.capi.biz.domain.SyncTask;
|
||||
import com.mini.capi.biz.service.DbConfigService;
|
||||
import com.mini.capi.biz.service.SyncTaskService;
|
||||
import com.mini.capi.config.DataSourceConfig;
|
||||
import com.mini.capi.model.ApiResult;
|
||||
import com.mini.capi.utils.vToken;
|
||||
import jakarta.annotation.Resource;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/Sys/dbs")
|
||||
public class taskDbSync {
|
||||
|
||||
|
||||
@Resource
|
||||
private SyncTaskService syncTaskService;
|
||||
|
||||
@Resource
|
||||
private DbConfigService dbConfigService;
|
||||
|
||||
|
||||
private static final int BATCH_SIZE = 1000;
|
||||
|
||||
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
|
||||
|
||||
@GetMapping("/getTaskSyncDbInfo")
|
||||
public ApiResult<?> jobSyncTask(String token) {
|
||||
if (vToken.isValidToken(token)) {
|
||||
String dsValue = LocalDate.now().format(DATE_FORMATTER);
|
||||
List<SyncTask> syncTasks = syncTaskService.list();
|
||||
for (SyncTask task : syncTasks) {
|
||||
DbConfig sourceDbConfig = dbConfigService.getById(task.getSourceDbId());
|
||||
DbConfig targetDbConfig = dbConfigService.getById(task.getTargetDbId());
|
||||
JdbcTemplate sourceJdbc = DataSourceConfig.createJdbcTemplate(sourceDbConfig);
|
||||
JdbcTemplate targetJdbc = DataSourceConfig.createJdbcTemplate(targetDbConfig);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
return ApiResult.error();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -29,7 +29,7 @@ public class demo {
|
||||
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper"));
|
||||
})
|
||||
.strategyConfig(builder -> {
|
||||
builder.addInclude("biz_municipalities,biz_api_doc,biz_api_param")
|
||||
builder.addInclude("biz_sync_task,biz_db_config")
|
||||
.addTablePrefix("biz_")
|
||||
.entityBuilder()
|
||||
.enableLombok()
|
||||
|
||||
Reference in New Issue
Block a user