Files
tencent-im-util/src/main/java/com/imutil/entity/SourceApp.java
T
yixiongandClaude 7b1385e160 feat(t14-s1s2): 数据迁移基础设施 + 用户迁移
T14 数据迁移工具 S1/S2 阶段:

S1 基础设施:
- source_app/migrate_task 建表 + 实体 + Mapper
- TencentImClient 双密钥 callApiAs(老应用拉取,不走主应用限流,审计记 migrate)
- 后台「老应用配置」页(CRUD + 测试连通)

S2 用户迁移:
- batchImport(multiaccount_import,每批≤100)
- MigrateService.migrateUsers(前缀转换+导入+映射+校验,幂等)
- 后台「数据迁移」页(上传清单文件/粘贴列表 + 任务记录)

联调通过:3用户清单→加sa前缀→腾讯导入OK→user_mapping→校验3/3/3。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-09 11:12:25 +08:00

46 lines
1.1 KiB
Java

package com.imutil.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.OffsetDateTime;
/**
* 老应用配置实体(数据迁移源)
* <p>
* 每个老应用对应主应用一个租户(决定 UserID 前缀)。迁移时用本应用的 sdkAppId/secretKey
* 调腾讯 API 拉取存量数据,加前缀后导入主应用。
* <p>
* 密钥仅本工具持有,禁止下发到业务系统。
*
* @author imutil
*/
@Data
@TableName("source_app")
public class SourceApp {
@TableId(type = IdType.AUTO)
private Long id;
/** 老应用名称 */
private String appName;
/** 老应用 SDKAppID */
private String sdkAppId;
/** 老应用密钥(迁移拉取用) */
private String secretKey;
/** 对应主应用租户(决定 UserID 前缀),关联 tenant.tenant_id */
private String tenantId;
/** 1=启用 0=停用 */
private Integer status;
private String remark;
private OffsetDateTime createdAt;
}