refactor: 重构为 im_platform 包结构,表定义移入 models/
This commit is contained in:
parent
10af1ca2ad
commit
37e6c0e9f2
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
# build/test artifacts
|
||||
.DS_Store
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.pyo
|
||||
build/
|
||||
*.egg-info/
|
||||
*.dist-info/
|
||||
*.whl
|
||||
logs/
|
||||
*.log
|
||||
.idea/
|
||||
~$*
|
||||
models/mysql.ddl.sql
|
||||
*.pid
|
||||
init/
|
||||
0
im_platform/__init__.py
Normal file
0
im_platform/__init__.py
Normal file
12
im_platform/init.py
Normal file
12
im_platform/init.py
Normal file
@ -0,0 +1,12 @@
|
||||
from aiohttp import web
|
||||
from im_platform.api.webhooks import feishu_webhook, wecom_webhook
|
||||
|
||||
async def init_job(app):
|
||||
app.router.add_post("/noimapi/feishu", feishu_webhook)
|
||||
app.router.add_post("/noimapi/wecom", wecom_webhook)
|
||||
yield
|
||||
|
||||
def load_im_platform():
|
||||
add_cleanupctx(init_job)
|
||||
|
||||
|
||||
@ -1,63 +0,0 @@
|
||||
{
|
||||
"summary": [
|
||||
{
|
||||
"name": "im_tenant",
|
||||
"title": "IM\u79df\u6237",
|
||||
"primary": "id",
|
||||
"catelog": "relation"
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"name": "id",
|
||||
"title": "ID",
|
||||
"type": "str",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "org_id",
|
||||
"title": "\u7ec4\u7ec7ID",
|
||||
"type": "str",
|
||||
"length": 32
|
||||
},
|
||||
{
|
||||
"name": "platform",
|
||||
"title": "\u5e73\u53f0",
|
||||
"type": "str",
|
||||
"length": 16
|
||||
},
|
||||
{
|
||||
"name": "app_id",
|
||||
"title": "APPID",
|
||||
"type": "str",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "app_secret",
|
||||
"title": "APPSECRET",
|
||||
"type": "str",
|
||||
"length": 128
|
||||
},
|
||||
{
|
||||
"name": "corp_id",
|
||||
"title": "\u4f01\u4e1aID",
|
||||
"type": "str",
|
||||
"length": 64
|
||||
},
|
||||
{
|
||||
"name": "agent_id",
|
||||
"title": "AgentID",
|
||||
"type": "str",
|
||||
"length": 32
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"name": "idx_org",
|
||||
"idxtype": "index",
|
||||
"idxfields": [
|
||||
"org_id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
|
||||
from aiohttp import web
|
||||
from im_platform.api.webhooks import feishu_webhook, wecom_webhook
|
||||
|
||||
async def init_app():
|
||||
app = web.Application()
|
||||
|
||||
app.router.add_post("/webhook/feishu", feishu_webhook)
|
||||
app.router.add_post("/webhook/wecom", wecom_webhook)
|
||||
|
||||
return app
|
||||
|
||||
if __name__ == "__main__":
|
||||
import asyncio
|
||||
app = asyncio.run(init_app())
|
||||
web.run_app(app, port=8080)
|
||||
99
models/im_event_log.json
Normal file
99
models/im_event_log.json
Normal file
@ -0,0 +1,99 @@
|
||||
{
|
||||
"summary":[
|
||||
{
|
||||
"name":"im_event_log",
|
||||
"title":"IM事件日志",
|
||||
"primary":"id",
|
||||
"catelog":"entity"
|
||||
}
|
||||
],
|
||||
"fields":[
|
||||
{
|
||||
"name":"id",
|
||||
"title":"ID",
|
||||
"type":"str",
|
||||
"length":32,
|
||||
"nullable":"no",
|
||||
"comments":"主键"
|
||||
},
|
||||
{
|
||||
"name":"event_id",
|
||||
"title":"事件ID",
|
||||
"type":"str",
|
||||
"length":64,
|
||||
"nullable":"no",
|
||||
"comments":"平台事件ID"
|
||||
},
|
||||
{
|
||||
"name":"org_id",
|
||||
"title":"组织ID",
|
||||
"type":"str",
|
||||
"length":32,
|
||||
"nullable":"no",
|
||||
"comments":"系统组织ID"
|
||||
},
|
||||
{
|
||||
"name":"platform",
|
||||
"title":"平台",
|
||||
"type":"str",
|
||||
"length":16,
|
||||
"nullable":"no",
|
||||
"comments":"feishu wecom"
|
||||
},
|
||||
{
|
||||
"name":"event_type",
|
||||
"title":"事件类型",
|
||||
"type":"str",
|
||||
"length":64,
|
||||
"nullable":"yes",
|
||||
"comments":"事件类型"
|
||||
},
|
||||
{
|
||||
"name":"im_user_id",
|
||||
"title":"IM用户ID",
|
||||
"type":"str",
|
||||
"length":64,
|
||||
"nullable":"yes",
|
||||
"comments":"平台用户ID"
|
||||
},
|
||||
{
|
||||
"name":"payload",
|
||||
"title":"事件数据",
|
||||
"type":"text",
|
||||
"nullable":"yes",
|
||||
"comments":"完整事件数据"
|
||||
},
|
||||
{
|
||||
"name":"status",
|
||||
"title":"处理状态",
|
||||
"type":"short",
|
||||
"nullable":"no",
|
||||
"default":"0",
|
||||
"comments":"0未处理 1已处理"
|
||||
},
|
||||
{
|
||||
"name":"ctime",
|
||||
"title":"创建时间",
|
||||
"type":"timestamp",
|
||||
"nullable":"no",
|
||||
"comments":"事件时间"
|
||||
}
|
||||
],
|
||||
"indexes":[
|
||||
{
|
||||
"name":"idx_event",
|
||||
"idxtype":"unique",
|
||||
"idxfields":["event_id"]
|
||||
},
|
||||
{
|
||||
"name":"idx_org",
|
||||
"idxtype":"index",
|
||||
"idxfields":["org_id"]
|
||||
},
|
||||
{
|
||||
"name":"idx_platform",
|
||||
"idxtype":"index",
|
||||
"idxfields":["platform"]
|
||||
}
|
||||
]
|
||||
}
|
||||
128
models/im_message.json
Normal file
128
models/im_message.json
Normal file
@ -0,0 +1,128 @@
|
||||
{
|
||||
"summary":[
|
||||
{
|
||||
"name":"im_message",
|
||||
"title":"IM消息中心",
|
||||
"primary":"id",
|
||||
"catelog":"entity"
|
||||
}
|
||||
],
|
||||
"fields":[
|
||||
{
|
||||
"name":"id",
|
||||
"title":"ID",
|
||||
"type":"str",
|
||||
"length":32,
|
||||
"nullable":"no",
|
||||
"comments":"主键"
|
||||
},
|
||||
{
|
||||
"name":"org_id",
|
||||
"title":"组织ID",
|
||||
"type":"str",
|
||||
"length":32,
|
||||
"nullable":"no",
|
||||
"comments":"组织ID"
|
||||
},
|
||||
{
|
||||
"name":"platform",
|
||||
"title":"平台",
|
||||
"type":"str",
|
||||
"length":16,
|
||||
"nullable":"no",
|
||||
"comments":"feishu wecom"
|
||||
},
|
||||
{
|
||||
"name":"msg_id",
|
||||
"title":"消息ID",
|
||||
"type":"str",
|
||||
"length":64,
|
||||
"nullable":"yes",
|
||||
"comments":"平台消息ID"
|
||||
},
|
||||
{
|
||||
"name":"chat_id",
|
||||
"title":"会话ID",
|
||||
"type":"str",
|
||||
"length":64,
|
||||
"nullable":"yes",
|
||||
"comments":"群聊或会话ID"
|
||||
},
|
||||
{
|
||||
"name":"from_user",
|
||||
"title":"发送用户",
|
||||
"type":"str",
|
||||
"length":64,
|
||||
"nullable":"yes",
|
||||
"comments":"发送人"
|
||||
},
|
||||
{
|
||||
"name":"to_user",
|
||||
"title":"接收用户",
|
||||
"type":"str",
|
||||
"length":64,
|
||||
"nullable":"yes",
|
||||
"comments":"接收人"
|
||||
},
|
||||
{
|
||||
"name":"msg_type",
|
||||
"title":"消息类型",
|
||||
"type":"str",
|
||||
"length":32,
|
||||
"nullable":"no",
|
||||
"comments":"text image file markdown"
|
||||
},
|
||||
{
|
||||
"name":"content",
|
||||
"title":"消息内容",
|
||||
"type":"text",
|
||||
"nullable":"yes",
|
||||
"comments":"消息体"
|
||||
},
|
||||
{
|
||||
"name":"direction",
|
||||
"title":"消息方向",
|
||||
"type":"short",
|
||||
"nullable":"no",
|
||||
"default":"0",
|
||||
"comments":"0接收 1发送"
|
||||
},
|
||||
{
|
||||
"name":"status",
|
||||
"title":"状态",
|
||||
"type":"short",
|
||||
"nullable":"no",
|
||||
"default":"0",
|
||||
"comments":"0正常 1撤回"
|
||||
},
|
||||
{
|
||||
"name":"ctime",
|
||||
"title":"创建时间",
|
||||
"type":"timestamp",
|
||||
"nullable":"no",
|
||||
"comments":"消息时间"
|
||||
}
|
||||
],
|
||||
"indexes":[
|
||||
{
|
||||
"name":"idx_org",
|
||||
"idxtype":"index",
|
||||
"idxfields":["org_id"]
|
||||
},
|
||||
{
|
||||
"name":"idx_msg",
|
||||
"idxtype":"index",
|
||||
"idxfields":["msg_id"]
|
||||
},
|
||||
{
|
||||
"name":"idx_chat",
|
||||
"idxtype":"index",
|
||||
"idxfields":["chat_id"]
|
||||
},
|
||||
{
|
||||
"name":"idx_user",
|
||||
"idxtype":"index",
|
||||
"idxfields":["from_user","to_user"]
|
||||
}
|
||||
]
|
||||
}
|
||||
24
models/im_tenant.json
Normal file
24
models/im_tenant.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"summary":[
|
||||
{
|
||||
"name":"im_tenant",
|
||||
"title":"IM租户",
|
||||
"primary":"id",
|
||||
"catelog":"relation"
|
||||
}
|
||||
],
|
||||
"fields":[
|
||||
{"name":"id","title":"ID","type":"str","length":32},
|
||||
{"name":"org_id","title":"组织ID","type":"str","length":32},
|
||||
{"name":"platform","title":"平台","type":"str","length":16},
|
||||
{"name":"app_id","title":"APPID","type":"str","length":64},
|
||||
{"name":"app_secret","title":"APPSECRET","type":"str","length":128},
|
||||
{"name":"corp_id","title":"企业ID","type":"str","length":64},
|
||||
{"name":"agent_id","title":"AgentID","type":"str","length":32},
|
||||
{"name":"status","title":"状态","type":"short"}
|
||||
],
|
||||
"indexes":[
|
||||
{"name":"idx_org","idxtype":"index","idxfields":["org_id"]},
|
||||
{"name":"idx_platform","idxtype":"index","idxfields":["platform"]}
|
||||
]
|
||||
}
|
||||
16
models/im_user_map.json
Normal file
16
models/im_user_map.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"summary":[
|
||||
{
|
||||
"name":"im_user_map",
|
||||
"title":"IM用户映射",
|
||||
"primary":"id"
|
||||
}
|
||||
],
|
||||
"fields":[
|
||||
{"name":"id","title":"ID","type":"str","length":32},
|
||||
{"name":"org_id","title":"组织ID","type":"str","length":32},
|
||||
{"name":"user_id","title":"系统用户","type":"str","length":32},
|
||||
{"name":"platform","title":"平台","type":"str","length":16},
|
||||
{"name":"im_user_id","title":"IM用户ID","type":"str","length":64}
|
||||
]
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user