feat: 初始化腾讯IM分发工具骨架,含回调分发链路与历史消息补拉
- 应用骨架: Solon + MyBatis-Plus + PostgreSQL + Redis + Sa-Token - 核心链路: 回调网关 → 消息落库(幂等) → 分发队列(FOR UPDATE SKIP LOCKED) → worker消费/重试/死信 - 多租户隔离: 前缀法账号映射, 所有业务表带 tenant_id - 管理后台: FreeMarker 渲染, 租户/授权/队列/用量管理页面 - 历史消息补拉: 水位线驱动, getRoamMsg/getGroupMsg 增量拉取, 兜底回调丢失 - msg_key 统一算法(回调/补拉共享, 跨路径去重) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* 用户映射实体(业务用户 ↔ IM 用户)
|
||||
* <p>
|
||||
* im_user_id = prefix_code + '_' + biz_user_id,前缀法保证跨租户不撞号。
|
||||
* is_default 标记默认账户(admin/客服等),is_global 标记跨租户通行账户。
|
||||
*
|
||||
* @author imutil
|
||||
*/
|
||||
@Data
|
||||
@TableName("user_mapping")
|
||||
public class UserMapping {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/** 租户ID */
|
||||
private String tenantId;
|
||||
|
||||
/** 业务系统用户ID */
|
||||
private String bizUserId;
|
||||
|
||||
/** IM 用户ID(带前缀) */
|
||||
private String imUserId;
|
||||
|
||||
/** 是否默认账户 */
|
||||
private Boolean isDefault;
|
||||
|
||||
/** 是否全局跨租户账户 */
|
||||
private Boolean isGlobal;
|
||||
|
||||
/** 状态:1=正常 0=封禁 */
|
||||
private Integer status;
|
||||
|
||||
private OffsetDateTime createdAt;
|
||||
}
|
||||
Reference in New Issue
Block a user