Browse Source

好友列表在线状态

master
tangmingyou 4 years ago
parent
commit
553964bd33
  1. 2
      .gitignore
  2. 3
      README.md
  3. 867
      doc/db/.back_so-im/so-im-backup-2022527172256.pdma.json
  4. 867
      doc/db/.back_so-im/so-im-backup-2022527172300.pdma.json
  5. 867
      doc/db/.back_so-im/so-im-backup-2022527174221.pdma.json
  6. 867
      doc/db/so-im.chnr.json
  7. 2
      im-client/src/main/java/net/sopod/soim/client/handler/msg/ResFriendListHandler.java
  8. 1
      im-entry/src/main/java/net/sopod/soim/entry/handlers/user/ReqFriendListHandler.java
  9. 81
      im-service-api/im-entry-protocol/src/main/java/net/sopod/soim/data/msg/user/UserMsg.java
  10. 1
      im-service-api/im-entry-protocol/src/main/resources/proto/user/UserMsg.proto
  11. 2
      im-service-api/im-logic-common/src/main/java/net/sopod/soim/logic/common/model/UserInfo.java
  12. 2
      im-service-api/im-router-api/src/main/java/net/sopod/soim/router/api/service/UserRouteService.java
  13. 27
      im-service/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/FriendServiceImpl.java
  14. 2
      im-service/im-router/src/main/java/net/sopod/soim/router/config/ImRouterAppOnReady.java
  15. 13
      im-service/im-router/src/main/java/net/sopod/soim/router/service/UserRouteServiceImpl.java

2
.gitignore vendored

@ -55,4 +55,4 @@ yarn-debug.log*
yarn-error.log*
/log
*/.back_so-im
*/.back_so-im/

3
README.md

