From ce1521d46a74604ab76554edd2cf8530ad24bf2b Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 21 May 2026 12:46:27 +0800 Subject: [PATCH] feat: add json table definitions for all models (converted from xlsx) --- models/audit_log.json | 83 ++++++++++++++++++++ models/organization.json | 153 +++++++++++++++++++++++++++++++++++++ models/orgtypes.json | 40 ++++++++++ models/permission.json | 86 +++++++++++++++++++++ models/role.json | 41 ++++++++++ models/rolepermission.json | 45 +++++++++++ models/userapp.json | 55 +++++++++++++ models/userdepartment.json | 31 ++++++++ models/userrole.json | 45 +++++++++++ models/users.json | 122 +++++++++++++++++++++++++++++ 10 files changed, 701 insertions(+) create mode 100644 models/audit_log.json create mode 100644 models/organization.json create mode 100644 models/orgtypes.json create mode 100644 models/permission.json create mode 100644 models/role.json create mode 100644 models/rolepermission.json create mode 100644 models/userapp.json create mode 100644 models/userdepartment.json create mode 100644 models/userrole.json create mode 100644 models/users.json diff --git a/models/audit_log.json b/models/audit_log.json new file mode 100644 index 0000000..74535dd --- /dev/null +++ b/models/audit_log.json @@ -0,0 +1,83 @@ +{ + "summary": [ + { + "name": "audit_log", + "title": "审计日志", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "用户id", + "type": "str", + "length": 32 + }, + { + "name": "permid", + "title": "权限id", + "type": "str", + "length": 32 + }, + { + "name": "userid", + "title": "用户id", + "type": "str", + "length": 32 + }, + { + "name": "params_kw", + "title": "调用参数", + "type": "text", + "length": 40000 + }, + { + "name": "exe_date", + "title": "调用日期", + "type": "date" + }, + { + "name": "exe_timestamp", + "title": "调用时间戳", + "type": "timestamp" + }, + { + "name": "remote_ip", + "title": "远程IP", + "type": "str", + "length": 40 + } + ], + "indexes": [ + { + "name": "idx1", + "idxtype": "index", + "idxfields": [ + "permid" + ] + }, + { + "name": "idx2", + "idxtype": "index", + "idxfields": [ + "userid" + ] + } + ], + "codes": [ + { + "field": "userid", + "table": "users", + "valuefield": "id", + "textfield": "username" + }, + { + "field": "permid", + "table": "permission", + "valuefield": "id", + "textfield": "name" + } + ] +} \ No newline at end of file diff --git a/models/organization.json b/models/organization.json new file mode 100644 index 0000000..80ffcfa --- /dev/null +++ b/models/organization.json @@ -0,0 +1,153 @@ +{ + "summary": [ + { + "name": "organization", + "title": "机构", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "机构编码", + "type": "str", + "length": 32 + }, + { + "name": "orgname", + "title": "机构名称", + "type": "str", + "length": 255 + }, + { + "name": "orgabbr", + "title": "机构简称", + "type": "str", + "length": 100 + }, + { + "name": "alias_name", + "title": "机构别名", + "type": "str", + "length": 255 + }, + { + "name": "contactor", + "title": "联系人", + "type": "str", + "length": 32 + }, + { + "name": "contactor_phone", + "title": "联系人电话", + "type": "str", + "length": 100 + }, + { + "name": "province_id", + "title": "所在省id", + "type": "str", + "length": 32 + }, + { + "name": "city_id", + "title": "所在城市id", + "type": "str", + "length": 32 + }, + { + "name": "distinct_id", + "title": "所在地区id", + "type": "str", + "length": 32 + }, + { + "name": "emailaddress", + "title": "邮箱", + "type": "str", + "length": 256 + }, + { + "name": "address", + "title": "地址", + "type": "str", + "length": 400 + }, + { + "name": "main_business", + "title": "主营业务描述", + "type": "str", + "length": 1000 + }, + { + "name": "orgcode", + "title": "组织结构代码", + "type": "str", + "length": 100 + }, + { + "name": "license_img", + "title": "营业执照", + "type": "str", + "length": 400 + }, + { + "name": "id_img", + "title": "身份证", + "type": "str", + "length": 400 + }, + { + "name": "parentid", + "title": "父机构id", + "type": "str", + "length": 32 + }, + { + "name": "org_type", + "title": "机构类型", + "type": "str", + "length": 32 + }, + { + "name": "sitename", + "title": "网站域名", + "type": "str", + "length": 300 + } + ], + "indexes": [ + { + "name": "idx1", + "idxtype": "unique", + "idxfields": [ + "orgname" + ] + } + ], + "codes": [ + { + "field": "province_id", + "table": "appcodes_kv", + "valuefield": "k", + "textfield": "v", + "cond": "parentid='chnaddr'" + }, + { + "field": "city_id", + "table": "appcodes_kv", + "valuefield": "k", + "textfield": "v", + "cond": "parentid='city'" + }, + { + "field": "distinct_id", + "table": "appcodes_kv", + "valuefield": "k", + "textfield": "v", + "cond": "parentid='distinct'" + } + ] +} \ No newline at end of file diff --git a/models/orgtypes.json b/models/orgtypes.json new file mode 100644 index 0000000..8812b94 --- /dev/null +++ b/models/orgtypes.json @@ -0,0 +1,40 @@ +{ + "summary": [ + { + "name": "orgtypes", + "title": "机构拥有角色", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "id", + "type": "str", + "length": 32 + }, + { + "name": "orgid", + "title": "机构id", + "type": "str", + "length": 32 + }, + { + "name": "orgtypeid", + "title": "机构类型", + "type": "str", + "length": 32 + } + ], + "codes": [ + { + "field": "orgtypeid", + "table": "appcodes_kv", + "valuefield": "k", + "textfield": "v", + "cond": "parentid='org_type'" + } + ] +} \ No newline at end of file diff --git a/models/permission.json b/models/permission.json new file mode 100644 index 0000000..09279e4 --- /dev/null +++ b/models/permission.json @@ -0,0 +1,86 @@ +{ + "summary": [ + { + "name": "permission", + "title": "权限", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "权限id", + "type": "str", + "length": 32 + }, + { + "name": "name", + "title": "名称", + "type": "str", + "length": 255 + }, + { + "name": "description", + "title": "描述", + "type": "str", + "length": 255 + }, + { + "name": "parentid", + "title": "父权限id", + "type": "str", + "length": 32 + }, + { + "name": "path", + "title": "路径", + "type": "str", + "length": 255 + }, + { + "name": "icon", + "title": "图标", + "type": "str", + "length": 255 + }, + { + "name": "permtype", + "title": "类型", + "type": "str", + "length": 255 + }, + { + "name": "need_audit", + "title": "是否审计", + "type": "str", + "length": 1 + } + ], + "indexes": [ + { + "name": "idx1", + "idxtype": "unique", + "idxfields": [ + "path" + ] + } + ], + "codes": [ + { + "field": "permtype", + "table": "appcodes_kv", + "valuefield": "k", + "textfield": "v", + "cond": "parentid='permtype'" + }, + { + "field": "need_audit", + "table": "appcodes_kv", + "valuefield": "k", + "textfield": "v", + "cond": "parentid='yesno'" + } + ] +} \ No newline at end of file diff --git a/models/role.json b/models/role.json new file mode 100644 index 0000000..a40e80a --- /dev/null +++ b/models/role.json @@ -0,0 +1,41 @@ +{ + "summary": [ + { + "name": "role", + "title": " 角色", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "角色id", + "type": "str", + "length": 32 + }, + { + "name": "orgtypeid", + "title": "机构类型", + "type": "str", + "length": 32, + "default": "0" + }, + { + "name": "name", + "title": "角色名称", + "type": "str", + "length": 100 + } + ], + "codes": [ + { + "field": "orgtypeid", + "table": "appcodes_kv", + "valuefield": "k", + "textfield": "v", + "cond": "parentid='org_type'" + } + ] +} \ No newline at end of file diff --git a/models/rolepermission.json b/models/rolepermission.json new file mode 100644 index 0000000..c89dd14 --- /dev/null +++ b/models/rolepermission.json @@ -0,0 +1,45 @@ +{ + "summary": [ + { + "name": "rolepermission", + "title": "角色权限表", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "id", + "type": "str", + "length": 32 + }, + { + "name": "roleid", + "title": "角色id", + "type": "str", + "length": 32 + }, + { + "name": "permid", + "title": "权限id", + "type": "str", + "length": 32 + } + ], + "codes": [ + { + "field": "permid", + "table": "permission", + "valuefield": "id", + "textfield": "path" + }, + { + "field": "roleid", + "table": "(select id, concat(orgtypeid, '.', name) as name from role) as a", + "valuefield": "id", + "textfield": "name" + } + ] +} \ No newline at end of file diff --git a/models/userapp.json b/models/userapp.json new file mode 100644 index 0000000..653e595 --- /dev/null +++ b/models/userapp.json @@ -0,0 +1,55 @@ +{ + "summary": [ + { + "name": "userapp", + "title": "用户应用", + "primary": [ + "id" + ], + "catelog": "entity" + } + ], + "fields": [ + { + "name": "id", + "title": "id", + "type": "str", + "length": 32 + }, + { + "name": "userid", + "title": "用户id", + "type": "str", + "length": 32, + "default": "0" + }, + { + "name": "appname", + "title": "应用名称", + "type": "str", + "length": 99 + }, + { + "name": "apikey", + "title": "apikey", + "type": "str", + "length": 400 + }, + { + "name": "enabled_date", + "title": "启用日期", + "type": "date" + }, + { + "name": "expired_date", + "title": "失效日期", + "type": "date" + }, + { + "name": "allowed_ips", + "title": "允许IP集", + "type": "str", + "length": 200 + } + ] +} \ No newline at end of file diff --git a/models/userdepartment.json b/models/userdepartment.json new file mode 100644 index 0000000..5d68646 --- /dev/null +++ b/models/userdepartment.json @@ -0,0 +1,31 @@ +{ + "summary": [ + { + "name": "userdepartment", + "title": "用户部门表", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "id", + "type": "str", + "length": 32 + }, + { + "name": "userid", + "title": "用户id", + "type": "str", + "length": 32 + }, + { + "name": "depid", + "title": "部门id", + "type": "str", + "length": 32 + } + ] +} \ No newline at end of file diff --git a/models/userrole.json b/models/userrole.json new file mode 100644 index 0000000..f889d6c --- /dev/null +++ b/models/userrole.json @@ -0,0 +1,45 @@ +{ + "summary": [ + { + "name": "userrole", + "title": "用户角色", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "用户id", + "type": "str", + "length": 32 + }, + { + "name": "userid", + "title": "用户id", + "type": "str", + "length": 32 + }, + { + "name": "roleid", + "title": "角色id", + "type": "str", + "length": 32 + } + ], + "codes": [ + { + "field": "userid", + "table": "users", + "valuefield": "id", + "textfield": "username" + }, + { + "field": "roleid", + "table": "(select id, concat(orgtypeid, '.', name) as name from role) as a", + "valuefield": "id", + "textfield": "name" + } + ] +} \ No newline at end of file diff --git a/models/users.json b/models/users.json new file mode 100644 index 0000000..9e69320 --- /dev/null +++ b/models/users.json @@ -0,0 +1,122 @@ +{ + "summary": [ + { + "name": "users", + "title": "用户", + "primary": [ + "id" + ] + } + ], + "fields": [ + { + "name": "id", + "title": "用户id", + "type": "str", + "length": 32 + }, + { + "name": "username", + "title": "用户名", + "type": "str", + "length": 255 + }, + { + "name": "password", + "title": "密码", + "type": "str", + "length": 255 + }, + { + "name": "email", + "title": "邮件地址", + "type": "str", + "length": 255 + }, + { + "name": "orgid", + "title": "所属机构", + "type": "str", + "length": 32 + }, + { + "name": "nick_name", + "title": "显示名", + "type": "str", + "length": 255 + }, + { + "name": "address", + "title": "地址", + "type": "str", + "length": 255 + }, + { + "name": "mobile", + "title": "手机", + "type": "str", + "length": 255 + }, + { + "name": "user_status", + "title": "用户状态", + "type": "str", + "length": 1, + "default": "0" + }, + { + "name": "created_at", + "title": "注册日期", + "type": "timestamp" + }, + { + "name": "last_login", + "title": "最后登录", + "type": "timestamp", + "nullable": true + }, + { + "name": "login_fail_count", + "title": "连续失败次数", + "type": "short", + "default": "0" + }, + { + "name": "last_login_fail", + "title": "最后登录失败时间", + "type": "timestamp", + "nullable": true + } + ], + "indexes": [ + { + "name": "idx1", + "idxtype": "index", + "idxfields": [ + "orgid" + ] + }, + { + "name": "idx2", + "idxtype": "unique", + "idxfields": [ + "username" + ] + } + ], + "codes": [ + { + "field": "user_status", + "table": "appcodes_kv", + "valuefield": "k", + "textfield": "v", + "cond": "parentid='user_status'" + }, + { + "field": "orgid", + "table": "organization", + "valuefield": "id", + "textfield": "orgname" + } + ] +} \ No newline at end of file