API数据表更新

This commit is contained in:
2025-08-27 00:01:42 +08:00
parent 98672e9c0f
commit cb1b6f9349
16 changed files with 478 additions and 1 deletions

View File

@@ -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 {
}

View File

@@ -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 {
}

View 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);
}
}

View 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;
}

View 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> {
}

View 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> {
}

View 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> {
}

View 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> {
}

View File

@@ -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 {
}

View File

@@ -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 {
}

View 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));
}
}

View 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();
}
}

View File

@@ -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()