@ -16,7 +16,7 @@
- 用户查询
- 添加好友
- 好友在线状态列表
- (05-15~05-15) 消息群发(im-router 群消息路由,批量uid一致性哈希路由)
- (05-15~05-15) 消息群发(im-router群消息路由,批量uid一致性哈希路由)
- 创群:
- 加群:发送申请,推送申请,推送回复
- 删群
@ -28,6 +28,7 @@
- (05-21~05-21) prometheus 服务发现,exporter(服务发现) 开发
- (05-22~05-22) 容器监控,主机监控,数据库监控,日志收集
- (05-23~05-24) 应用监控
- (Dubbo线程池监控)[https://cloud.tencent.com/developer/article/1800906]
- 通讯指标监控,请求量,吞吐量,延时,请求节点分布,链路追踪
- 数据库连接池监控
- (05-25~05-25) 压测:压测开发

867
doc/db/.back_so-im/so-im-backup-2022523162225.pdma.json → doc/db/.back_so-im/so-im-backup-2022527172256.pdma.json

@ -4,7 +4,7 @@
"avatar": "",
"version": "4.1.1",
"createdTime": "2022-3-7 15:11:08",
"updatedTime": "2022-5-23 16:22:23",
"updatedTime": "2022-5-27 17:22:49",
"profile": {
"default": {
"db": "8FE7C65E-40EB-41B6-B60E-79063AFF6273",
@ -1884,6 +1884,851 @@
],
"correlations": [],
"indexes": []
},
{
"id": "B1ED08AE-B919-4FED-B29D-B55ED6AC5E8B",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_group",
"defName": "群聊",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "群聊id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "2C9A9472-C178-4CB2-A106-854E4A34EB33"
},
{
"defKey": "master_uid",
"defName": "群主id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "41EA492A-EF92-425A-A5D3-DC68EB912E4C"
},
{
"defKey": "group_name",
"defName": "群聊名称",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 128,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "170A4BD4-E0A1-4096-981D-93C0A7E781D2"
},
{
"defKey": "user_limit",
"defName": "群聊人数限制",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "6641EA6E-E954-4891-B53B-C835DEA73658"
},
{
"defKey": "user_num",
"defName": "当前群聊人数",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "8A5245A6-B7FE-4E9F-8DE3-A59F233395FD"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "0B211C29-062B-4127-9F74-FA955C1A033F"
},
{
"defKey": "update_time",
"defName": "更新时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "3EB0D741-1686-4F63-AD33-0BA8AF31ED7A"
}
],
"correlations": [],
"indexes": []
},
{
"id": "88057B50-B0B5-4A2D-B3D3-E60638224625",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_group_users",
"defName": "群聊用户列表",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "uid",
"defName": "创建人",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "C0C455D3-95F9-46D4-836C-C52F426D16EC"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
},
{
"id": "853E9034-1796-44AD-9AE8-18434821ECAC",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message",
"defName": "聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "sender",
"defName": "发送人id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "3D1C2864-026A-4C9D-A655-1208B4A4AAF5"
},
{
"defKey": "receiver",
"defName": "接受者id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "C0C455D3-95F9-46D4-836C-C52F426D16EC"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
},
{
"defKey": "content",
"defName": "消息内容",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "86D1DF8C-CA19-44F2-9F72-14BE303DD752",
"id": "CFAD1896-0DCE-4882-B78D-48EE72A009D3"
}
],
"correlations": [],
"indexes": []
},
{
"id": "D1CEE40B-58CE-49B5-A460-139C263B1698",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message_group",
"defName": "群聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "sender",
"defName": "发送者id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "72DD10F8-60AE-4F2A-89E1-D69C51B30849",
"id": "3D1C2864-026A-4C9D-A655-1208B4A4AAF5"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
},
{
"id": "D8AC27A7-7ACB-4124-BE03-DC211D8AA53C",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message_group_receive",
"defName": "群聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "receiver",
"defName": "接受者id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "72DD10F8-60AE-4F2A-89E1-D69C51B30849",
"id": "460016F6-627D-4610-96E2-7F3A292C6E9B"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "group_msg_id",
"defName": "群聊消息id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "72DD10F8-60AE-4F2A-89E1-D69C51B30849",
"id": "9FF9A1B4-6751-449E-AA2F-C734743AC0A2"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
}
],
"views": [],
@ -2015,6 +2860,17 @@
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Integer",
"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "",
"B91D99E0-9B7C-416C-8737-B760957DAF09": "int32"
},
{
"defKey": "MEDIUMTEXT",
"defName": "中型文本",
"id": "0FE6297E-AA29-4784-8C6C-05E28939BFDB",
"8FE7C65E-40EB-41B6-B60E-79063AFF6273": "MEDIUMTEXT",
"7A6E0A3E-F850-47CF-B50A-3E4E905E5F3A": "",
"1E385761-67B3-4B80-A194-E302E590E54E": "String",
"797A1496-D649-4261-89B4-544132EC3F36": "String",
"895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "String",
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "String"
}
]
},
@ -2144,6 +3000,15 @@
"scale": "",
"uiHint": "",
"id": "09839FE6-4295-489C-9A58-7B2FF7817DC5"
},
{
"defKey": "MEDIUMTEXT",
"defName": "中型文本",
"applyFor": "0FE6297E-AA29-4784-8C6C-05E28939BFDB",
"len": "",
"scale": "",
"uiHint": "",
"id": "86D1DF8C-CA19-44F2-9F72-14BE303DD752"
}
],
"diagrams": [

867
doc/db/.back_so-im/so-im-backup-2022523173150.pdma.json → doc/db/.back_so-im/so-im-backup-2022527172300.pdma.json

@ -4,7 +4,7 @@
"avatar": "",
"version": "4.1.1",
"createdTime": "2022-3-7 15:11:08",
"updatedTime": "2022-5-23 16:22:25",
"updatedTime": "2022-5-27 17:22:56",
"profile": {
"default": {
"db": "8FE7C65E-40EB-41B6-B60E-79063AFF6273",
@ -1884,6 +1884,851 @@
],
"correlations": [],
"indexes": []
},
{
"id": "B1ED08AE-B919-4FED-B29D-B55ED6AC5E8B",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_group",
"defName": "群聊",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "群聊id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "2C9A9472-C178-4CB2-A106-854E4A34EB33"
},
{
"defKey": "master_uid",
"defName": "群主id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "41EA492A-EF92-425A-A5D3-DC68EB912E4C"
},
{
"defKey": "group_name",
"defName": "群聊名称",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 128,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "170A4BD4-E0A1-4096-981D-93C0A7E781D2"
},
{
"defKey": "user_limit",
"defName": "群聊人数限制",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "6641EA6E-E954-4891-B53B-C835DEA73658"
},
{
"defKey": "user_num",
"defName": "当前群聊人数",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "8A5245A6-B7FE-4E9F-8DE3-A59F233395FD"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "0B211C29-062B-4127-9F74-FA955C1A033F"
},
{
"defKey": "update_time",
"defName": "更新时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "3EB0D741-1686-4F63-AD33-0BA8AF31ED7A"
}
],
"correlations": [],
"indexes": []
},
{
"id": "88057B50-B0B5-4A2D-B3D3-E60638224625",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_group_users",
"defName": "群聊用户列表",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "uid",
"defName": "创建人",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "C0C455D3-95F9-46D4-836C-C52F426D16EC"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
},
{
"id": "853E9034-1796-44AD-9AE8-18434821ECAC",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message",
"defName": "聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "sender",
"defName": "发送人id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "3D1C2864-026A-4C9D-A655-1208B4A4AAF5"
},
{
"defKey": "receiver",
"defName": "接受者id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "C0C455D3-95F9-46D4-836C-C52F426D16EC"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
},
{
"defKey": "content",
"defName": "消息内容",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "86D1DF8C-CA19-44F2-9F72-14BE303DD752",
"id": "CFAD1896-0DCE-4882-B78D-48EE72A009D3"
}
],
"correlations": [],
"indexes": []
},
{
"id": "D1CEE40B-58CE-49B5-A460-139C263B1698",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message_group",
"defName": "群聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "sender",
"defName": "发送者id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "72DD10F8-60AE-4F2A-89E1-D69C51B30849",
"id": "3D1C2864-026A-4C9D-A655-1208B4A4AAF5"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
},
{
"id": "D8AC27A7-7ACB-4124-BE03-DC211D8AA53C",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message_group_receive",
"defName": "群聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "receiver",
"defName": "接受者id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "72DD10F8-60AE-4F2A-89E1-D69C51B30849",
"id": "460016F6-627D-4610-96E2-7F3A292C6E9B"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "group_msg_id",
"defName": "群聊消息id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "9FF9A1B4-6751-449E-AA2F-C734743AC0A2"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
}
],
"views": [],
@ -2015,6 +2860,17 @@
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Integer",
"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "",
"B91D99E0-9B7C-416C-8737-B760957DAF09": "int32"
},
{
"defKey": "MEDIUMTEXT",
"defName": "中型文本",
"id": "0FE6297E-AA29-4784-8C6C-05E28939BFDB",
"8FE7C65E-40EB-41B6-B60E-79063AFF6273": "MEDIUMTEXT",
"7A6E0A3E-F850-47CF-B50A-3E4E905E5F3A": "",
"1E385761-67B3-4B80-A194-E302E590E54E": "String",
"797A1496-D649-4261-89B4-544132EC3F36": "String",
"895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "String",
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "String"
}
]
},
@ -2144,6 +3000,15 @@
"scale": "",
"uiHint": "",
"id": "09839FE6-4295-489C-9A58-7B2FF7817DC5"
},
{
"defKey": "MEDIUMTEXT",
"defName": "中型文本",
"applyFor": "0FE6297E-AA29-4784-8C6C-05E28939BFDB",
"len": "",
"scale": "",
"uiHint": "",
"id": "86D1DF8C-CA19-44F2-9F72-14BE303DD752"
}
],
"diagrams": [

867
doc/db/.back_so-im/so-im-backup-2022523173156.pdma.json → doc/db/.back_so-im/so-im-backup-2022527174221.pdma.json

@ -4,7 +4,7 @@
"avatar": "",
"version": "4.1.1",
"createdTime": "2022-3-7 15:11:08",
"updatedTime": "2022-5-23 17:31:50",
"updatedTime": "2022-5-27 17:23:00",
"profile": {
"default": {
"db": "8FE7C65E-40EB-41B6-B60E-79063AFF6273",
@ -1884,6 +1884,851 @@
],
"correlations": [],
"indexes": []
},
{
"id": "B1ED08AE-B919-4FED-B29D-B55ED6AC5E8B",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_group",
"defName": "群聊",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "群聊id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "2C9A9472-C178-4CB2-A106-854E4A34EB33"
},
{
"defKey": "master_uid",
"defName": "群主id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "41EA492A-EF92-425A-A5D3-DC68EB912E4C"
},
{
"defKey": "group_name",
"defName": "群聊名称",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 128,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "170A4BD4-E0A1-4096-981D-93C0A7E781D2"
},
{
"defKey": "user_limit",
"defName": "群聊人数限制",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "6641EA6E-E954-4891-B53B-C835DEA73658"
},
{
"defKey": "user_num",
"defName": "当前群聊人数",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "8A5245A6-B7FE-4E9F-8DE3-A59F233395FD"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "0B211C29-062B-4127-9F74-FA955C1A033F"
},
{
"defKey": "update_time",
"defName": "更新时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "3EB0D741-1686-4F63-AD33-0BA8AF31ED7A"
}
],
"correlations": [],
"indexes": []
},
{
"id": "88057B50-B0B5-4A2D-B3D3-E60638224625",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_group_users",
"defName": "群聊用户列表",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "uid",
"defName": "创建人",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "C0C455D3-95F9-46D4-836C-C52F426D16EC"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
},
{
"id": "853E9034-1796-44AD-9AE8-18434821ECAC",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message",
"defName": "聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "sender",
"defName": "发送人id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "3D1C2864-026A-4C9D-A655-1208B4A4AAF5"
},
{
"defKey": "receiver",
"defName": "接受者id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "C0C455D3-95F9-46D4-836C-C52F426D16EC"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
},
{
"defKey": "content",
"defName": "消息内容",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "86D1DF8C-CA19-44F2-9F72-14BE303DD752",
"id": "CFAD1896-0DCE-4882-B78D-48EE72A009D3"
}
],
"correlations": [],
"indexes": []
},
{
"id": "D1CEE40B-58CE-49B5-A460-139C263B1698",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message_group",
"defName": "群聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "sender",
"defName": "发送者id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "72DD10F8-60AE-4F2A-89E1-D69C51B30849",
"id": "3D1C2864-026A-4C9D-A655-1208B4A4AAF5"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
},
{
"id": "D8AC27A7-7ACB-4124-BE03-DC211D8AA53C",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message_group_receive",
"defName": "群聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "receiver",
"defName": "接受者id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "460016F6-627D-4610-96E2-7F3A292C6E9B"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "group_msg_id",
"defName": "群聊消息id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "9FF9A1B4-6751-449E-AA2F-C734743AC0A2"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
}
],
"views": [],
@ -2015,6 +2860,17 @@
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Integer",
"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "",
"B91D99E0-9B7C-416C-8737-B760957DAF09": "int32"
},
{
"defKey": "MEDIUMTEXT",
"defName": "中型文本",
"id": "0FE6297E-AA29-4784-8C6C-05E28939BFDB",
"8FE7C65E-40EB-41B6-B60E-79063AFF6273": "MEDIUMTEXT",
"7A6E0A3E-F850-47CF-B50A-3E4E905E5F3A": "",
"1E385761-67B3-4B80-A194-E302E590E54E": "String",
"797A1496-D649-4261-89B4-544132EC3F36": "String",
"895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "String",
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "String"
}
]
},
@ -2144,6 +3000,15 @@
"scale": "",
"uiHint": "",
"id": "09839FE6-4295-489C-9A58-7B2FF7817DC5"
},
{
"defKey": "MEDIUMTEXT",
"defName": "中型文本",
"applyFor": "0FE6297E-AA29-4784-8C6C-05E28939BFDB",
"len": "",
"scale": "",
"uiHint": "",
"id": "86D1DF8C-CA19-44F2-9F72-14BE303DD752"
}
],
"diagrams": [

867
doc/db/so-im.chnr.json

@ -4,7 +4,7 @@
"avatar": "",
"version": "4.1.1",
"createdTime": "2022-3-7 15:11:08",
"updatedTime": "2022-5-23 17:31:56",
"updatedTime": "2022-5-27 17:42:21",
"profile": {
"default": {
"db": "8FE7C65E-40EB-41B6-B60E-79063AFF6273",
@ -1884,6 +1884,851 @@
],
"correlations": [],
"indexes": []
},
{
"id": "B1ED08AE-B919-4FED-B29D-B55ED6AC5E8B",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_group",
"defName": "群聊",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "群聊id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "2C9A9472-C178-4CB2-A106-854E4A34EB33"
},
{
"defKey": "master_uid",
"defName": "群主id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "41EA492A-EF92-425A-A5D3-DC68EB912E4C"
},
{
"defKey": "group_name",
"defName": "群聊名称",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 128,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "170A4BD4-E0A1-4096-981D-93C0A7E781D2"
},
{
"defKey": "user_limit",
"defName": "群聊人数限制",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "6641EA6E-E954-4891-B53B-C835DEA73658"
},
{
"defKey": "user_num",
"defName": "当前群聊人数",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "8A5245A6-B7FE-4E9F-8DE3-A59F233395FD"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "0B211C29-062B-4127-9F74-FA955C1A033F"
},
{
"defKey": "update_time",
"defName": "更新时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "3EB0D741-1686-4F63-AD33-0BA8AF31ED7A"
}
],
"correlations": [],
"indexes": []
},
{
"id": "88057B50-B0B5-4A2D-B3D3-E60638224625",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_group_users",
"defName": "群聊用户列表",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "uid",
"defName": "创建人",
"comment": "",
"domain": "4159ACB8-2488-4350-9C3B-797336F7246E",
"type": "",
"len": 32,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "C0C455D3-95F9-46D4-836C-C52F426D16EC"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
},
{
"id": "853E9034-1796-44AD-9AE8-18434821ECAC",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message",
"defName": "聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "sender",
"defName": "发送人id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "3D1C2864-026A-4C9D-A655-1208B4A4AAF5"
},
{
"defKey": "receiver",
"defName": "接受者id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "C0C455D3-95F9-46D4-836C-C52F426D16EC"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
},
{
"defKey": "content",
"defName": "消息内容",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "86D1DF8C-CA19-44F2-9F72-14BE303DD752",
"id": "CFAD1896-0DCE-4882-B78D-48EE72A009D3"
}
],
"correlations": [],
"indexes": []
},
{
"id": "D1CEE40B-58CE-49B5-A460-139C263B1698",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message_group",
"defName": "群聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "sender",
"defName": "发送者id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "72DD10F8-60AE-4F2A-89E1-D69C51B30849",
"id": "3D1C2864-026A-4C9D-A655-1208B4A4AAF5"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
},
{
"id": "D8AC27A7-7ACB-4124-BE03-DC211D8AA53C",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
"defKey": "im_message_group_receive",
"defName": "群聊天消息",
"comment": "",
"properties": {},
"nameTemplate": "{defKey}[{defName}]",
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"hideInGraph": false
},
{
"refKey": "defName",
"hideInGraph": false
},
{
"refKey": "primaryKey",
"hideInGraph": false
},
{
"refKey": "notNull",
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"hideInGraph": true
},
{
"refKey": "domain",
"hideInGraph": true
},
{
"refKey": "type",
"hideInGraph": false
},
{
"refKey": "len",
"hideInGraph": false
},
{
"refKey": "scale",
"hideInGraph": false
},
{
"refKey": "comment",
"hideInGraph": true
},
{
"refKey": "refDict",
"hideInGraph": true
},
{
"refKey": "defaultValue",
"hideInGraph": true
},
{
"refKey": "isStandard",
"hideInGraph": false
},
{
"refKey": "uiHint",
"hideInGraph": true
},
{
"refKey": "extProps",
"hideInGraph": true
}
],
"fields": [
{
"defKey": "id",
"defName": "id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"refDict": "",
"uiHint": "",
"id": "5F41F42F-AC11-49D2-A266-A060D98F2288"
},
{
"defKey": "receiver",
"defName": "接受者id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "460016F6-627D-4610-96E2-7F3A292C6E9B"
},
{
"defKey": "group_id",
"defName": "群聊id",
"comment": "",
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "506450D7-9074-4078-9D42-5F9186672193"
},
{
"defKey": "group_msg_id",
"defName": "群聊消息id",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "1E5537DF-B204-49BC-AC1D-457BC6DEE707",
"id": "9FF9A1B4-6751-449E-AA2F-C734743AC0A2"
},
{
"defKey": "create_time",
"defName": "创建时间",
"comment": "",
"domain": "4E3ADE61-41F4-4E74-8068-C1E543F9095C",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": true,
"refDict": "",
"uiHint": "",
"id": "305FC7FE-4303-4363-8FA9-58344D3786DE"
}
],
"correlations": [],
"indexes": []
}
],
"views": [],
@ -2015,6 +2860,17 @@
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Integer",
"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "",
"B91D99E0-9B7C-416C-8737-B760957DAF09": "int32"
},
{
"defKey": "MEDIUMTEXT",
"defName": "中型文本",
"id": "0FE6297E-AA29-4784-8C6C-05E28939BFDB",
"8FE7C65E-40EB-41B6-B60E-79063AFF6273": "MEDIUMTEXT",
"7A6E0A3E-F850-47CF-B50A-3E4E905E5F3A": "",
"1E385761-67B3-4B80-A194-E302E590E54E": "String",
"797A1496-D649-4261-89B4-544132EC3F36": "String",
"895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "String",
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "String"
}
]
},
@ -2144,6 +3000,15 @@
"scale": "",
"uiHint": "",
"id": "09839FE6-4295-489C-9A58-7B2FF7817DC5"
},
{
"defKey": "MEDIUMTEXT",
"defName": "中型文本",
"applyFor": "0FE6297E-AA29-4784-8C6C-05E28939BFDB",
"len": "",
"scale": "",
"uiHint": "",
"id": "86D1DF8C-CA19-44F2-9F72-14BE303DD752"
}
],
"diagrams": [

2
im-client/src/main/java/net/sopod/soim/client/handler/msg/ResFriendListHandler.java

@ -22,7 +22,7 @@ public class ResFriendListHandler implements MessageHandler<Friend.ResFriendList
public void handleMsg(Friend.ResFriendList res) {
List<UserMsg.UserInfo> friendsList = res.getFriendsList();
List<String> userLines = friendsList.stream()
.map(u -> u.getUid() + "|" + u.getAccount() + "|" + u.getNickname())
.map(u -> u.getUid() + "|" + u.getAccount() + "|" + u.getNickname() + "|" + u.getOnline())
.collect(Collectors.toList());
Logger.logList("好友列表", userLines);
}

1
im-entry/src/main/java/net/sopod/soim/entry/handlers/user/ReqFriendListHandler.java

@ -38,6 +38,7 @@ public class ReqFriendListHandler extends AccountMessageHandler<Friend.ReqFriend
.setAccount(acc.getAccount())
.setNickname(acc.getNickname())
.setUid(acc.getUid())
.setOnline(Boolean.TRUE.equals(acc.getIsOnline()))
.build()
).collect(Collectors.toList());
Friend.ResFriendList res = Friend.ResFriendList.newBuilder().addAllFriends(userInfos).build();

