微信号问题修改
This commit is contained in:
1 parent
d473d5d04a
commit
b029b08cee
16 files changed
+749
-14
No files matched your search
@@ -0,0 +1,283 @@
|
||||
# 清库操作文档:清空全部用户数据(含 IM)
|
||||
|
||||
> 适用环境:荷塘月色业务后端 `friend_back` + IM 系统 `chat-im`
|
||||
> 目标:清除**所有会员用户**相关数据(资料、会话、钱包/分销用户侧数据、IM 好友与聊天等)
|
||||
> **不是**「注销单个用户」;也不是清空系统配置/管理员账号。
|
||||
|
||||
---
|
||||
|
||||
## 1. 先搞清楚有两套系统
|
||||
|
||||
| 系统 | 代码目录 | MySQL 库 | Redis | 文件 |
|
||||
|------|----------|----------|-------|------|
|
||||
| 业务 API | `friend_back` | **`chat_v1`** | **db 7** | `infra_file` + 对应对象存储(七牛/MinIO 等) |
|
||||
| IM | `chat-im`(`im-platform` / `im-server`) | **`im_platform`** | **db 10** | MinIO bucket **`im-platform`** |
|
||||
|
||||
- 会员 ID 对齐:`member_user.id` == `im_user.id`
|
||||
- `friend_back` 只通过 HTTP 调 IM(`chat.base-url`),**没有「删除用户」的第三方 API**,IM 必须在 `im_platform` 库直接清
|
||||
- 特殊 IM 账号(**不要删**):
|
||||
- `-100` 系统消息通知号
|
||||
- `-200` 客服号
|
||||
|
||||
生产配置参考:
|
||||
|
||||
- 业务:`friend_back/yudao-server/src/main/resources/application-prod.yaml`(`chat_v1`、Redis db7、`chat.base-url`)
|
||||
- IM:`chat-im/im-platform/src/main/resources/application-prod.yml`(`im_platform`、Redis db10)
|
||||
|
||||
---
|
||||
|
||||
## 2. 操作前检查清单
|
||||
|
||||
1. **确认环境**(测试 / 预发 / 生产),禁止在未备份的生产库直接执行。
|
||||
2. **全量备份**
|
||||
```bash
|
||||
mysqldump -h... -u... -p chat_v1 > chat_v1_backup_$(date +%Y%m%d).sql
|
||||
mysqldump -h... -u... -p im_platform > im_platform_backup_$(date +%Y%m%d).sql
|
||||
# Redis:按运维规范导出 RDB/AOF(业务 db7、IM db10)
|
||||
# 对象存储:按需快照或确认可丢弃用户上传文件
|
||||
```
|
||||
3. **停写流量**(强烈建议)
|
||||
- 停或摘流:`yudao-server`、`im-platform`、`im-server`
|
||||
- 避免删一半又有新注册/新消息写入
|
||||
4. **合规确认**
|
||||
- 支付订单、退款、提现流水是否允许物理删除(默认建议**保留或脱敏归档**,见第 5 节)
|
||||
5. **现有后台没有「一键清会员」接口**,只能运维 SQL + Redis + 存储清理。
|
||||
|
||||
---
|
||||
|
||||
## 3. 建议操作顺序(总览)
|
||||
|
||||
```text
|
||||
① 停服务
|
||||
② 备份 MySQL / Redis / 文件
|
||||
③ 清业务库 chat_v1(用户相关表)
|
||||
④ 清 IM 库 im_platform(保留 -100/-200)
|
||||
⑤ 清 Redis db7、db10
|
||||
⑥ 清用户上传文件(可选)
|
||||
⑦ 启服务并验收
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 业务库 `chat_v1`:清用户数据
|
||||
|
||||
> 执行前先 `USE chat_v1;`
|
||||
> 下面按「先子表、后主表」;若表不存在可跳过。
|
||||
> 全量重置测试环境可用 `TRUNCATE`;生产更建议 `DELETE` + 条件(如按 `tenant_id`)。
|
||||
|
||||
### 4.1 会员扩展与行为(必清)
|
||||
|
||||
```sql
|
||||
-- 相册 / 位置 / 动态相关
|
||||
TRUNCATE TABLE member_photo;
|
||||
TRUNCATE TABLE member_location;
|
||||
TRUNCATE TABLE member_recent;
|
||||
TRUNCATE TABLE member_operation;
|
||||
TRUNCATE TABLE member_view_record;
|
||||
TRUNCATE TABLE member_recent_tag;
|
||||
TRUNCATE TABLE member_recent_cfg;
|
||||
|
||||
-- 认证 / 反馈 / 开通记录 / 积分经验签到
|
||||
TRUNCATE TABLE member_com_auth;
|
||||
TRUNCATE TABLE member_feedback;
|
||||
TRUNCATE TABLE member_open_type_user;
|
||||
TRUNCATE TABLE member_point_record;
|
||||
TRUNCATE TABLE member_level_record;
|
||||
TRUNCATE TABLE member_experience_record;
|
||||
TRUNCATE TABLE member_sign_in_record;
|
||||
TRUNCATE TABLE member_address;
|
||||
```
|
||||
|
||||
### 4.2 登录态 / 社交绑定(会员侧)
|
||||
|
||||
```sql
|
||||
-- user_type = 1 表示会员(Member)
|
||||
DELETE FROM system_oauth2_access_token WHERE user_type = 1;
|
||||
DELETE FROM system_oauth2_refresh_token WHERE user_type = 1;
|
||||
DELETE FROM system_oauth2_approve WHERE user_type = 1;
|
||||
DELETE FROM system_oauth2_code WHERE user_type = 1;
|
||||
|
||||
DELETE FROM system_social_user_bind WHERE user_type = 1;
|
||||
-- 可选:清理已无绑定的 social_user 孤儿数据(按你们库实际字段调整)
|
||||
|
||||
DELETE FROM system_login_log WHERE user_type = 1;
|
||||
DELETE FROM system_notify_message WHERE user_type = 1;
|
||||
-- 短信验证码可按需清空
|
||||
TRUNCATE TABLE system_sms_code;
|
||||
```
|
||||
|
||||
### 4.3 分销用户数据(必清用户侧)
|
||||
|
||||
```sql
|
||||
TRUNCATE TABLE trade_brokerage_record;
|
||||
TRUNCATE TABLE trade_brokerage_withdraw;
|
||||
TRUNCATE TABLE trade_brokerage_code;
|
||||
TRUNCATE TABLE trade_brokerage_user;
|
||||
```
|
||||
|
||||
### 4.4 钱包用户数据(必清用户侧)
|
||||
|
||||
```sql
|
||||
TRUNCATE TABLE pay_wallet_transaction;
|
||||
TRUNCATE TABLE pay_wallet_recharge;
|
||||
TRUNCATE TABLE pay_wallet_user_transition; -- 若存在
|
||||
TRUNCATE TABLE pay_wallet_tx_auth; -- 若存在
|
||||
DELETE FROM pay_wallet WHERE user_type = 1;
|
||||
```
|
||||
|
||||
### 4.5 商城用户行为(若启用 mall)
|
||||
|
||||
```sql
|
||||
TRUNCATE TABLE trade_cart;
|
||||
TRUNCATE TABLE trade_order_log;
|
||||
TRUNCATE TABLE trade_order_item;
|
||||
TRUNCATE TABLE trade_after_sale_log;
|
||||
TRUNCATE TABLE trade_after_sale;
|
||||
TRUNCATE TABLE trade_order;
|
||||
|
||||
TRUNCATE TABLE product_browse_history;
|
||||
TRUNCATE TABLE product_favorite;
|
||||
TRUNCATE TABLE product_comment;
|
||||
-- 优惠券领取记录等带 user_id 的 promotion_* 表按实际启用情况清理
|
||||
```
|
||||
|
||||
### 4.6 最后删会员主表
|
||||
|
||||
```sql
|
||||
TRUNCATE TABLE member_user;
|
||||
-- 或:DELETE FROM member_user;
|
||||
```
|
||||
|
||||
### 4.7 业务库「不要清」的配置表(示例)
|
||||
|
||||
保留系统能继续跑的配置:
|
||||
|
||||
- `member_config`、`member_level`、`member_tag`、`member_group`
|
||||
- `member_sign_in_config`、`member_open_type`(会员套餐)
|
||||
- `pay_app`、`pay_channel`、`pay_wallet_recharge_package`
|
||||
- `trade_config`
|
||||
- `system_oauth2_client`、`system_social_client`、短信模板/渠道
|
||||
- `system_users` 等**后台管理员**账号(除非连运营账号一起重置)
|
||||
|
||||
---
|
||||
|
||||
## 5. 支付流水是否删除(单独决策)
|
||||
|
||||
| 策略 | 处理 |
|
||||
|------|------|
|
||||
| **推荐(测试可删、生产慎删)** | 保留 `pay_order` / `pay_order_extension` / `pay_refund` / `pay_transfer` / `pay_notify_*`,仅清用户侧钱包与会员 |
|
||||
| **测试环境彻底重置** | 可一并 `TRUNCATE` 上述支付流水表,并确认与渠道对账无冲突 |
|
||||
|
||||
若生产必须销毁支付痕迹,需法务/财务确认后另出工单,不建议与「清用户」混为一谈。
|
||||
|
||||
---
|
||||
|
||||
## 6. IM 库 `im_platform`:清 IM 数据
|
||||
|
||||
> 执行前先 `USE im_platform;`
|
||||
> 建表参考:`chat-im/db/im-platform.sql`
|
||||
|
||||
```sql
|
||||
-- 消息与关系
|
||||
TRUNCATE TABLE im_private_message;
|
||||
TRUNCATE TABLE im_group_message;
|
||||
TRUNCATE TABLE im_friend;
|
||||
TRUNCATE TABLE im_group_member;
|
||||
TRUNCATE TABLE im_group;
|
||||
TRUNCATE TABLE im_file_info;
|
||||
|
||||
-- 用户:保留系统号
|
||||
DELETE FROM im_user WHERE id NOT IN (-100, -200);
|
||||
|
||||
-- 敏感词库一般保留
|
||||
-- TRUNCATE TABLE im_sensitive_word; -- 仅当要重置词库时
|
||||
```
|
||||
|
||||
**说明:**
|
||||
|
||||
- 不要依赖 `friend_back` 的 ChatApi 删用户(接口不支持)
|
||||
- 清完后会员重新登录会走同步逻辑(`syncChatUser`)在 IM 侧重建用户
|
||||
|
||||
---
|
||||
|
||||
## 7. Redis
|
||||
|
||||
**务必指定 DB,禁止误 FLUSH 其它库。**
|
||||
|
||||
```bash
|
||||
# 业务 Redis(application-prod: database 7)
|
||||
redis-cli -n 7 FLUSHDB
|
||||
|
||||
# IM Redis(im-platform/im-server: database 10)
|
||||
redis-cli -n 10 FLUSHDB
|
||||
```
|
||||
|
||||
若不能整库清空,至少清理:
|
||||
|
||||
- 业务:`oauth2_access_token:*`、会员相关 lock/cache、`social_auth_state:*` 等
|
||||
- IM:`im:user:*`、`im:cache:*`、`im:message:*`、`im:readed:*` 等
|
||||
|
||||
---
|
||||
|
||||
## 8. 文件存储(可选)
|
||||
|
||||
| 来源 | 处理建议 |
|
||||
|------|----------|
|
||||
| 业务头像/相册/认证图 | 根据 `infra_file` + `member_user.avatar` / `member_photo` 对应对象存储清理;测试环境可按配置整桶策略清理 |
|
||||
| IM 图片视频 | MinIO bucket `im-platform`;清 `im_file_info` 后按 path 删对象,或测试环境整桶清理 |
|
||||
|
||||
生产环境删除对象存储前务必确认无合规留存要求。
|
||||
|
||||
---
|
||||
|
||||
## 9. 启动与验收
|
||||
|
||||
1. 启动 `im-platform` → `im-server` → `yudao-server`
|
||||
2. 检查:
|
||||
```sql
|
||||
SELECT COUNT(*) FROM chat_v1.member_user; -- 期望 0
|
||||
SELECT COUNT(*) FROM im_platform.im_user
|
||||
WHERE id NOT IN (-100, -200); -- 期望 0
|
||||
SELECT id, user_name FROM im_platform.im_user; -- 应还能看到 -100/-200
|
||||
```
|
||||
3. App 侧:
|
||||
- 旧 token 应失效,需重新注册/登录
|
||||
- 登录后 IM 可正常建链、发消息
|
||||
- 后台管理账号仍可登录(若未清 `system_users`)
|
||||
4. 配置仍在:会员套餐、支付渠道、分销开关、敏感词等
|
||||
|
||||
---
|
||||
|
||||
## 10. 回滚
|
||||
|
||||
仅能依赖操作前备份:
|
||||
|
||||
```bash
|
||||
mysql -h... -u... -p chat_v1 < chat_v1_backup_YYYYMMDD.sql
|
||||
mysql -h... -u... -p im_platform < im_platform_backup_YYYYMMDD.sql
|
||||
# 恢复 Redis / 文件快照后重启服务
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. 常见问题
|
||||
|
||||
**Q:只清 `member_user` 行不行?**
|
||||
不行。登录 token、IM 消息、钱包、分销、相册等都会残留,且可能脏数据关联异常。
|
||||
|
||||
**Q:清完业务库,IM 会不会自动空?**
|
||||
不会。必须单独清 `im_platform`(和 Redis db10)。
|
||||
|
||||
**Q:有没有管理后台按钮?**
|
||||
没有会员「注销/全量删除」接口;管理员删除只作用于后台 `system_users`。
|
||||
|
||||
**Q:测试环境最快怎么干?**
|
||||
停服务 → 备份 → 按第 4~7 节 TRUNCATE/DELETE + `FLUSHDB` → 启服务。
|
||||
|
||||
---
|
||||
|
||||
## 12. 变更记录
|
||||
|
||||
| 日期 | 说明 |
|
||||
|------|------|
|
||||
| 2026-08-12 | 初版:基于当前 `friend_back` + `chat-im` 配置与表结构整理 |
|
||||
Reference in new issue
Block a user