Phase: 1 | Date: 2026-06-23
现有用户表,本期新增两列存储 IM 平台返回的凭证。
| 列名 | Java 属性 | 类型 | 可空 | 说明 |
|---|---|---|---|---|
im_api_key |
imApiKey |
VARCHAR(64) | 是 | IM 平台 extCreate 返回的 data.apiKey(如 f7a49f9745114462a3333e5698aac9ae,32 位十六进制)。用户尚未开通 IM 时为 NULL。 |
im_user_id |
imUserId |
BIGINT | 是 | IM 平台 extCreate 返回的 data.userId(如 2069305587785445400,19 位长整型)。用户尚未开通时为 NULL。 |
info_user 对应 0 或 1 组 IM 凭证(imApiKey 与 imUserId 同时为空,或同时有值)。imApiKey 非空 ⇔ imUserId 非空(成对写入,避免脏数据)。code == 200 且 data 含非空 apiKey/userId,否则不写库。InfoUser.java(com.ruoyi.system.domain)新增:
/** IM 平台 API 密钥(extCreate 返回) */
@Excel(name = "IM apiKey")
private String imApiKey;
/** IM 平台用户ID(extCreate 返回,长整型) */
@Excel(name = "IM userId")
private Long imUserId;
因实体已用 Lombok
@Data,无需手写 getter/setter;但该类仍保留大量手写 getter/setter,按现有风格在末尾补getImApiKey/setImApiKey、getImUserId/setImUserId保持一致(可选,@Data 已覆盖)。
InfoUserMapper.xml 的 InfoUserResult resultMap 新增两行映射:
<result property="imApiKey" column="im_api_key" />
<result property="imUserId" column="im_user_id" />
selectInfoUserVo为select * from info_user,自动覆盖新列,无需改 SQL。
写入 updatesql/sql.md(不直接执行):
-- 2026-06-23 IM 即时沟通账号接入:info_user 新增 IM 凭证两列
ALTER TABLE info_user ADD COLUMN im_api_key VARCHAR(64) DEFAULT NULL COMMENT 'IM平台API密钥(extCreate返回)';
ALTER TABLE info_user ADD COLUMN im_user_id BIGINT DEFAULT NULL COMMENT 'IM平台用户ID(extCreate返回)';
com.ruoyi.system.domain.vo.ImAccountVo —— 开通接口返回体。
| 字段 | 类型 | 说明 |
|---|---|---|
apiKey |
String | IM 平台返回的 apiKey |
imUserId |
String | IM 平台返回的 userId(String 规避前端 Long 精度丢失) |
service 内部
InfoUser.imUserId为 Long;组装 VO 时String.valueOf(imUserId)转字符串返回。