81
im-service-api/im-entry-protocol/src/main/java/net/sopod/soim/data/msg/user/UserMsg.java

@ -47,6 +47,12 @@ public final class UserMsg {
*/
com.google.protobuf.ByteString
getNicknameBytes();
/**
* <code>bool online = 4;</code>
* @return The online.
*/
boolean getOnline();
}
/**
* Protobuf type {@code net.sopod.soim.data.msg.user.UserInfo}
@ -112,6 +118,11 @@ public final class UserMsg {
nickname_ = s;
break;
}
case 32: {
online_ = input.readBool();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
@ -231,6 +242,17 @@ public final class UserMsg {
}
}
public static final int ONLINE_FIELD_NUMBER = 4;
private boolean online_;
/**
* <code>bool online = 4;</code>
* @return The online.
*/
@java.lang.Override
public boolean getOnline() {
return online_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
@ -254,6 +276,9 @@ public final class UserMsg {
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickname_)) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 3, nickname_);
}
if (online_ != false) {
output.writeBool(4, online_);
}
unknownFields.writeTo(output);
}
@ -273,6 +298,10 @@ public final class UserMsg {
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickname_)) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, nickname_);
}
if (online_ != false) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(4, online_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
@ -294,6 +323,8 @@ public final class UserMsg {
.equals(other.getAccount())) return false;
if (!getNickname()
.equals(other.getNickname())) return false;
if (getOnline()
!= other.getOnline()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@ -312,6 +343,9 @@ public final class UserMsg {
hash = (53 * hash) + getAccount().hashCode();
hash = (37 * hash) + NICKNAME_FIELD_NUMBER;
hash = (53 * hash) + getNickname().hashCode();
hash = (37 * hash) + ONLINE_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
getOnline());
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
@ -451,6 +485,8 @@ public final class UserMsg {
nickname_ = "";
online_ = false;
return this;
}
@ -480,6 +516,7 @@ public final class UserMsg {
result.uid_ = uid_;
result.account_ = account_;
result.nickname_ = nickname_;
result.online_ = online_;
onBuilt();
return result;
}
@ -539,6 +576,9 @@ public final class UserMsg {
nickname_ = other.nickname_;
onChanged();
}
if (other.getOnline() != false) {
setOnline(other.getOnline());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
@ -750,6 +790,37 @@ public final class UserMsg {
onChanged();
return this;
}
private boolean online_ ;
/**
* <code>bool online = 4;</code>
* @return The online.
*/
@java.lang.Override
public boolean getOnline() {
return online_;
}
/**
* <code>bool online = 4;</code>
* @param value The online to set.
* @return This builder for chaining.
*/
public Builder setOnline(boolean value) {
online_ = value;
onChanged();
return this;
}
/**
* <code>bool online = 4;</code>
* @return This builder for chaining.
*/
public Builder clearOnline() {
online_ = false;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
@ -818,10 +889,10 @@ public final class UserMsg {
static {
java.lang.String[] descriptorData = {
"\n\030proto/user/UserMsg.proto\022\034net.sopod.so" +
"im.data.msg.user\":\n\010UserInfo\022\013\n\003uid\030\001 \001(" +
"\003\022\017\n\007account\030\002 \001(\t\022\020\n\010nickname\030\003 \001(\tB)\n\034" +
"net.sopod.soim.data.msg.userB\007UserMsgP\000b" +
"\006proto3"
"im.data.msg.user\"J\n\010UserInfo\022\013\n\003uid\030\001 \001(" +
"\003\022\017\n\007account\030\002 \001(\t\022\020\n\010nickname\030\003 \001(\t\022\016\n\006" +
"online\030\004 \001(\010B)\n\034net.sopod.soim.data.msg." +
"userB\007UserMsgP\000b\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
@ -832,7 +903,7 @@ public final class UserMsg {
internal_static_net_sopod_soim_data_msg_user_UserInfo_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_net_sopod_soim_data_msg_user_UserInfo_descriptor,
new java.lang.String[] { "Uid", "Account", "Nickname", });
new java.lang.String[] { "Uid", "Account", "Nickname", "Online", });
}
// @@protoc_insertion_point(outer_class_scope)

1
im-service-api/im-entry-protocol/src/main/resources/proto/user/UserMsg.proto

@ -9,4 +9,5 @@ message UserInfo {
int64 uid = 1;
string account = 2;
string nickname = 3;
bool online = 4;
}

2
im-service-api/im-logic-common/src/main/java/net/sopod/soim/logic/common/model/UserInfo.java

@ -23,4 +23,6 @@ public class UserInfo implements Serializable {
private String nickname;
private Boolean isOnline;
}

2
im-service-api/im-router-api/src/main/java/net/sopod/soim/router/api/service/UserRouteService.java

@ -27,4 +27,6 @@ public interface UserRouteService {
Boolean routeTextChat(TextChat textChat);
List<Boolean> isOnlineUsers(List<Long> userIds);
}

27
im-service/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/FriendServiceImpl.java

@ -9,9 +9,11 @@ import net.sopod.soim.logic.api.user.service.FriendService;
import net.sopod.soim.logic.common.model.UserInfo;
import net.sopod.soim.logic.common.util.RpcContextUtil;
import net.sopod.soim.router.api.route.UidConsistentHashSelector;
import net.sopod.soim.router.api.service.UserRouteService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
@ -32,6 +34,9 @@ public class FriendServiceImpl implements FriendService {
@DubboReference
private UserDas userDas;
@DubboReference
private UserRouteService userRouteService;
/**
* TODO 幂等性处理
*/
@ -59,8 +64,13 @@ public class FriendServiceImpl implements FriendService {
List<ImUser> imUsers = friendDas.queryAllFriend(uid);
// TODO 分组到 im-router 查询在线状态
UidConsistentHashSelector<?> selector = UidConsistentHashSelector.getCurrent();
List<UserInfo> userInfos = new ArrayList<>(imUsers.size());
if (selector == null) {
// TODO 单实例 im-router, 直接调用
// TODO 多个实例变成单个后,selector 不为 null
List<Long> userIds = imUsers.stream().map(ImUser::getId).collect(Collectors.toList());
List<Boolean> onlineUsers = userRouteService.isOnlineUsers(userIds);
mappingUserInfos(imUsers, onlineUsers, userInfos);
} else {
Map<?, List<ImUser>> userRouteGroup =
Collects.group(imUsers, imUser -> selector.select(StringUtil.toString(imUser.getId())), imUser -> imUser);
@ -68,15 +78,24 @@ public class FriendServiceImpl implements FriendService {
List<Long> userIds = users.stream().map(ImUser::getId).collect(Collectors.toList());
RpcContextUtil.setContextUid(userIds.get(0));
// TODO 调用在线状态查询接口,按返回list索引更新在线状态
List<Boolean> onlineUsers = userRouteService.isOnlineUsers(userIds);
// TODO 排序
mappingUserInfos(users, onlineUsers, userInfos);
}
}
List<UserInfo> userInfos = imUsers.stream().map(imUser -> new UserInfo()
return CompletableFuture.completedFuture(userInfos);
}
private void mappingUserInfos(List<ImUser> imUsers, List<Boolean> onlineUsers, List<UserInfo> container) {
for (int i = 0; i < imUsers.size(); i++) {
ImUser imUser = imUsers.get(i);
UserInfo userInfo = new UserInfo()
.setUid(imUser.getId())
.setAccount(imUser.getAccount())
.setNickname(imUser.getNickname())
).collect(Collectors.toList());
return CompletableFuture.completedFuture(userInfos);
.setIsOnline(onlineUsers.get(i));
container.add(userInfo);
}
}
}

2
im-service/im-router/src/main/java/net/sopod/soim/router/config/ImRouterAppOnReady.java

@ -64,7 +64,7 @@ public class ImRouterAppOnReady implements ApplicationListener<ApplicationReadyE
// 服务已可用立即进行注册
if (registryNow) {
this.createMockData();
// this.createMockData();
AppContextHolder.doRegistry();
}
}

13
im-service/im-router/src/main/java/net/sopod/soim/router/service/UserRouteServiceImpl.java

@ -20,6 +20,7 @@ import org.apache.dubbo.rpc.RpcContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ -94,4 +95,16 @@ public class UserRouteServiceImpl implements UserRouteService {
return Boolean.TRUE;
}
@Override
public List<Boolean> isOnlineUsers(List<Long> userIds) {
int len = userIds.size();
List<Boolean> isOnlines = new ArrayList<>(len);
RouterUserStorage userStorage = RouterUserStorage.getInstance();
for (int i = 0; i < len; i++) {
RouterUser routerUser = userStorage.get(userIds.get(i));
isOnlines.add(routerUser != null && Boolean.TRUE.equals(routerUser.getIsOnline()));
}
return isOnlines;
}
}

Loading…
Cancel
Save