diff --git a/deploy/.gitea/workflows/mirror-to-gitee.yml b/deploy/.gitea/workflows/mirror-to-gitee.yml new file mode 100644 index 0000000..b8f8b52 --- /dev/null +++ b/deploy/.gitea/workflows/mirror-to-gitee.yml @@ -0,0 +1,64 @@ +name: mirror-to-gitee + +# 把本仓同步到 Gitee 企业仓 snowgoat/<同名仓库>。 +# 触发:main 分支推送、v* tag 推送、手动;另有每日兜底重试。 +on: + push: + branches: + - main + tags: + - 'v*' + schedule: + # Gitea Actions 的 cron 用 UTC:18:30 UTC = 次日 02:30 北京时间 + - cron: '30 18 * * *' + workflow_dispatch: + +concurrency: + group: mirror-${{ github.ref }} + cancel-in-progress: true + +jobs: + mirror: + runs-on: host + steps: + - name: 同步到 Gitee + env: + SRC_TOKEN: ${{ secrets.SRC_GIT_TOKEN }} + DST_TOKEN: ${{ secrets.GITEE_TOKEN }} + DST_OWNER: ${{ secrets.GITEE_OWNER }} + DST_USER: ${{ secrets.GITEE_USER }} + REPO_NAME: ${{ github.event.repository.name }} + run: | + set -u + + if [ -z "${REPO_NAME:-}" ]; then + echo "未取到仓库名,退出"; exit 1 + fi + + WORK=$(mktemp -d) + trap 'rm -rf "$WORK"' EXIT + + echo "源:git.5iot.com/iotlcm-public/$REPO_NAME" + echo "目标:gitee.com/$DST_OWNER/$REPO_NAME" + + git clone --mirror "https://jenkins:${SRC_TOKEN}@git.5iot.com/iotlcm-public/${REPO_NAME}.git" "$WORK/repo.git" + cd "$WORK/repo.git" + echo "本地 ref:$(git for-each-ref --format='%(refname:short)' | tr '\n' ' ')" + + # Gitee 在推送密集时会返回 429 Pending queue overflowed / 408 Authorization server timeout, + # 属服务端限流,退避重试即可。 + attempt=0 + while [ "$attempt" -lt 5 ]; do + attempt=$((attempt + 1)) + echo "----- 推送尝试 $attempt/5" + if git push --mirror "https://${DST_USER}:${DST_TOKEN}@gitee.com/${DST_OWNER}/${REPO_NAME}.git" 2>&1; then + echo "✅ 已同步到 Gitee" + exit 0 + fi + wait_s=$((attempt * 30)) + echo "推送失败,${wait_s}s 后重试" + sleep "$wait_s" + done + + echo "❌ 连续 5 次推送失败,请检查 Gitee 状态或令牌" + exit 1 diff --git a/deploy/.gitignore b/deploy/.gitignore new file mode 100644 index 0000000..e551619 --- /dev/null +++ b/deploy/.gitignore @@ -0,0 +1,11 @@ +# 运行时数据(含数据库文件、日志、上传件) +data/ + +# 本地覆盖配置(如需保留自己的修改而不进版本库,可放 config/local.yaml) +config/*/local.yaml + +# 编辑器与系统文件 +.DS_Store +*.swp +.idea/ +.vscode/ diff --git a/deploy/LICENSE b/deploy/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/deploy/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/deploy/README.md b/deploy/README.md new file mode 100644 index 0000000..07e527b --- /dev/null +++ b/deploy/README.md @@ -0,0 +1,129 @@ +# IotLCM 部署仓 + +IotLCM 物联网卡管理平台的部署编排与数据库初始化脚本。使用 Docker Compose 在单机上拉起完整平台。 + +## 一键启动 + +```bash +git clone <本仓库地址> iotlcm-deploy +cd iotlcm-deploy +docker compose up -d +``` + +无需复制或修改任何文件,配置里已带可用默认值。首次启动会自动完成 MySQL 建库建表(95 张)、种子数据导入、时序库建表,实测约 30 秒~1 分钟。 + +等待 MySQL 健康后其余服务依次启动,观察进度: + +```bash +docker compose logs -f mysql +``` + +启动完成后访问 `http://<宿主机IP>:8009`: + +| 项 | 值 | +| --- | --- | +| 账号 | `admin` | +| 口令 | `Iotlcm2026Default` | + +> ⚠️ **正式使用前必须修改默认口令**,见下方「上线前必改」。 + +## 可选服务 + +```bash +docker compose --profile with-mock up -d # 运营商接口挡板 +docker compose --profile with-bot up -d # 飞书通知(运维自用) +docker compose --profile with-nginx up -d # 自带反向代理 +``` + +多个 profile 可组合:`--profile with-mock --profile with-nginx up -d` + +`with-bot` 是把全量同步等运维事件推送到飞书群的**内部运维工具**,不是平台功能。它需要你自己的飞书自建应用凭证(`config/bot/config.yaml` 的 `appId` / `appSecret` / `chatId`),没填就不启动。 + +**默认不启动,也不影响平台功能**;不需要飞书通知就完全不用管它。 + +## 镜像版本 + +所有镜像(含基础组件)都在**同一个镜像仓库** `<镜像仓库>/iotlcm/iotlcm` 下,靠 tag 区分服务与版本: + +```text +crpi-.../iotlcm/iotlcm:mysql-8.0 +crpi-.../iotlcm/iotlcm:redis-7.2 +crpi-.../iotlcm/iotlcm:iotlcm-admin-svr-v1.0.4 +crpi-.../iotlcm/iotlcm:iotlcm-app-server-v1.0.2 +``` + +tag 格式统一为 **`<服务名>-<版本>`**。 + +当前业务版本:大部分服务为 `v1.0.4`,`iotlcm-app-server` / `iotlcm-app-web` 为 `v1.0.2`(源仓最新 tag 就是 v1.0.2)。 + +升级时在 `docker-compose.yml` 中同步更新 tag 的版本部分,不要改用 `latest`。 + +## 部署内容 + +| 类别 | 服务 | +| --- | --- | +| 基础组件 | MySQL、Redis、RabbitMQ、Consul、TDengine(流量历史) | +| 业务服务 | admin-svr(管理端后端)、admin-ui(管理端前端)、openapi(对外 API)、app-server(小程序后端)、app-web(小程序前端)、upstream-chan(运营商对接)、upstream-proxy(通道缓存转发)、worker-svr(异步任务)、sms(短信)、docs(文档站) | +| 可选 | onelink-mock(运营商接口挡板)、bot(飞书通知)、nginx(反向代理) | + +## 目录结构 + +``` +iotlcm-deploy/ +├── docker-compose.yml # 服务编排(含全部默认值) +├── config/ # 各服务配置,已带可用默认值 +│ ├── admin-svr/config.yaml +│ ├── admin-ui/default.conf +│ ├── app-server/config.yaml +│ ├── bot/config.yaml +│ ├── nginx/iotlcm.conf +│ ├── openapi/config.yaml +│ ├── sms/config.yaml +│ ├── upstream-chan/config.yaml +│ ├── upstream-proxy/config.yaml +│ └── worker-svr/config.yaml +├── schema/init.sql # MySQL 初始化(单文件,首次启动自动执行) +├── tdengine-init/ # TDengine 建库建表(首次启动自动执行) +└── data/ # 运行数据(首次启动自动创建,不入版本库) +``` + +全新初始化生成 95 张业务表(原有 91 张 + worker 异步恢复所需 4 张);已部署旧库不会自动执行新增迁移,见 `schema/README.md`。 + +编排已内置 TDengine(流量历史库),由 `tdengine-init` 服务在 TDengine 健康后自动建库建表: + +| 库 | 分片 | 保留 | 超级表 | +| --- | --- | --- | --- | +| `iotlcm_daily` | 7 天 | 3 年 | `t_sim_card_usage_daily` | +| `iotlcm_monthly` | 30 天 | 3 年 | `t_sim_card_usage_monthly` | + +结构取自生产环境,`tdengine-init` 会校验建表结果,缺表则报错退出。业务代码只读写不建表,因此这一步不能跳过。 + +TDengine 版本为 `3.3.6.13`(公开镜像可得),生产用的是 `3.4.0.9`。两者在流量历史的读写上一致;如需与生产完全对齐,可自行构建镜像并替换 `docker-compose.yml` 里的 tag。 + +## 上线前必改 + +默认口令仅用于快速试用。**正式部署前必须修改以下内容**,具体位置见[部署手册](https://git.5iot.com/iotlcm-public/iotlcm-docs): + +| 项 | 位置 | +| --- | --- | +| 数据库口令(root 与应用账号) | `docker-compose.yml` + `config/*/config.yaml` + `schema/init.sql` | +| Redis 口令 | `docker-compose.yml` + `config/*/config.yaml` | +| RabbitMQ 口令 | `docker-compose.yml` + `config/*/config.yaml` | +| admin 初始口令 | `docker-compose.yml` + `schema/init.sql` | +| JWT 签名密钥 | `config/admin-svr`、`config/openapi`、`config/app-server` 三处 | +| 对外域名 | `config/nginx/iotlcm.conf` | + +::: warning 改口令必须多处同步 +因为配置文件里是字面值(未使用环境变量),改口令时**编排、配置、初始化脚本三处必须一致**,漏改会导致服务连不上数据库。 +::: + +## 重要提示 + +- **`JWT_SIGNING_KEY` 必须在 `admin-svr`、`openapi`、`app-server` 三者间完全一致**,否则令牌跨服务不通 +- **镜像标签不要用 `latest`**,生产环境请固定到具体版本 +- **改 `schema/` 下的脚本不会自动生效**,需要清空 `data/mysql` 重新初始化(会丢失全部数据) +- 默认只监听 `127.0.0.1` 的服务需通过反向代理对外 + +## 许可 + +[Apache License 2.0](LICENSE) diff --git a/deploy/config/admin-svr/config.yaml b/deploy/config/admin-svr/config.yaml new file mode 100644 index 0000000..1b5cbeb --- /dev/null +++ b/deploy/config/admin-svr/config.yaml @@ -0,0 +1,229 @@ +# ============================================================ +# iotlcm-admin-svr 配置 +# +# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。 +# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、 +# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。 +# ============================================================ + +system: + name: "IotLCM" + version: "1.0" + description: "IotLCM Server" + gfmode: "prod" # prod / dev + upload: + local: + path: "resource/upload" + +workerDiagnostic: + enabled: true + +server: + address: ":8008" + openapiPath: "/api.json" + swaggerPath: "/swagger" + indexFiles: ["index.html", "index.htm"] + indexFolder: false + fileServerEnabled: true + initLoadMemoryDB: false + maxHeaderBytes: "20KB" + clientMaxBodySize: "200MB" + +logger: + path: "/app/logs" + file: "{Y-m-d-H}.log" + prefix: "" + level: "info" + timeFormat: "2006-01-02T15:04:05" + ctxKeys: [] + header: true + stdout: true + rotateSize: 0 + rotateExpire: 0 + rotateBackupLimit: 0 + rotateBackupExpire: 0 + rotateBackupCompress: 0 + rotateCheckInterval: "1h" + stdoutColorDisabled: false + writerColorEnable: false + +# ---------- JWT ---------- +# 必改:signingKey 必须与 openapi、app-server 完全一致。 +jwt: + signingKey: "1f8b3c5d7e9a2b4c6d8e0f1a3b5c7d9e1f8b3c5d7e9a2b4c6d8e0f1a3b5c7d9e" + expiresTime: 7d + bufferTime: 1d + issuer: iotlcm + +captcha: + keyLong: 6 + imgWidth: 240 + imgHeight: 80 + openCaptcha: 0 + openCaptchaTimeout: 3600 + +# ---------- 数据库 ---------- +database: + # 旧平台库(历史数据对接)。不使用时空 link 即可。 + legacyCard: + link: "" + debug: false + maxOpen: 5 + maxIdle: 2 + logger: + path: "/app/logs" + level: "all" + stdout: true + default: + # 使用与其余服务相同的 u_iotlcm 应用账号。 + link: "mysql:u_iotlcm:Iotlcm2026Default@tcp(mysql:3306)/db_iotlcm?charset=utf8mb4&parseTime=True&loc=Asia%2FShanghai" + debug: false + charset: "utf8mb4" + dryRun: false + maxIdle: 30 + maxOpen: 100 + maxLifetime: 120 + memorydb: + link: "sqlite::@file(:memory:)" + debug: false + maxIdle: 1 + maxOpen: 1 + maxLifetime: 30 + +cache: + adapter: "redis" + fileDir: "/app/cache" + +batch: + allocate: + chunkSize: 5000 + maxFileSize: 52428800 # 50MB + +# ---------- 流量预警 ---------- +warning: + expire: + firstWarnDays: 30 + secondWarnDays: 15 + thirdWarnDays: 7 + + # 短信通道:指向 iotlcm-sms 服务。不用短信时 enabled 改 false。 + sms: + enabled: true + url: "http://iotlcm-sms:11190/api/v1/sms/send" + grpcAddr: "iotlcm-sms:11200" + timeout: "5s" + # 以下为短信服务商参数,一般留空(由 sms 服务统一持有) + routerId: 0 + serviceType: "" + regionId: "" + accessKeyId: "" + accessKeySecret: "" + sdkAppId: "" + signName: "" + templateId: "" + msgContentTemplate: "" + + # 微信小程序订阅消息。不用时 enabled 改 false。 + wechat: + enabled: false + appId: "" + appSecret: "" + templateId: "" + page: "pages/message/index" + timeout: "5s" + +# ---------- 注册验证码 ---------- +register: + # 走 HTTP 短信网关 + sms: + url: "" + method: "POST" + headers: {} + bodyTemplate: '{"phone":"{contact}","code":"{code}"}' + successStatus: 200 + # 走 SMTP 邮件 + email: + host: "" # 如 smtp.example.com + port: 465 + username: "" + password: "" + from: "" + fromName: "物联网卡管理平台" + subject: "注册验证码" + bodyTemplate: "您的注册验证码是:{code},6小时内有效。" + ssl: true + +# ---------- Redis ---------- +redis: + default: + mode: "single" # single / cluster / sentinel + sentinelMasterName: "" + address: "redis:6379" + db: 0 + pass: "Iotlcm2026Default" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "SystemCache" + +# ---------- RabbitMQ ---------- +rabbitmq: + enabled: true + dsn: "amqp://iotlcm:Iotlcm2026Default@rabbitmq:5672/" + +# ---------- TDengine(流量历史) ---------- +# 需要 TDengine 3.x 的 WebSocket 接口(6041)。 +# 不启用时序库时 link 留空,历史流量相关功能不可用。 +tsdb: + database: "TdEngine" + tdengine: + type: "taosWS" + # TDengine 3.x WebSocket 地址(容器内服务名 tdengine,端口 6041) + # 口令为 TDengine 默认 root/taosdata;改过口令需同步改这里 + dsn: "root:taosdata@ws(tdengine:6041)/" + # dbName 只是连接池键名与兜底值,不决定实际访问哪个库 + dbName: "iotlcm_daily" + dailyDbName: "iotlcm_daily" + monthlyDbName: "iotlcm_monthly" + maxOpenConns: 100 + maxIdleConns: 10 + +# ---------- 免登录白名单 ---------- +router: + exceptLogin: + - /api/v1/system/auth/login + - /api/v1/system/auth/refresh + - /api/v1/system/captcha + - /api/v1/system/auth/getTenantList + - /openapi/v3/query/token + - /api/v1/system/tTplatformSetting/view + - /api/v1/pay/alipay/notify + - /api/v1/pay/alipay/return + +# ---------- 支付宝(可选) ---------- +# 不使用支付功能时整段删掉。 +alipay: + appId: "" + privateKey: "" + alipayPublicKey: "" + notifyUrl: "https://your-domain.example.com/api/v1/pay/alipay/notify" + returnUrl: "https://your-domain.example.com/#/enterpriseManagement/tBalanceDetail/tAgentBalance" + isProduction: false + +pay: + expireTime: 60 + balanceRecharge: + timeoutDelay: "30m" + +# ---------- 上游服务地址 ---------- +# 指向同 compose 内的服务名,一般无需修改。 +upstream: + # 控制台智能诊断内部凭据,须与 upstream-proxy 的 appDiagnosis.internalToken 一致 + appDiagnosisToken: "iotlcm_diagnosis_2026" + proxy: + address: "upstream-proxy:8510" + timeout: 10s + gateway: + address: "upstream-chan:8110" + timeout: 10s diff --git a/deploy/config/admin-ui/default.conf b/deploy/config/admin-ui/default.conf new file mode 100644 index 0000000..8ccfa24 --- /dev/null +++ b/deploy/config/admin-ui/default.conf @@ -0,0 +1,61 @@ +server { + listen 80; + root /usr/share/nginx/html; + index index.html; + + charset utf-8; + client_max_body_size 200m; + access_log /var/log/nginx/access_admin-ui.log; + error_log /var/log/nginx/error_admin-ui.log; + + # 入口 HTML 不强缓存,保证发布后立即生效 + location = /index.html { + try_files $uri =404; + add_header Cache-Control no-cache,no-store,must-revalidate always; + add_header Pragma no-cache always; + add_header Expires 0 always; + } + + # 运行时配置文件不强缓存 + location ~* ^/(?:_app[.]config[.]js|config[.]json|menu-setting[.]json|setting[.]json)$ { + try_files $uri =404; + add_header Cache-Control no-cache,no-store,must-revalidate always; + add_header Pragma no-cache always; + add_header Expires 0 always; + } + + # 带 hash 的静态资源长期缓存 + location ~* ^/(?:js|jse|css)/ { + try_files $uri =404; + add_header Cache-Control public,max-age=31536000,immutable always; + } + + location / { + try_files $uri $uri/ /index.html; + } + + # 后端 API 转发(同 compose 内服务名) + location /api/ { + proxy_set_header Connection upgrade; + proxy_set_header Upgrade $http_upgrade; + proxy_http_version 1.1; + chunked_transfer_encoding off; + proxy_pass http://admin-svr:8008/api/v1/; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 上传文件目录(与 admin-svr 共享同一挂载卷) + location /upload/ { + alias /app/upload/; + } + + location /app/upload/ { + alias /app/upload/; + } + + gzip on; + gzip_types text/plain application/javascript text/css application/json; +} diff --git a/deploy/config/app-server/config.yaml b/deploy/config/app-server/config.yaml new file mode 100644 index 0000000..231ea0e --- /dev/null +++ b/deploy/config/app-server/config.yaml @@ -0,0 +1,266 @@ +# ============================================================ +# iotlcm-app-server 配置 +# +# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。 +# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、 +# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。 +# ============================================================ + +system: + name: "IotLCM" + version: "1.0" + description: "IotLCM App Server" + gfmode: "prod" + upload: + local: + path: "resource/upload" + +server: + address: ":8010" + openapiPath: "/api.json" + swaggerPath: "/swagger" + indexFiles: ["index.html", "index.htm"] + indexFolder: false + serverRoot: "resource/public" + searchPaths: ["/resource/public"] + fileServerEnabled: true + initLoadMemoryDB: false + maxHeaderBytes: "20KB" + clientMaxBodySize: "200MB" + readTimeout: "20m" + writeTimeout: "20m" + allowedDomains: [] + enabledDBOperationLog: false + +logger: + path: "/app/resource/log/server" + file: "{Y-m-d-H}.log" + prefix: "" + level: "info" + timeFormat: "2006-01-02T15:04:05" + ctxKeys: [] + header: true + stdout: true + rotateSize: 0 + rotateExpire: 0 + rotateBackupLimit: 0 + rotateBackupExpire: 0 + rotateBackupCompress: 0 + rotateCheckInterval: "1h" + stdoutColorDisabled: false + writerColorEnable: false + +# ---------- JWT ---------- +# 必改:必须与 admin-svr、openapi 完全一致。 +jwt: + signingKey: "1f8b3c5d7e9a2b4c6d8e0f1a3b5c7d9e1f8b3c5d7e9a2b4c6d8e0f1a3b5c7d9e" + expiresTime: "7d" + bufferTime: "1d" + issuer: "iotlcm" + +captcha: + keyLong: 6 + imgWidth: 240 + imgHeight: 80 + openCaptcha: 0 + openCaptchaTimeout: 3600 + +# ---------- 注册验证码:走短信服务 ---------- +register: + sms: + url: "http://iotlcm-sms:11190/api/v1/sms/send" + method: "POST" + headers: {} + bodyTemplate: '{"config":{"scene":"{scene}"},"params":{"phoneNumber":"{contact}","msgContent":"{code}"}}' + successStatus: 200 + +# ---------- 数据库 ---------- +database: + # 旧平台库(历史数据对接)。不使用时空 link 即可。 + legacyCard: + link: "" + debug: false + maxOpen: 5 + maxIdle: 2 + logger: + path: "/app/resource/log/server/sql" + level: "all" + stdout: true + default: + # 必改:连接串 + link: "mysql:u_iotlcm:Iotlcm2026Default@tcp(mysql:3306)/db_iotlcm?charset=utf8mb4&parseTime=True&loc=Asia%2FShanghai" + debug: false + charset: "utf8mb4" + dryRun: false + maxIdle: 30 + maxOpen: 100 + maxLifetime: 120 + memorydb: + link: "sqlite::@file(:memory:)" + debug: false + maxIdle: 1 + maxOpen: 1 + maxLifetime: 30 + +cache: + adapter: "redis" + fileDir: "/app/resource/cache" + +# ---------- Redis ---------- +redis: + default: + mode: "single" + sentinelMasterName: "" + address: "redis:6379" + db: 0 + pass: "Iotlcm2026Default" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "AppServerCache" + +# ---------- RabbitMQ ---------- +rabbitmq: + enabled: true + dsn: "amqp://iotlcm:Iotlcm2026Default@rabbitmq:5672/" + +# ---------- 异步业务 ---------- +workerBatchAsync: + enabled: true + exchange: "iotlcm.batch" + queueName: "iotlcm.batch.execute" + failOnPublish: false + +appBusinessAsync: + enabled: true + exchange: "iotlcm.app" + queueName: "iotlcm.app.business" + failOnPublish: false + +# ---------- 支付(可选) ---------- +# 不使用支付功能时把 enabled 全部改 false。 +payment: + balanceRecharge: + enabled: false + mock: + enabled: false + wechat: + enabled: false + envFile: "" + apiBase: "https://api.mch.weixin.qq.com" + mchId: "" + mchSerialNo: "" + apiV3Key: "" + # 微信支付证书需单独放入 data/certs 目录,不随仓库分发 + privateKeyPath: "resource/certs/wechatpay_apiclient_key.pem" + notifyUrl: "https://your-domain.example.com/app/api/v1/app/payment/wechat/notify" + notifyBaseUrl: "https://your-domain.example.com/app" + refundNotifyUrl: "https://your-domain.example.com/app/api/v1/app/payment/wechat/refund-notify" + timeoutMinutes: 5 + platformPublicKeyId: "" + platformPublicKeyPath: "resource/certs/wechatpay_platform_public_key.pem" + h5: + enabled: false + appId: "" + appName: "" + appUrl: "https://your-domain.example.com/app" + payerClientIp: "" + mini: + enabled: false + appId: "" + appSecret: "" + +# ---------- 卡号识别(拍照查卡) ---------- +# 走 OpenAI 兼容接口的视觉模型。不需要该功能时 enabled 改 false。 +appCardRecognition: + enabled: false + provider: "openai-compatible" + baseUrl: "" + endpoint: "" + model: "" + apiKey: "" + timeout: "25s" + maxImageBytes: 8388608 + maxTokens: 256 + rateLimit: + enabled: true + count: 20 + period: "1m" + +# 微信订阅消息模板 +appWarning: + wechatSubscribeTemplateId: "" + +# ---------- TDengine(流量历史) ---------- +tsdb: + database: "TdEngine" + tdengine: + type: "taosWS" + # TDengine 3.x WebSocket 地址(容器内服务名 tdengine,端口 6041) + # 口令为 TDengine 默认 root/taosdata;改过口令需同步改这里 + dsn: "root:taosdata@ws(tdengine:6041)/" + # dbName 只是连接池键名与兜底值,不决定实际访问哪个库 + dbName: "iotlcm_daily" + dailyDbName: "iotlcm_daily" + monthlyDbName: "iotlcm_monthly" + maxOpenConns: 100 + maxIdleConns: 10 + +# ---------- 免登录白名单 ---------- +router: + exceptLogin: + - /api/v1/auth/captcha + - /api/v1/auth/side-captcha + - /api/v1/auth/check-side-captcha + - /api/v1/auth/sms + - /api/v1/auth/register + - /api/v1/auth/login + - /api/v1/auth/wechat-login + - /api/v1/auth/wechat-bind-phone + - /api/v1/auth/forgot-password + - /api/v1/card/public-query + - /api/v1/card/recognize + - /api/v1/card/public-package-detail + - /api/v1/open/diagnosis/info + - /api/v1/open/diagnosis/flow + - /api/v1/payment/wechat/notify + - /api/v1/payment/wechat/refund-notify + - /api/v1/app/auth/captcha + - /api/v1/app/auth/side-captcha + - /api/v1/app/auth/check-side-captcha + - /api/v1/app/auth/sms + - /api/v1/app/auth/register + - /api/v1/app/auth/login + - /api/v1/app/auth/wechat-login + - /api/v1/app/auth/wechat-bind-phone + - /api/v1/app/auth/forgot-password + - /api/v1/app/card/public-query + - /api/v1/app/card/recognize + - /api/v1/app/card/public-package-detail + - /api/v1/app/open/diagnosis/info + - /api/v1/app/open/diagnosis/flow + - /api/v1/app/payment/wechat/notify + - /api/v1/app/payment/wechat/refund-notify + - /openapi/v3/query/token + +# ---------- 上游服务地址 ---------- +upstream: + # 控制台智能诊断内部凭据,须与 admin-svr 一致 + appDiagnosisToken: "iotlcm_diagnosis_2026" + provider: "onelink_mock" + default: + clientName: "http://upstream-proxy:8510" + timeout: "10s" + gateway: + clientName: "http://upstream-chan:8110" + timeout: "10s" + # 移动 OneLink 挡板(联调用)。对接真实运营商时 enabled 改 false。 + onelinkMock: + enabled: false + baseUrl: "http://onelink-mock:8080/v5" + appid: "" + password: "" + timeout: "10s" + tokenTTL: 3600 + accounts: [] diff --git a/deploy/config/bot/config.yaml b/deploy/config/bot/config.yaml new file mode 100644 index 0000000..9ce83b0 --- /dev/null +++ b/deploy/config/bot/config.yaml @@ -0,0 +1,28 @@ +# ============================================================ +# iotlcm-bot 配置 +# +# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。 +# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、 +# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。 +# ============================================================ + +# 说明:本服务把全量同步等运维事件推送到飞书群,属可选的运维通知工具, +# 不是平台功能本身。默认不启动(需显式 --profile with-bot), +# 不启动不影响任何平台功能。 + +environment: prod + +# 全量同步归档目录与状态目录(容器内路径,compose 已挂载) +archiveDir: /data/full-sync +stateDir: /data/state + +# 轮询间隔 +pollInterval: 10s + +# ---------- 飞书(自建应用,自己的凭证) ---------- +# appId / appSecret:在飞书开放平台创建自建应用后获取 +# chatId:接收通知的群会话 ID +feishu: + appId: "" + appSecret: "" + chatId: "" diff --git a/deploy/config/nginx/iotlcm.conf b/deploy/config/nginx/iotlcm.conf new file mode 100644 index 0000000..5c3e1d3 --- /dev/null +++ b/deploy/config/nginx/iotlcm.conf @@ -0,0 +1,141 @@ +# ============================================================ +# IotLCM 对外入口 nginx 配置示例 +# +# 作用:把多个服务按路径分流到统一域名下。 +# 若宿主机已有 nginx 或面板,可不启动本容器, +# 把下面的 location 段落并入宿主机配置即可。 +# +# 把 your-domain.example.com 替换为你的实际域名。 +# ============================================================ + +upstream iotlcm_admin_api { + server admin-svr:8008; +} + +upstream iotlcm_admin_ui { + server admin-ui:80; +} + +upstream iotlcm_openapi_api { + server openapi:8000; +} + +upstream iotlcm_docs { + server docs:80; +} + +upstream iotlcm_app_web { + server app-web:80; +} + +upstream iotlcm_app_server { + server app-server:8010; +} + +# ---------- OpenAPI 对外域名 ---------- +server { + listen 80; + server_name api.your-domain.example.com; + + client_max_body_size 200m; + + location ^~ /openapi/v3/ { + proxy_pass http://iotlcm_openapi_api; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 120s; + proxy_send_timeout 120s; + } + + # 运营商能力代理(白名单转发 / 共享 Token) + location ^~ /route/open/ { + proxy_pass http://iotlcm_openapi_api; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 120s; + proxy_send_timeout 120s; + } + + location / { + proxy_pass http://iotlcm_openapi_api; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} + +# ---------- 管理端 ---------- +server { + listen 80; + server_name admin.your-domain.example.com; + + client_max_body_size 200m; + + location / { + proxy_pass http://iotlcm_admin_ui; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + # 文档站(子路径 /docs/) + location = /docs { + return 301 /docs/; + } + + location /docs/ { + proxy_pass http://iotlcm_docs; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} + +# ---------- 小程序 / H5 ---------- +server { + listen 80; + server_name app.your-domain.example.com; + + client_max_body_size 200m; + + location ^~ /app/api/v1/ { + proxy_pass http://iotlcm_app_server/api/v1/; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 120s; + proxy_send_timeout 120s; + } + + location ^~ /app/ { + proxy_pass http://iotlcm_app_web; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location / { + proxy_pass http://iotlcm_app_web; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} diff --git a/deploy/config/openapi/config.yaml b/deploy/config/openapi/config.yaml new file mode 100644 index 0000000..1bd54e0 --- /dev/null +++ b/deploy/config/openapi/config.yaml @@ -0,0 +1,93 @@ +# ============================================================ +# iotlcm-openapi 配置 +# +# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。 +# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、 +# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。 +# ============================================================ + +system: + name: "IotLCM-OpenAPI" + version: "1.0" + description: "IotLCM OpenAPI Service" + gfmode: "prod" + +server: + address: ":8000" + openapiPath: "/api.json" + swaggerPath: "/swagger" + maxHeaderBytes: "20KB" + clientMaxBodySize: "200MB" + readTimeout: "20m" + writeTimeout: "20m" + +logger: + path: "/app/logs" + file: "{Y-m-d-H}.log" + level: "info" + timeFormat: "2006-01-02T15:04:05" + stdout: true + header: true + +# ---------- JWT ---------- +# 必改:必须与 admin-svr、app-server 完全一致, +# 否则 admin 签发的令牌在 openapi 侧校验不通过。 +jwt: + signingKey: "1f8b3c5d7e9a2b4c6d8e0f1a3b5c7d9e1f8b3c5d7e9a2b4c6d8e0f1a3b5c7d9e" + expiresTime: "7d" + bufferTime: "1d" + issuer: "iotlcm" + +# ---------- 数据库 ---------- +# 建议为 OpenAPI 单独建只读账号,与 admin 的账号隔离。 +database: + logger: + path: "/app/logs/sql" + level: "all" + stdout: true + default: + # 必改:连接串 + link: "mysql:u_iotlcm:Iotlcm2026Default@tcp(mysql:3306)/db_iotlcm?charset=utf8mb4&parseTime=True&loc=Asia%2FShanghai" + debug: false + charset: "utf8mb4" + dryRun: false + maxIdle: 30 + maxOpen: 100 + maxLifetime: 120 + +cache: + adapter: "redis" + fileDir: "resource/cache" + +# ---------- Redis ---------- +redis: + default: + mode: "single" + sentinelMasterName: "" + address: "redis:6379" + db: 0 + pass: "Iotlcm2026Default" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "OpenAPICache" + +# ---------- RabbitMQ ---------- +rabbitmq: + enabled: true + dsn: "amqp://iotlcm:Iotlcm2026Default@rabbitmq:5672/" + +# ---------- 免登录白名单 ---------- +router: + exceptLogin: + - /openapi/v3/query/token + +# ---------- 上游服务地址 ---------- +upstream: + proxy: + address: "upstream-proxy:8510" + timeout: "10s" + gateway: + address: "upstream-chan:8110" + timeout: "10s" diff --git a/deploy/config/sms/config.yaml b/deploy/config/sms/config.yaml new file mode 100644 index 0000000..5510339 --- /dev/null +++ b/deploy/config/sms/config.yaml @@ -0,0 +1,28 @@ +# ============================================================ +# iotlcm-sms 配置 +# +# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。 +# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、 +# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。 +# ============================================================ + +# 服务商:1=阿里云,2=腾讯云 +serviceType: "1" + +# ---------- 必改:服务商凭据 ---------- +regionId: cn-hangzhou +accessKeyId: "" +accessKeySecret: "" + +# 短信签名,需已在服务商侧审核通过 +signName: "示例签名" + +# 仅腾讯云需要: +# sdkAppId: "" + +# ---------- 场景模板库(可选) ---------- +# 配置后按 scene 从 t_sms_template_config 表读取模板与签名, +# 改库即生效(短 TTL 缓存)。 +# 不配置则 scene 功能关闭,调用方必须自带 templateId。 +sceneDbDsn: "u_iotlcm:Iotlcm2026Default@tcp(mysql:3306)/db_iotlcm?charset=utf8mb4&parseTime=true&loc=Local" +sceneDbCacheTtl: 60s diff --git a/deploy/config/upstream-chan/config.yaml b/deploy/config/upstream-chan/config.yaml new file mode 100644 index 0000000..281f72f --- /dev/null +++ b/deploy/config/upstream-chan/config.yaml @@ -0,0 +1,104 @@ +# ============================================================ +# iotlcm-upstream-chan 配置 +# +# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。 +# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、 +# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。 +# ============================================================ + +system: + name: "IotLCM-Upstream-Chan" + version: "1.0" + description: "IotLCM Upstream Channel Service" + gfmode: "prod" + upload: + local: + path: "/app/upload" + +server: + name: "iotlcmupstreamchan-http-svc" + address: ":8110" + openapiPath: "/api.json" + swaggerPath: "/swagger" + indexFiles: ["index.html", "index.htm"] + indexFolder: false + fileServerEnabled: true + initLoadMemoryDB: false + maxHeaderBytes: "20KB" + clientMaxBodySize: "200MB" + +# ---------- 服务注册 ---------- +registry: + type: "consul" + address: "consul:8500" + +logger: + path: "/app/logs" + file: "{Y-m-d-H}.log" + prefix: "" + level: "info" + timeFormat: "2006-01-02T15:04:05.000" + ctxKeys: [] + header: true + stdout: true + rotateSize: 0 + rotateExpire: 0 + rotateBackupLimit: 0 + rotateBackupExpire: 0 + rotateBackupCompress: 0 + rotateCheckInterval: "1h" + stdoutColorDisabled: false + writerColorEnable: false + +# ---------- 数据库 ---------- +database: + logger: + path: "/app/logs" + level: "all" + stdout: true + default: + # 必改:连接串 + link: "mysql:u_iotlcm:Iotlcm2026Default@tcp(mysql:3306)/db_iotlcm?charset=utf8mb4&parseTime=True&loc=Asia%2FShanghai" + debug: false + charset: "utf8mb4" + dryRun: false + maxIdle: 30 + maxOpen: 100 + maxLifetime: 120 + memorydb: + link: "sqlite::@file(:memory:)" + debug: false + maxIdle: 1 + maxOpen: 1 + maxLifetime: 30 + +cache: + adapter: "redis" + fileDir: "resource/cache" + +# ---------- Redis ---------- +redis: + default: + mode: "single" + sentinelMasterName: "" + address: "redis:6379" + db: 0 + pass: "Iotlcm2026Default" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "SystemCache" + +# ---------- 依赖行为 ---------- +dependencies: + # 运营商 Token 刷新策略 + token_refresh: + mode: "expired_only" # expired_only / always + skew_seconds: 600 # 提前刷新的时间窗(秒) + + # 移动 OneLink 挡板地址。 + # 启动了 onelink-mock(--profile with-mock)时保持此值; + # 对接真实运营商时删掉本段或改为真实地址。 + sim_yd_mock_v5: + url: "http://onelink-mock:8080/v5/" diff --git a/deploy/config/upstream-proxy/config.yaml b/deploy/config/upstream-proxy/config.yaml new file mode 100644 index 0000000..462beaf --- /dev/null +++ b/deploy/config/upstream-proxy/config.yaml @@ -0,0 +1,110 @@ +# ============================================================ +# iotlcm-upstream-proxy 配置 +# +# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。 +# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、 +# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。 +# ============================================================ + +system: + name: "IotLCM-Upstream-Proxy" + version: "1.0" + description: "IotLCM Upstream Proxy Service" + gfmode: "prod" + upload: + local: + path: "/app/upload" + +# ---------- 智能诊断内部凭据 ---------- +# 控制台「智能诊断」调用本服务的内部凭据, +# 必须与 admin-svr 的 upstream.appDiagnosisToken 一致。 +# 生成:openssl rand -hex 16 +appDiagnosis: + internalToken: "iotlcm_diagnosis_2026" + +server: + name: "iotlcmupstreamproxy-grpc-svc" + address: ":8510" + openapiPath: "/api.json" + swaggerPath: "/swagger" + indexFiles: ["index.html", "index.htm"] + indexFolder: false + fileServerEnabled: true + initLoadMemoryDB: false + maxHeaderBytes: "20KB" + clientMaxBodySize: "200MB" + +# ---------- 服务注册 ---------- +registry: + type: "consul" + address: "consul:8500" + +logger: + path: "/app/logs" + file: "{Y-m-d-H}.log" + prefix: "" + level: "info" + timeFormat: "2006-01-02T15:04:05.000" + ctxKeys: [] + header: true + stdout: true + rotateSize: 0 + rotateExpire: 0 + rotateBackupLimit: 0 + rotateBackupExpire: 0 + rotateBackupCompress: 0 + rotateCheckInterval: "1h" + stdoutColorDisabled: false + writerColorEnable: false + +# ---------- 数据库 ---------- +database: + logger: + path: "/app/logs" + level: "all" + stdout: true + default: + # 必改:连接串 + link: "mysql:u_iotlcm:Iotlcm2026Default@tcp(mysql:3306)/db_iotlcm?charset=utf8mb4&parseTime=True&loc=Asia%2FShanghai" + debug: false + charset: "utf8mb4" + dryRun: false + maxIdle: 30 + maxOpen: 100 + maxLifetime: 120 + memorydb: + link: "sqlite::@file(:memory:)" + debug: false + maxIdle: 1 + maxOpen: 1 + maxLifetime: 30 + +cache: + adapter: "redis" + fileDir: "resource/cache" + +# ---------- Redis ---------- +redis: + default: + mode: "single" + sentinelMasterName: "" + address: "redis:6379" + db: 0 + pass: "Iotlcm2026Default" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "SystemCache" + +# ---------- 上游通道服务 ---------- +gateway: + # 通道服务地址:必须带端口,只写服务名会走默认 80 端口被拒 + address: "upstream-chan:8110" + timeout: 10s + # 单次批量转发的总预算上限。 + # 非 APN 批量按「单卡超时 × 卡数」计算并以此封顶, + # 避免通道逐卡串行办理时请求仍在执行就被判失败 + # (批量重启、停复机、批量查询)。 + # worker 侧的超时配置必须大于该值。 + batchTimeout: 20m diff --git a/deploy/config/worker-svr/config.yaml b/deploy/config/worker-svr/config.yaml new file mode 100644 index 0000000..b7958f7 --- /dev/null +++ b/deploy/config/worker-svr/config.yaml @@ -0,0 +1,140 @@ +# ============================================================ +# iotlcm-worker-svr 配置 +# +# 本文件随部署仓分发,已带可运行默认值,无需复制或改名。 +# 正式上线前请修改口令等敏感项;修改时需与 docker-compose.yml、 +# schema/init.sql 及 config/ 下其他文件保持一致(详见 README)。 +# ============================================================ + +system: + name: "IotLCM" + version: "1.0" + description: "IotLCM Worker" + gfmode: "prod" + upload: + local: + path: "resource/upload" + +logger: + path: "/app/logs" + file: "{Y-m-d-H}.log" + prefix: "" + level: "all" + timeFormat: "2006-01-02T15:04:05" + ctxKeys: [] + header: true + stdout: true + rotateSize: 0 + rotateExpire: 0 + rotateBackupLimit: 0 + rotateBackupExpire: 0 + rotateBackupCompress: 0 + rotateCheckInterval: "1h" + stdoutColorDisabled: false + writerColorEnable: false + +# ---------- 数据库 ---------- +database: + logger: + path: "/app/logs/sql" + level: "all" + stdout: true + default: + # 必改:连接串 + link: "mysql:u_iotlcm:Iotlcm2026Default@tcp(mysql:3306)/db_iotlcm?charset=utf8mb4&parseTime=True&loc=Asia%2FShanghai" + debug: false + charset: "utf8mb4" + dryRun: false + maxIdle: 30 + maxOpen: 100 + maxLifetime: 120 + memorydb: + link: "sqlite::@file(:memory:)" + debug: false + maxIdle: 1 + maxOpen: 1 + maxLifetime: 30 + +cache: + adapter: "redis" + fileDir: "resource/cache" + +# ---------- Redis ---------- +redis: + default: + mode: "single" + sentinelMasterName: "" + address: "redis:6379" + db: 0 + pass: "Iotlcm2026Default" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "WorkerCache" + +# ---------- RabbitMQ ---------- +rabbitmq: + enabled: true + dsn: "amqp://iotlcm:Iotlcm2026Default@rabbitmq:5672/" + balanceRecharge: + retryDelay: "1m" + batchExecute: + executionTimeout: "0s" + finalizationTimeout: "60s" + retryDelay: "30s" + maxRetries: 3 + +# ---------- 批次执行 ---------- +batch: + allocate: + processingRetryAfter: "30m" + + inbound: + upstreamBatchSize: 1 + upstreamConcurrency: 300 + # 运营商接口限流。必须按上游实际配额设置, + # 调太大会被运营商限流甚至封禁。 + upstreamRateLimit: + enabled: true + mode: "redis" + redisGroup: "default" + keyPrefix: "iotlcm:worker:inbound:upstream_basic_info" + redisFailureFallback: "error" + default: + enabled: false + carriers: + mobile: + enabled: false + telecom: + enabled: true + qps: 20 + burst: 1 + requestCost: 1 + channels: {} + stockQueryBatchSize: 1000 + writeBatchSize: 1000 + +# ---------- TDengine(流量历史) ---------- +# 不启用时序库时 dsn 留空,全量同步中的流量历史部分不可用。 +tsdb: + database: "TdEngine" + tdengine: + type: "taosWS" + # TDengine 3.x WebSocket 地址(容器内服务名 tdengine,端口 6041) + # 口令为 TDengine 默认 root/taosdata;改过口令需同步改这里 + dsn: "root:taosdata@ws(tdengine:6041)/" + # dbName 只是连接池键名与兜底值,不决定实际访问哪个库 + dbName: "iotlcm_daily" + dailyDbName: "iotlcm_daily" + monthlyDbName: "iotlcm_monthly" + maxOpenConns: 100 + maxIdleConns: 10 + +# ---------- 上游服务地址 ---------- +upstream: + proxy: + address: "upstream-proxy:8510" + # 异步提交协议版本,保持默认 + apnAsyncProtocolVersion: 1 + timeout: 10s diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml new file mode 100644 index 0000000..9d8d6cb --- /dev/null +++ b/deploy/docker-compose.yml @@ -0,0 +1,431 @@ +name: iotlcm + +# ============================================================ +# IotLCM 单机部署编排 +# +# 快速开始: +# 1. docker compose up -d +# 配置文件和初始口令均已内置;正式部署前按 README.md 修改默认口令。 +# +# 首次启动会自动建库并导入 schema(见 schema/README.md)。 +# +# 可选服务(默认不启动): +# docker compose --profile with-mock up -d # 运营商接口挡板 +# docker compose --profile with-nginx up -d # 自带反向代理 +# ============================================================ + +services: + # ---------------- 基础组件 ---------------- + mysql: + # 基础组件统走同一镜像仓库(`/iotlcm/`),版本在此固定 + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:mysql-8.0' + container_name: iotlcm-mysql + restart: always + ports: + - "3306:3306" + environment: + MYSQL_ROOT_PASSWORD: 'Iotlcm2026Default' + MYSQL_DATABASE: 'db_iotlcm' + TZ: 'Asia/Shanghai' + volumes: + - ./data/mysql:/var/lib/mysql + # 仅在 data/mysql 为空(首次启动)时执行 schema/init.sql + - ./schema:/docker-entrypoint-initdb.d:ro + command: + - --character-set-server=utf8mb4 + - --collation-server=utf8mb4_general_ci + - --default-time-zone=+08:00 + networks: + - iotlcm-network + healthcheck: + test: ["CMD-SHELL", "MYSQL_PWD=\"$$MYSQL_ROOT_PASSWORD\" mysqladmin ping -h 127.0.0.1 -u root --silent"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 40s + + redis: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:redis-7.2' + container_name: iotlcm-redis + restart: always + ports: + - "6379:6379" + environment: + TZ: 'Asia/Shanghai' + command: + - redis-server + - --requirepass + - 'Iotlcm2026Default' + - --appendonly + - "yes" + volumes: + - ./data/redis:/data + networks: + - iotlcm-network + healthcheck: + test: ["CMD", "redis-cli", "-a", "Iotlcm2026Default", "ping"] + interval: 10s + timeout: 5s + retries: 5 + + rabbitmq: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:rabbitmq-4.3.5-management' + container_name: iotlcm-rabbitmq + hostname: rabbitmq + restart: always + ports: + - "5672:5672" + - "15672:15672" + environment: + RABBITMQ_DEFAULT_USER: 'iotlcm' + RABBITMQ_DEFAULT_PASS: 'Iotlcm2026Default' + TZ: 'Asia/Shanghai' + volumes: + - ./data/rabbitmq:/var/lib/rabbitmq + networks: + - iotlcm-network + healthcheck: + test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s + + # 时序数据库:存流量历史(daily / monthly),worker-svr 全量同步写这里 + tdengine: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:tdengine-3.3.6.13' + container_name: iotlcm-tdengine + restart: always + ports: + - "${TDENGINE_PORT:-6041}:6041" # taosAdapter(WebSocket,应用用这个) + - "${TDENGINE_NATIVE_PORT:-6030}:6030" + environment: + TZ: '${TZ:-Asia/Shanghai}' + volumes: + - ./data/tdengine/data:/var/lib/taos + - ./data/tdengine/log:/var/log/taos + networks: + - iotlcm-network + healthcheck: + test: ["CMD-SHELL", "curl -sf http://127.0.0.1:6041/-/ping || exit 1"] + interval: 15s + timeout: 5s + retries: 10 + start_period: 30s + + # 建库建表:业务代码不负责建 TDengine 库表,由本服务在 tdengine 健康后执行一次 + tdengine-init: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:tdengine-3.3.6.13' + container_name: iotlcm-tdengine-init + restart: "no" + entrypoint: ["sh", "/init/run.sh"] + volumes: + - ./tdengine-init:/init:ro + depends_on: + tdengine: + condition: service_healthy + networks: + - iotlcm-network + + consul: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:consul-1.22' + container_name: iotlcm-consul + restart: always + ports: + - "8500:8500" + environment: + TZ: 'Asia/Shanghai' + CONSUL_LOCAL_CONFIG: | + { + "node_name": "iotlcm-node", + "bind_addr": "0.0.0.0", + "client_addr": "0.0.0.0", + "datacenter": "dc1", + "data_dir": "/consul/data", + "server": true, + "bootstrap_expect": 1, + "ui": true, + "connect": { "enabled": true } + } + volumes: + - ./data/consul:/consul/data + networks: + - iotlcm-network + + # ---------------- 业务服务 ---------------- + admin-svr: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-admin-svr-v1.0.4' + container_name: iotlcm-admin-svr + restart: always + ports: + - "127.0.0.1:8008:8008" + environment: + TZ: 'Asia/Shanghai' + volumes: + - ./config/admin-svr:/app/config:ro + - ./data/logs/admin-svr:/app/logs + - ./data/upload:/app/upload + - ./data/upload:/app/resource/upload + networks: + - iotlcm-network + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_healthy + rabbitmq: + condition: service_healthy + + admin-ui: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-admin-ui-v1.0.4' + container_name: iotlcm-admin-ui + restart: always + ports: + - "127.0.0.1:8009:80" + environment: + TZ: 'Asia/Shanghai' + volumes: + - ./config/admin-ui/default.conf:/etc/nginx/conf.d/default.conf:ro + - ./data/logs/admin-ui:/var/log/nginx + - ./data/upload:/app/upload + networks: + - iotlcm-network + depends_on: + - admin-svr + + openapi: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-openapi-v1.0.4' + container_name: iotlcm-openapi + restart: always + ports: + - "127.0.0.1:8000:8000" + environment: + TZ: 'Asia/Shanghai' + volumes: + - ./config/openapi:/app/config:ro + - ./data/logs/openapi:/app/logs + networks: + - iotlcm-network + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_healthy + rabbitmq: + condition: service_healthy + + upstream-chan: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-upstream-chan-v1.0.4' + container_name: iotlcm-upstream-chan + restart: always + ports: + - "8110:8110" + - "8310:8310" + environment: + TZ: 'Asia/Shanghai' + volumes: + - ./config/upstream-chan:/app/config:ro + - ./data/logs/upstream-chan:/app/logs + - ./data/upload:/app/upload + - ./data/upload:/app/resource/upload + networks: + - iotlcm-network + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_healthy + consul: + condition: service_started + + upstream-proxy: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-upstream-proxy-v1.0.4' + container_name: iotlcm-upstream-proxy + restart: always + ports: + - "8510:8510" + environment: + TZ: 'Asia/Shanghai' + volumes: + - ./config/upstream-proxy:/app/config:ro + - ./data/logs/upstream-proxy:/app/logs + - ./data/upload:/app/upload + - ./data/upload:/app/resource/upload + - ./data/tmp:/app/tmp + networks: + - iotlcm-network + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_healthy + consul: + condition: service_started + + worker-svr: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-worker-svr-v1.0.4' + container_name: iotlcm-worker-svr + restart: always + environment: + TZ: 'Asia/Shanghai' + volumes: + - ./config/worker-svr:/app/config:ro + - ./data/logs/worker-svr:/app/logs + - ./data/logs/worker-svr/full-sync:/app/logs/full-sync + - ./data/upload:/app/upload + - ./data/upload:/app/resource/upload + networks: + - iotlcm-network + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_healthy + rabbitmq: + condition: service_healthy + + app-server: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-app-server-v1.0.2' + container_name: iotlcm-app-server + restart: always + ports: + - "127.0.0.1:8010:8010" + environment: + TZ: 'Asia/Shanghai' + APP_UPLOAD_DIR: /app/resource/upload + volumes: + - ./config/app-server:/app/config:ro + - ./data/upload:/app/resource/upload + - ./data/logs/app-server:/app/resource/log/server + networks: + - iotlcm-network + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_healthy + + app-web: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-app-web-v1.0.2' + container_name: iotlcm-app-web + restart: always + ports: + - "127.0.0.1:8018:80" + environment: + TZ: 'Asia/Shanghai' + volumes: + - ./data/logs/app-web:/var/log/nginx + networks: + - iotlcm-network + + sms: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-sms-v1.0.4' + container_name: iotlcm-sms + hostname: iotlcm-sms + restart: always + environment: + TZ: 'Asia/Shanghai' + HTTP_ADDR: ':11190' + GRPC_ADDR: ':11200' + ports: + - "11190:11190" + - "11200:11200" + volumes: + - ./config/sms:/app/config:ro + - ./data/logs/sms:/app/logs + tmpfs: + - /tmp + security_opt: + - no-new-privileges:true + healthcheck: + test: ["CMD", "wget", "--quiet", "--output-document=/dev/null", "http://127.0.0.1:11190/healthz"] + interval: 10s + timeout: 3s + retries: 3 + start_period: 5s + networks: + - iotlcm-network + + bot: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-bot-v1.0.4' + container_name: iotlcm-bot + restart: unless-stopped + environment: + TZ: 'Asia/Shanghai' + command: ["watch", "--config", "/app/config/config.yaml"] + volumes: + - ./config/bot/config.yaml:/app/config/config.yaml:ro + - ./data/logs/worker-svr/full-sync:/data/full-sync:ro + - ./data/bot-state:/data/state + networks: + - iotlcm-network + profiles: + - with-bot + + docs: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-docs-v1.0.4' + container_name: iotlcm-docs + restart: unless-stopped + ports: + - "127.0.0.1:8019:80" + networks: + - iotlcm-network + + # ---------------- 可选:运营商接口挡板 ---------------- + # 模拟中国移动 OneLink 接口,用于在没有真实运营商环境时联调整条链路: + # admin-svr → worker-svr → upstream-chan → onelink-mock + # + # 启用:docker compose --profile with-mock up -d + # 启用后 upstream-chan 的 sim_yd_mock_v5.url 指向 http://onelink-mock:8080/v5/ + # (config/upstream-chan 已预置该地址) + onelink-mock: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-onelink-mock-v1.0.4' + container_name: iotlcm-onelink-mock + restart: unless-stopped + ports: + - "127.0.0.1:8080:8080" + environment: + TZ: 'Asia/Shanghai' + BAFFLE_ADDR: ':8080' + BAFFLE_SQLITE_PATH: /app/data/onelink_mock.db + volumes: + - ./data/mock:/app/data + - ./data/logs/mock:/app/logs + networks: + - iotlcm-network + healthcheck: + test: ["CMD", "wget", "--quiet", "--output-document=/dev/null", "http://127.0.0.1:8080/api.json"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 10s + profiles: + - with-mock + + # ---------------- 可选:反向代理 ---------------- + # 若宿主机已有 nginx / 面板,可不启动本容器, + # 参考 config/nginx/iotlcm.conf 把 location 段落到宿主机配置。 + nginx: + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:nginx-1.30' + container_name: iotlcm-nginx + restart: always + ports: + - "80:80" + volumes: + - ./config/nginx:/etc/nginx/conf.d:ro + - ./data/logs/nginx:/var/log/nginx + - ./data/upload:/app/upload + networks: + - iotlcm-network + depends_on: + - admin-ui + - openapi + - app-web + - docs + profiles: + - with-nginx + +networks: + iotlcm-network: + driver: bridge + name: iotlcm-network diff --git a/deploy/schema/README.md b/deploy/schema/README.md new file mode 100644 index 0000000..1882826 --- /dev/null +++ b/deploy/schema/README.md @@ -0,0 +1,74 @@ +# 数据库初始化 + +`init.sql` 是**单文件**初始化脚本,MySQL 容器首次以空数据卷启动时由 `docker-entrypoint-initdb.d` 自动执行。已有数据目录不会自动执行新增 DDL,升级时需先核对四张表状态,再按上游迁移规范处理,不能删除数据卷。 + +## 内容组成 + +按文件内顺序执行,整体幂等: + +| 段 | 内容 | +| --- | --- | +| 表结构与基础数据 | 建 `db_iotlcm` 库 + 全部表 + 菜单/字典/角色/租户/部门/演示账号 | +| 结构补齐 | `card_channel_assoc` 表 + 27 个列(用存储过程按 `information_schema` 判断) | +| 结构对齐生产 | `t_sms_template_config` 表、`batch_no` 默认值 | +| 通道模板 | 3 条(上游密钥已置空) | +| 数据字典 | 86 类 / 436 条 | +| Mock 通道 | `channel_yd_mock`。**卡全部挂在该通道上**,缺则卡片管理的通道列、筛选、开停复机均不可用 | +| 角色链 | 代理下发模板参数与角色下发标记 | +| 定时任务 | 20 条,**默认全部停用**(避免自动全量同步打满机器) | +| 菜单增量 | 达量断网按钮权限、全量同步页 | +| v1.0.4 前置 | 导出中心表 `t_export_task`、通知已读表 `sys_notice_user`、`card_channel_assoc.channel_id` 扩宽、菜单权限 | +| APN 异步恢复 | `data_operation_parent`、`data_operation_sub_batch`、`data_operation_sub_detail`、`data_operation_card_claim` 四表;须先建表后启动 worker | +| 数据修复 | `sys_dept.ancestors` 尾逗号归一化(全新库为空操作) | +| 业务账号与口令 | 建 `u_iotlcm` 账号、可选库 `iotdb`、种子账号口令统一重置 | + +## 来源 + +内容取自**演示环境正在使用的种子库**,以生产 89 表基线为基础,补齐 v1.0.4 的 2 张表及 worker 异步恢复所需的 4 张表,初始化后为 **95 表**。四张恢复表直接采用内部数据库仓 `feat/data-operation-reconcile-20261015` 的 `SQL/20261015_data_operation_sub_batch.sql`(提交 `bf5f7fd`);原有 91 表统计不含这四张表。脱敏及部署适配包括: + +- 演示账号昵称、邮箱、手机号、登录 IP、头像 → 占位或编造值 +- 公司名、组织名 → 「示例企业」等通用名 +- 内网/生产 IP、内部域名 → 删除或改为服务名 +- 通道模板中真实上游密钥 → 置空 +- 数据库账号与种子账号口令 → 统一为部署口令(字面值,见下) + +## 改口令 + +口令是**字面值**,不使用环境变量。修改时必须同步以下三处: + +| 位置 | 内容 | +| --- | --- | +| `docker-compose.yml` | `MYSQL_ROOT_PASSWORD`(MySQL 健康检查会引用此值) | +| `config/*/config.yaml` | 各服务 `database link` 的口令 | +| `schema/init.sql` 末段 | `u_iotlcm` 账号口令、种子账号重置口令 | + +```bash +OLD='原口令'; NEW='新口令' +grep -rl "$OLD" docker-compose.yml config/ schema/ | xargs sed -i "s/$OLD/$NEW/g" +``` + +::: warning 口令不能含 @ : / 等字符 +连接串格式为 `mysql:用户:口令` 再接 `tcp(主机:端口)/库`,口令里的 `@`、`:`、`/` 会被当作分隔符,导致连接失败。用字母数字组合。 +::: + +## 重新初始化 + +`init.sql` 只在 `data/mysql` 为空时执行。改完必须清空数据卷才会重跑: + +```bash +docker compose stop mysql +sudo rm -rf ./data/mysql +docker compose up -d mysql +``` + +> ⚠️ 会删除全部数据,生产环境禁止执行。 + +## 空表说明 + +以下表为空属预期: + +| 表 | 说明 | +| --- | --- | +| `t_sim_flow_package_info` | 流量套餐。为空时无法办理套餐/续费/改套餐,需在管理端「套餐定价」中创建 | +| `t_sim_card` | 卡数据,可通过挡板服务造卡或自行入库 | +| 其余 `t_*` 业务表 | 随业务操作产生数据 | diff --git a/deploy/schema/init.sql b/deploy/schema/init.sql new file mode 100644 index 0000000..f56d425 --- /dev/null +++ b/deploy/schema/init.sql @@ -0,0 +1,5482 @@ +-- ============================================================ +-- IotLCM 数据库初始化(单文件) +-- +-- 由 MySQL 容器 docker-entrypoint-initdb.d 在首次以空数据卷启动时执行。 +-- 内容取自演示环境正在使用的种子库,结构已与生产核对(89 表 / 1703 列)。 +-- 执行顺序即文件内顺序,整体幂等,可重复执行。 +-- +-- 改本文件后须清空数据卷才会重跑: +-- docker compose stop mysql && sudo rm -rf ./data/mysql && docker compose up -d mysql +-- ============================================================ + +SET NAMES utf8mb4; + + +-- ============================================================ +-- 表结构与基础数据 +-- ============================================================ + +-- ============================================ +-- db_iotlcm 数据库初始化脚本(清理版) +-- 来源: db_iotlcm_init.sql (mysqldump 导版本) +-- 清理内容: +-- 1. 主键 ID 按插入顺序重排为 1,2,3,...(同步更新外键引用) +-- 2. 部门树压平至 3 级,按 客户/代理/部门 角色重命名 +-- 3. 移除 mysqldump 的 LOCK TABLES / UNLOCK TABLES / DISABLE KEYS / ENABLE KEYS 噪音 +-- 4. 移除 session 变量的 @OLD_* 保存/恢复包装 +-- 5. INSERT 语句改为每行一条记录 +-- 注意: 本脚本不修改业务语义。 +-- t_division_code: 仅导出 region_level IN (1,2) 省/市级 +-- ============================================ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +DROP DATABASE IF EXISTS `db_iotlcm`; +CREATE DATABASE `db_iotlcm` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +USE `db_iotlcm`; + +DROP TABLE IF EXISTS `batch_detail`; +CREATE TABLE `batch_detail` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '批次编号', + `batch_type` int NOT NULL COMMENT '批次类型 枚举(与主表一致)', + `detail_status` tinyint NOT NULL COMMENT '明细异步处理状态 0-待处理 1-处理中 2-成功 3-失败', + `blank_out_status` tinyint NOT NULL COMMENT '作废状态 0-是 1-否', + `row_no` int NOT NULL COMMENT '行号', + `item_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '项ID:卡ICCID/设备编码', + `error_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '异常编码', + `error_reason` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '异常原因', + `snapshot` json DEFAULT NULL COMMENT '信息快照', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_batch_type_row_no` (`batch_no`,`batch_type`,`row_no`), + KEY `idx_batch_type` (`batch_type`), + KEY `idx_detail_status` (`detail_status`), + KEY `idx_error_code` (`error_code`), + KEY `idx_tenant_id` (`tenant_id`), + KEY `idx_batch_type_item_id` (`batch_no`,`batch_type`,`item_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1719 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='批次明细表'; + +DROP TABLE IF EXISTS `batch_main`; +CREATE TABLE `batch_main` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '批次编号', + `order_sn` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '订单编号', + `batch_type` int NOT NULL COMMENT '批次类型 枚举', + `batch_status` tinyint NOT NULL DEFAULT '0' COMMENT '批次状态 枚举', + `batch_async_status` tinyint NOT NULL DEFAULT '0' COMMENT '异步处理状态 0=已创建 1=待处理 2=处理中 3=成功 4=失败 5=部分成功', + `source_type` tinyint DEFAULT NULL COMMENT '来源方式 枚举', + `source_batch_no` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '来源批次编号', + `source_oss_id` bigint DEFAULT NULL COMMENT '源文件OSS ID', + `result_oss_id` bigint DEFAULT NULL COMMENT '结果文件OSS ID', + `is_cross_dept` tinyint NOT NULL DEFAULT '0' COMMENT '是否跨级操作机构 0-否 1-是', + `target_dept_id` bigint DEFAULT NULL COMMENT '目标机构编号', + `dept_id` bigint DEFAULT NULL COMMENT '机构编号', + `total_count` int NOT NULL DEFAULT '0' COMMENT '总数量', + `valid_count` int NOT NULL DEFAULT '0' COMMENT '有效数量', + `success_count` int NOT NULL DEFAULT '0' COMMENT '成功数量', + `fail_count` int NOT NULL DEFAULT '0' COMMENT '失败数量', + `run_result` tinyint DEFAULT NULL COMMENT '运行结果:0-待运行 1-运行中 2-成功 3-失败', + `fail_reason` text COLLATE utf8mb4_general_ci COMMENT '失败原因', + `batch_info` json DEFAULT NULL COMMENT '批次信息:入库/出库展示字段', + `remark` json DEFAULT NULL COMMENT '备注扩展字段', + `start_time` datetime DEFAULT NULL COMMENT '开始时间', + `end_time` datetime DEFAULT NULL COMMENT '结束时间', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_batch_no` (`batch_no`), + KEY `idx_batch_type` (`batch_type`), + KEY `idx_batch_status` (`batch_status`), + KEY `idx_source_batch_no` (`source_batch_no`), + KEY `idx_dept_id` (`dept_id`), + KEY `idx_target_dept_id` (`target_dept_id`), + KEY `idx_tenant_id` (`tenant_id`), + KEY `idx_created_at` (`created_at`), + KEY `idx_batch_async_status` (`batch_async_status`) +) ENGINE=InnoDB AUTO_INCREMENT=855 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='批次主表'; + +DROP TABLE IF EXISTS `gen_table`; +CREATE TABLE `gen_table` ( + `table_id` bigint NOT NULL COMMENT '编号', + `data_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '数据源名称', + `table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '表名称', + `table_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '表描述', + `sub_table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '关联子表的表名', + `sub_table_fk_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '子表关联的外键名', + `class_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '实体类名称', + `tpl_category` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)', + `package_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '生成包路径', + `module_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '生成模块名', + `business_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '生成业务名', + `function_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '生成功能名', + `function_author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '生成功能作者', + `gen_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)', + `gen_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '/' COMMENT '生成路径(不填默认项目路径)', + `options` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '其它生成选项', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`table_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成业务表'; + +DROP TABLE IF EXISTS `gen_table_column`; +CREATE TABLE `gen_table_column` ( + `column_id` bigint NOT NULL COMMENT '编号', + `table_id` bigint DEFAULT NULL COMMENT '归属表编号', + `column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '列名称', + `column_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '列描述', + `column_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '列类型', + `java_type` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'JAVA类型', + `java_field` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'JAVA字段名', + `is_pk` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '是否主键(1是)', + `is_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '是否自增(1是)', + `is_required` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '是否必填(1是)', + `is_insert` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '是否为插入字段(1是)', + `is_edit` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '是否编辑字段(1是)', + `is_list` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '是否列表字段(1是)', + `is_query` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '是否查询字段(1是)', + `query_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)', + `html_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)', + `dict_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '字典类型', + `sort` int DEFAULT NULL COMMENT '排序', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`column_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成业务表字段'; + +DROP TABLE IF EXISTS `sys_client`; +CREATE TABLE `sys_client` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `client_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户端id', + `client_key` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户端key', + `client_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户端秘钥', + `grant_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '授权类型', + `device_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '设备类型', + `active_timeout` int DEFAULT '1800' COMMENT 'token活跃超时时间', + `timeout` int DEFAULT '604800' COMMENT 'token固定超时', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '状态(0正常 1停用)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统授权表'; + +DROP TABLE IF EXISTS `sys_config`; +CREATE TABLE `sys_config` ( + `config_id` bigint NOT NULL AUTO_INCREMENT COMMENT '参数主键', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `config_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '参数名称', + `config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '参数键名', + `config_value` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '参数键值', + `config_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'N' COMMENT '系统内置(Y是 N否)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`config_id`) +) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='参数配置表'; + +DROP TABLE IF EXISTS `sys_dept`; +CREATE TABLE `sys_dept` ( + `dept_id` bigint NOT NULL AUTO_INCREMENT COMMENT '部门id', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `parent_id` bigint DEFAULT '0' COMMENT '父部门id', + `ancestors` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '祖级列表', + `dept_key` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '机构编号', + `dept_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '部门名称', + `dept_type` tinyint(1) DEFAULT '0' COMMENT '部门类型(0:部门 1:公司)', + `dept_category` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '部门类别编码', + `order_num` int DEFAULT '0' COMMENT '显示顺序', + `leader` bigint DEFAULT NULL COMMENT '负责人', + `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系电话', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮箱', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '部门状态(0正常 1停用)', + `credit_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '统一社会信用代码', + `area_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '行政区域代码', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '地址', + `dept_role` bigint DEFAULT NULL COMMENT '机构默认角色ID', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`dept_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=171 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门表'; + +DROP TABLE IF EXISTS `sys_dict_data`; +CREATE TABLE `sys_dict_data` ( + `dict_code` bigint NOT NULL AUTO_INCREMENT COMMENT '字典编码', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `dict_sort` int DEFAULT '0' COMMENT '字典排序', + `dict_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '字典标签', + `dict_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '字典键值', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '字典类型', + `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '样式属性(其他样式扩展)', + `list_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '表格回显样式', + `is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'N' COMMENT '是否默认(Y是 N否)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`dict_code`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=495 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='字典数据表'; + +DROP TABLE IF EXISTS `sys_dict_type`; +CREATE TABLE `sys_dict_type` ( + `dict_id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '字典名称', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '字典类型', + `is_sys` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '是否系统(0是 1否)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`dict_id`) USING BTREE, + UNIQUE KEY `tenant_id` (`tenant_id`,`dict_type`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='字典类型表'; + +DROP TABLE IF EXISTS `sys_gen_table`; +CREATE TABLE `sys_gen_table` ( + `table_id` bigint NOT NULL AUTO_INCREMENT COMMENT '生成ID', + `gen_type` int unsigned NOT NULL COMMENT '生成类型', + `gen_template` int DEFAULT '0' COMMENT '生成模板', + `var_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '实体命名', + `options` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '配置选项', + `db_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '数据库名称', + `table_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主表名称', + `table_comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '主表注释', + `dao_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '主表dao模型', + `master_columns` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '主表字段', + `addon_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '插件名称', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '生成状态(0成功 1未开始)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`table_id`), + CONSTRAINT `sys_gen_table_chk_1` CHECK (json_valid(`options`)), + CONSTRAINT `sys_gen_table_chk_2` CHECK (json_valid(`master_columns`)) +) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成业务表'; + +DROP TABLE IF EXISTS `sys_job`; +CREATE TABLE `sys_job` ( + `job_id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID', + `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '任务名称', + `job_params` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '参数', + `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'DEFAULT' COMMENT '任务组名', + `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调用目标字符串', + `cron_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'cron执行表达式', + `misfire_policy` tinyint DEFAULT '1' COMMENT '计划执行策略(1多次执行 2执行一次)', + `concurrent` tinyint DEFAULT '1' COMMENT '是否并发执行(0允许 1禁止)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '状态(0正常 1暂停)', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注信息', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`job_id`,`job_name`,`job_group`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='定时任务调度表'; + +DROP TABLE IF EXISTS `sys_logininfor`; +CREATE TABLE `sys_logininfor` ( + `info_id` bigint NOT NULL AUTO_INCREMENT COMMENT '访问ID', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户账号', + `client_key` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '客户端', + `device_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '设备类型', + `ipaddr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '登录IP地址', + `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '登录地点', + `browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '浏览器类型', + `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '操作系统', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '登录状态(0成功 1失败)', + `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '提示消息', + `login_time` datetime DEFAULT NULL COMMENT '访问时间', + PRIMARY KEY (`info_id`), + KEY `idx_sys_logininfor_s` (`status`), + KEY `idx_sys_logininfor_lt` (`login_time`) +) ENGINE=InnoDB AUTO_INCREMENT=671 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统访问记录'; + +DROP TABLE IF EXISTS `sys_menu`; +CREATE TABLE `sys_menu` ( + `menu_id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID', + `menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称', + `parent_id` bigint DEFAULT '0' COMMENT '父菜单ID', + `level` int DEFAULT '1' COMMENT '关系树等级', + `tree` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '关系树', + `order_num` int DEFAULT '0' COMMENT '显示顺序', + `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '路由地址', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '组件路径', + `query_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '路由参数', + `is_frame` int DEFAULT '1' COMMENT '是否为外链(0是 1否)', + `is_cache` int DEFAULT '0' COMMENT '是否缓存(0缓存 1不缓存)', + `menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)', + `visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '显示状态(0显示 1隐藏)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '菜单状态(0正常 1停用)', + `perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '权限标识', + `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '#' COMMENT '菜单图标', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注', + PRIMARY KEY (`menu_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=2115 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='菜单权限表'; + +DROP TABLE IF EXISTS `sys_notice`; +CREATE TABLE `sys_notice` ( + `notice_id` bigint NOT NULL AUTO_INCREMENT COMMENT '公告ID', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `notice_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告标题', + `notice_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告类型(1通知 2公告)', + `notice_content` longblob COMMENT '公告内容', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', + `notice_range` tinyint(1) NOT NULL DEFAULT '1' COMMENT '通知范围(1全员 2指定机构 3指定用户)', + `dept_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '通知机构ID列表JSON', + `user_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '通知用户ID列表JSON', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`notice_id`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='通知公告表'; + +DROP TABLE IF EXISTS `sys_oper_log`; +CREATE TABLE `sys_oper_log` ( + `oper_id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '模块标题', + `business_type` int DEFAULT '0' COMMENT '业务类型(0其它 1新增 2修改 3删除)', + `method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '方法名称', + `request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '请求方式', + `operator_type` int DEFAULT '0' COMMENT '操作类别(0其它 1后台用户 2手机端用户)', + `oper_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '操作人员', + `dept_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '部门名称', + `oper_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '请求URL', + `oper_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '主机地址', + `oper_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '操作地点', + `oper_param` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '请求参数', + `json_result` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '返回参数', + `status` int DEFAULT '0' COMMENT '操作状态(0正常 1异常)', + `error_msg` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '错误消息', + `oper_time` datetime DEFAULT NULL COMMENT '操作时间', + `cost_time` bigint DEFAULT '0' COMMENT '消耗时间', + PRIMARY KEY (`oper_id`), + KEY `idx_sys_oper_log_bt` (`business_type`), + KEY `idx_sys_oper_log_s` (`status`), + KEY `idx_sys_oper_log_ot` (`oper_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='操作日志记录'; + +DROP TABLE IF EXISTS `sys_oss`; +CREATE TABLE `sys_oss` ( + `oss_id` bigint NOT NULL AUTO_INCREMENT COMMENT '对象存储主键', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文件名', + `original_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '原名', + `file_suffix` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文件后缀名', + `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '存储路径', + `url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'URL地址', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `service` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'minio' COMMENT '服务商', + `md5` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件MD5', + `file_size` int DEFAULT NULL COMMENT '文件大小', + `file_crc16` int DEFAULT NULL COMMENT '文件Crc16', + `file_sum` int DEFAULT NULL COMMENT '文件校验和', + PRIMARY KEY (`oss_id`) +) ENGINE=InnoDB AUTO_INCREMENT=861 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='OSS对象存储表'; + +DROP TABLE IF EXISTS `sys_oss_config`; +CREATE TABLE `sys_oss_config` ( + `oss_config_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `config_key` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '配置key', + `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'accessKey', + `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '秘钥', + `bucket_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '桶名称', + `prefix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '前缀', + `endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '访问站点', + `domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '自定义域名', + `is_https` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'N' COMMENT '是否https(Y=是,N=否)', + `region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '域', + `access_policy` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '桶权限类型(0=private 1=public 2=custom)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '是否默认(0=是,1=否)', + `ext1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '扩展字段', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`oss_config_id`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='对象存储配置表'; + +DROP TABLE IF EXISTS `sys_post`; +CREATE TABLE `sys_post` ( + `post_id` bigint NOT NULL AUTO_INCREMENT COMMENT '岗位ID', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `dept_id` bigint NOT NULL COMMENT '部门id', + `post_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位编码', + `post_category` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '岗位类别编码', + `post_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位名称', + `post_sort` int NOT NULL COMMENT '显示顺序', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态(0正常 1停用)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`post_id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='岗位信息表'; + +DROP TABLE IF EXISTS `sys_role`; +CREATE TABLE `sys_role` ( + `role_id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `dept_id` bigint NOT NULL DEFAULT '0' COMMENT '部门机构id', + `role_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色名称', + `role_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色权限字符串', + `role_sort` int NOT NULL COMMENT '显示顺序', + `data_scope` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:仅本人数据权限 7:本组织及下一级数据权限 ', + `menu_check_strictly` tinyint(1) DEFAULT '1' COMMENT '菜单树选择项是否关联显示', + `dept_check_strictly` tinyint(1) DEFAULT '1' COMMENT '部门树选择项是否关联显示', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色状态(0正常 1停用)', + `is_pass` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否传递数据权限(0:传递 1:不传递)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`role_id`) +) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色信息表'; + +DROP TABLE IF EXISTS `sys_role_dept`; +CREATE TABLE `sys_role_dept` ( + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '000000' COMMENT '租户编号', + `role_id` bigint NOT NULL COMMENT '角色ID', + `dept_id` bigint NOT NULL COMMENT '部门ID', + PRIMARY KEY (`tenant_id`,`role_id`,`dept_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色和部门关联表'; + +DROP TABLE IF EXISTS `sys_role_menu`; +CREATE TABLE `sys_role_menu` ( + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '000000' COMMENT '租户编号', + `role_id` bigint NOT NULL COMMENT '角色ID', + `menu_id` bigint NOT NULL COMMENT '菜单ID', + `data_scope` char(1) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '数据范围(0按角色数据权限 1全部数据权限 3本部门数据权限 4本部门及以下数据权限 5仅本人数据权限 6本部门及以下或本人数据权限 7本组织及本组织下一级数据权限 8本组织下一级数据权限)', + PRIMARY KEY (`tenant_id`,`role_id`,`menu_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色和菜单关联表'; + +DROP TABLE IF EXISTS `sys_social`; +CREATE TABLE `sys_social` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `user_id` bigint NOT NULL COMMENT '用户ID', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户id', + `auth_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '平台+平台唯一id', + `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户来源', + `open_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '平台编号唯一id', + `user_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录账号', + `nick_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户昵称', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户邮箱', + `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '头像地址', + `access_token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户的授权令牌', + `expire_in` int DEFAULT NULL COMMENT '用户的授权令牌的有效期,部分平台可能没有', + `refresh_token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '刷新令牌,部分平台可能没有', + `access_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '平台的授权信息,部分平台可能没有', + `union_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户的 unionid', + `scope` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '授予的权限,部分平台可能没有', + `token_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '个别平台的授权信息,部分平台可能没有', + `id_token` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'id token,部分平台可能没有', + `mac_algorithm` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '小米平台用户的附带属性,部分平台可能没有', + `mac_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '小米平台用户的附带属性,部分平台可能没有', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户的授权code,部分平台可能没有', + `oauth_token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'Twitter平台用户的附带属性,部分平台可能没有', + `oauth_token_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'Twitter平台用户的附带属性,部分平台可能没有', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='社会化关系表'; + +DROP TABLE IF EXISTS `sys_tenant`; +CREATE TABLE `sys_tenant` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户编号', + `contact_user_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系人', + `contact_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系电话', + `company_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '企业名称', + `license_number` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '统一社会信用代码', + `address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '地址', + `intro` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '企业简介', + `domain` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '域名', + `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `package_id` bigint DEFAULT NULL COMMENT '租户套餐编号', + `admin_role_id` bigint DEFAULT NULL COMMENT '管理员角色ID', + `admin_dept_id` bigint DEFAULT NULL COMMENT '管理员部门ID', + `admin_user_id` bigint DEFAULT NULL COMMENT '管理员用户ID', + `expire_time` datetime DEFAULT NULL COMMENT '过期时间', + `account_count` int DEFAULT '-1' COMMENT '用户数量(-1不限制)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '租户状态(0正常 1停用)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='租户表'; + +DROP TABLE IF EXISTS `sys_tenant_package`; +CREATE TABLE `sys_tenant_package` ( + `package_id` bigint NOT NULL AUTO_INCREMENT COMMENT '租户套餐id', + `package_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '套餐名称', + `menu_ids` varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '关联菜单id', + `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `menu_check_strictly` tinyint(1) DEFAULT '1' COMMENT '菜单树选择项是否关联显示', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '状态(0正常 1停用)', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`package_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='租户套餐表'; + +DROP TABLE IF EXISTS `sys_user`; +CREATE TABLE `sys_user` ( + `user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `dept_id` bigint DEFAULT NULL COMMENT '部门ID', + `user_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户账号', + `nick_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户昵称', + `user_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'sys_user' COMMENT '用户类型(sys_user系统用户)', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户邮箱', + `phonenumber` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '手机号码', + `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '头像地址', + `salt` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '加密盐', + `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '密码', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', + `login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '最后登录IP', + `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', + `mfa_enabled` tinyint(1) DEFAULT NULL COMMENT '是否开启邮箱MFA 0否 1是', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`user_id`), + UNIQUE KEY `uk_user_name` (`tenant_id`,`user_name`) +) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户信息表'; + +DROP TABLE IF EXISTS `sys_user_online`; +CREATE TABLE `sys_user_online` ( + `online_id` bigint NOT NULL AUTO_INCREMENT COMMENT '访问ID', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `uuid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UUID', + `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户账号', + `client_key` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '客户端', + `device_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '设备类型', + `ipaddr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '登录IP地址', + `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '登录地点', + `browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '浏览器类型', + `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '操作系统', + `token` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'Token', + `login_time` datetime DEFAULT NULL COMMENT '访问时间', + `expire_time` datetime DEFAULT NULL COMMENT '过期时间', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`online_id`) +) ENGINE=InnoDB AUTO_INCREMENT=671 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户在线列表'; + +DROP TABLE IF EXISTS `sys_user_post`; +CREATE TABLE `sys_user_post` ( + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '000000' COMMENT '租户编号', + `user_id` bigint NOT NULL COMMENT '用户ID', + `post_id` bigint NOT NULL COMMENT '岗位ID', + PRIMARY KEY (`tenant_id`,`user_id`,`post_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户与岗位关联表'; + +DROP TABLE IF EXISTS `sys_user_role`; +CREATE TABLE `sys_user_role` ( + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '000000' COMMENT '租户编号', + `user_id` bigint NOT NULL COMMENT '用户ID', + `role_id` bigint NOT NULL COMMENT '角色ID', + PRIMARY KEY (`tenant_id`,`user_id`,`role_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户和角色关联表'; + +DROP TABLE IF EXISTS `t_agent_balance`; +CREATE TABLE `t_agent_balance` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '账户ID', + `dept_id` bigint NOT NULL COMMENT '机构ID', + `balance` decimal(15,2) DEFAULT '0.00' COMMENT '账户余额', + `withdraw_amount` decimal(15,2) DEFAULT '0.00' COMMENT '可提现金额', + `withdraw_amount_status` tinyint(1) DEFAULT '1' COMMENT '可提现金额状态: 0-正常,1-冻结', + `invoice_amount` decimal(15,2) DEFAULT '0.00' COMMENT '已开票金额', + `can_invoice_amount` decimal(15,2) DEFAULT '0.00' COMMENT '可开票金额', + `credit_limit` decimal(15,2) DEFAULT '0.00' COMMENT '信用额度', + `used_credit` decimal(15,2) DEFAULT '0.00' COMMENT '已使用信用额度', + `pending_repayment` decimal(15,2) DEFAULT '0.00' COMMENT '待还款金额', + `status` tinyint(1) DEFAULT '1' COMMENT '状态: 0-正常, 1-禁用', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_customer_status` (`status`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='企业客户财务信息'; + +DROP TABLE IF EXISTS `t_agent_enterprise`; +CREATE TABLE `t_agent_enterprise` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `dept_id` bigint NOT NULL COMMENT '部门机构id', + `full_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '单位全称', + `industry` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '行业', + `legal_person_name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '法人名称', + `legal_person_id_card` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '法人身份证号', + `company_type` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '单位类型', + `establish_time` date DEFAULT NULL COMMENT '单位成立时间', + `bank_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开户行名称', + `bank_account` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开户行账号', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_legal_id_card` (`legal_person_id_card`), + KEY `idx_dept_id` (`dept_id`), + KEY `idx_company_type` (`company_type`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='企业客户单位信息'; + +DROP TABLE IF EXISTS `t_api`; +CREATE TABLE `t_api` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', + `app_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'APPKey', + `app_secret` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'APPSecret', + `rate_limit_period` int NOT NULL COMMENT '限流周期(秒,0:不限流)', + `rate_limit_count` int NOT NULL COMMENT '限流次数', + `dept_id` bigint NOT NULL COMMENT '所属机构', + `group_id` bigint DEFAULT NULL COMMENT '开放接口权限组ID', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态:0启用,1停用', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `app_key` (`app_key`), + KEY `tenant_id` (`tenant_id`), + KEY `idx_t_api_group_id` (`group_id`) USING BTREE, + KEY `idx_t_api_status` (`status`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='API集成'; + +DROP TABLE IF EXISTS `t_api_group`; +CREATE TABLE `t_api_group` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `group_name` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '权限组名称', + `group_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '权限组编码', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态:0启用,1停用', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_api_group_code` (`tenant_id`,`group_code`) USING BTREE, + KEY `idx_api_group_status` (`status`) USING BTREE, + KEY `idx_api_group_tenant_id` (`tenant_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='开放接口权限组表'; + +DROP TABLE IF EXISTS `t_api_group_resource`; +CREATE TABLE `t_api_group_resource` ( + `group_id` bigint NOT NULL COMMENT '权限组ID,对应t_api_group.id', + `api_id` bigint NOT NULL COMMENT '开放接口资源ID,对应t_api_resource.id', + PRIMARY KEY (`group_id`,`api_id`) USING BTREE, + KEY `idx_api_group_resource_api_id` (`api_id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='开放接口权限组资源关联表'; + +DROP TABLE IF EXISTS `t_api_resource`; +CREATE TABLE `t_api_resource` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `api_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '接口名称', + `api_code` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '接口权限标识', + `method` tinyint NOT NULL COMMENT '请求方法:1:POST,2:PUT,3:DELETE,4:GET', + `path` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '接口路径', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态:0启用,1停用', + `version` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '接口版本', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_api_resource_code` (`api_code`) USING BTREE, + UNIQUE KEY `uk_api_resource_method_path` (`method`,`path`) USING BTREE, + KEY `idx_api_resource_status` (`status`) USING BTREE, + KEY `idx_api_resource_tenant_id` (`tenant_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='开放接口资源表'; + +DROP TABLE IF EXISTS `t_balance_detail`; +CREATE TABLE `t_balance_detail` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '明细ID', + `dept_id` bigint NOT NULL COMMENT '账户ID', + `serial_no` varchar(64) NOT NULL COMMENT '流水号', + `transaction_time` datetime NOT NULL COMMENT '交易时间', + `income_expense_type` tinyint(1) NOT NULL COMMENT '收支类型: 0收入,1支出', + `transaction_type` tinyint(1) NOT NULL COMMENT '交易类型:0充值 1消费 2转可提现 3可提现转入 4人工调整', + `transaction_channel` tinyint(1) DEFAULT NULL COMMENT '交易渠道:1支付宝 2微信 3可提现金额', + `transaction_status` tinyint DEFAULT '1' COMMENT '交易状态:0待支付、1已支付、2已过期、3交易失败', + `amount` decimal(15,2) NOT NULL COMMENT '交易金额', + `before_balance` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '变动前余额', + `balance_after` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '变动后余额', + `channel_serial_no` varchar(100) DEFAULT NULL COMMENT '交易渠道流水号', + `order_sn` varchar(100) DEFAULT NULL COMMENT '关联订单号', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_transaction_type` (`transaction_type`), + KEY `idx_created_at` (`created_at`), + KEY `idx_serial_no` (`serial_no`) +) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='余额明细表'; + +DROP TABLE IF EXISTS `t_brand`; +CREATE TABLE `t_brand` ( + `brand_id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id号', + `brand_name` varchar(60) NOT NULL DEFAULT '' COMMENT '品牌名称', + `brand_logo` varchar(120) DEFAULT '' COMMENT '上传的该公司Logo图片', + `brand_desc` text COMMENT '品牌描述', + `site_url` varchar(255) NOT NULL DEFAULT '' COMMENT '品牌的网址', + `sort_order` tinyint unsigned NOT NULL DEFAULT '50' COMMENT '品牌在前台页面的显示顺序,数字越大越靠后', + `is_show` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '该品牌是否显示 枚举', + `brand_type` varchar(80) DEFAULT '' COMMENT '品牌分类', + `brand_is_hot` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否热销品牌 枚举:yesno_enum', + `first_word` varchar(11) DEFAULT '' COMMENT '首字母', + `brand_en_name` varchar(80) DEFAULT '' COMMENT '品牌英文名', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 枚举sys_status', + `tenant_id` varchar(20) NOT NULL, + `created_dept` bigint NOT NULL, + `created_by` bigint NOT NULL, + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_by` bigint DEFAULT NULL, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`brand_id`) USING BTREE, + KEY `is_show` (`is_show`) USING BTREE, + KEY `first_word` (`first_word`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='商品品牌表'; + +DROP TABLE IF EXISTS `t_category`; +CREATE TABLE `t_category` ( + `category_id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类ID', + `category_name` varchar(90) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '分类名称', + `short_name` varchar(80) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '分类短名', + `level` tinyint NOT NULL DEFAULT '1' COMMENT '层级深度:1-一级 2-二级 3-三级...', + `keywords` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '分类关键字(搜索用)', + `search_keywords` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '搜索关键字', + `category_desc` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '分类描述', + `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父分类ID(0=顶级分类)', + `sort_order` smallint unsigned NOT NULL DEFAULT '50' COMMENT '排序序号(数字越大越靠后)', + `measure_unit` varchar(15) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '计量单位', + `is_show` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '是否前台显示 枚举', + `is_hot` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否热门 枚举:yesno_enum', + `seo_title` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'SEO标题', + `category_pic` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '分类图片', + `category_ico` varchar(80) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '分类图标', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`category_id`), + KEY `idx_parent_id` (`parent_id`), + KEY `idx_is_show` (`is_show`), + KEY `idx_sort_order` (`sort_order`), + KEY `idx_is_hot` (`is_hot`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='商品分类表'; + +DROP TABLE IF EXISTS `t_consume_account_month_bill`; +CREATE TABLE `t_consume_account_month_bill` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '账单ID', + `dept_id` bigint NOT NULL COMMENT '机构ID', + `account_period` varchar(7) COLLATE utf8mb4_general_ci NOT NULL COMMENT '账期YYYY-MM', + `opening_balance` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '月初余额', + `recharge_income` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '充值收入', + `withdrawable_transfer_in_income` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '可提现转入收入', + `manual_adjust_income` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '人工调账收入', + `refund_income` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '退款收入', + `consume_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '平台消费支出', + `balance_transfer_out_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '转可提现支出', + `manual_adjust_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '人工调账支出', + `consume_credit_repay_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '消费账户还款支出', + `total_income` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '本月收入总额', + `total_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '本月支出总额', + `closing_balance` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '月末余额(月初余额+本月收入-本月支出)', + `income_count` int NOT NULL DEFAULT '0' COMMENT '收入笔数', + `expense_count` int NOT NULL DEFAULT '0' COMMENT '支出笔数', + `credit_used` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '本月使用信用额度', + `credit_repaid` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '本月还款信用额度', + `bill_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '账单状态:1正常,2已调整,3已作废', + `settle_time` datetime DEFAULT NULL COMMENT '结算时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_bill_consume_dept_period` (`dept_id`,`account_period`), + KEY `idx_bill_consume_period` (`account_period`), + KEY `idx_bill_consume_dept` (`dept_id`), + KEY `idx_bill_consume_status` (`bill_status`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='消费账户月账单表'; + +DROP TABLE IF EXISTS `t_credit_detail`; +CREATE TABLE `t_credit_detail` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '明细ID', + `dept_id` bigint NOT NULL COMMENT '组织机构ID', + `account_period` varchar(7) NOT NULL COMMENT '账期(YYYY-MM)', + `transaction_type` varchar(50) NOT NULL COMMENT '交易类型: 使用/还款', + `amount` decimal(15,2) NOT NULL COMMENT '金额', + `credit_balance_before` decimal(18,2) DEFAULT NULL COMMENT '变动前信用额度余额', + `credit_balance_after` decimal(18,2) DEFAULT NULL COMMENT '变动后信用额度余额', + `related_order_sn` varchar(100) DEFAULT NULL COMMENT '关联订单号', + `repayment_method` tinyint(1) DEFAULT NULL COMMENT '还款方式: 0 余额 1 银行卡 2 支付宝 3 微信', + `repayment_channel_serial` varchar(100) DEFAULT NULL COMMENT '交易渠道流水号', + `transaction_time` datetime DEFAULT NULL COMMENT '交易时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_account_month` (`dept_id`,`account_period`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='信用额度明细表'; + +DROP TABLE IF EXISTS `t_cust_withdraw_account`; +CREATE TABLE `t_cust_withdraw_account` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `dept_id` mediumint unsigned NOT NULL DEFAULT '0' COMMENT '企业客户ID', + `account_type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '提现账号类型,1:支付宝,2:微信', + `account_no` text NOT NULL COMMENT '账号', + `account_name` varchar(128) NOT NULL COMMENT '账户名称/真实姓名', + `mobile` varchar(20) DEFAULT NULL COMMENT '手机号', + `is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认账号:0-否 1-是', + `enabled` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用:0-未启用 1-启用', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:0-禁用 1-正常', + `tenant_id` varchar(20) NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_tenant_dept` (`tenant_id`,`dept_id`), + KEY `idx_account_type` (`account_type`), + KEY `idx_mobile` (`mobile`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='客户提现账户表'; + +DROP TABLE IF EXISTS `t_dept_flow_daily`; +CREATE TABLE `t_dept_flow_daily` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键', + `dept_id` bigint NOT NULL COMMENT '渠道客户ID', + `stat_date` date NOT NULL COMMENT '统计日期', + `total_used_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '当日所有卡总消耗流量GB', + `total_sms` int NOT NULL DEFAULT '0' COMMENT '当日总短信使用条数', + `total_voice_min` int NOT NULL DEFAULT '0' COMMENT '当日总语音分钟数', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注,同步失败原因/特殊说明', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_dept_date_package` (`tenant_id`,`dept_id`,`stat_date`), + KEY `idx_dept_date` (`dept_id`,`stat_date`), + KEY `idx_tenant_date` (`tenant_id`,`stat_date`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='渠道客户每日流量汇总统计表'; + +DROP TABLE IF EXISTS `t_division_code`; +CREATE TABLE `t_division_code` ( + `region_id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', + `region_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '行政区域代码', + `region_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '行政区域名称', + `region_level` tinyint(1) NOT NULL COMMENT '等级', + `region_parent` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '上级代码', + `region_type` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '城乡分类代码', + PRIMARY KEY (`region_id`) USING BTREE, + KEY `idx_region_code` (`region_code`) USING BTREE, + KEY `idx_region_parent` (`region_parent`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=664243 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='村级行政区划表'; + +DROP TABLE IF EXISTS `t_fin_commission_detail`; +CREATE TABLE `t_fin_commission_detail` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `commission_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '分润明细编号', + `order_sn` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '订单编号', + `order_type` varchar(1) COLLATE utf8mb4_general_ci NOT NULL COMMENT '订单类型', + `product_id` bigint NOT NULL DEFAULT '0' COMMENT '商品ID', + `payer_dept_id` bigint NOT NULL COMMENT '下级机构ID', + `benefit_dept_id` bigint NOT NULL COMMENT '受益机构ID', + `benefit_dept_level` int DEFAULT NULL COMMENT '受益机构层级', + `commission_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '分润金额', + `commission_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '分润状态:0待结算,1可提现', + `benefit_snapshot` json DEFAULT NULL COMMENT '价格快照(受益机构的成本价+利润+利润悉数=出货单价)', + `account_period` varchar(7) COLLATE utf8mb4_general_ci NOT NULL COMMENT '账期(YYYY-MM)', + `settlement_time` datetime DEFAULT NULL COMMENT '结算时间', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_commission_no` (`commission_no`), + KEY `idx_commission_business` (`order_sn`), + KEY `idx_commission_payer` (`payer_dept_id`), + KEY `idx_commission_benefit` (`benefit_dept_id`), + KEY `idx_commission_status` (`commission_status`), + KEY `idx_commission_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='分润明细表'; + +DROP TABLE IF EXISTS `t_fin_withdrawable_change`; +CREATE TABLE `t_fin_withdrawable_change` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `dept_id` bigint NOT NULL COMMENT '机构ID', + `change_type` tinyint(1) NOT NULL COMMENT '变动类型:0分润,1提现,2转出(可提现转余额)3转入(余额转可提现)4还款', + `income_expense_type` tinyint(1) NOT NULL COMMENT '收支类型: 0收入,1支出', + `change_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '变动金额', + `before_balance` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '变动前可提现余额', + `after_balance` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '变动后可提现余额', + `account_type` tinyint(1) NOT NULL COMMENT '提现账号类型,1:银行卡,2:支付宝,3:微信', + `bank_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开户行名称', + `bank_account` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开户行账号或账号', + `account_name` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户姓名', + `identity_card` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户身份证号', + `source_no` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '来源单号', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `account_period` varchar(7) COLLATE utf8mb4_general_ci NOT NULL COMMENT '账期(YYYY-MM)', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_withdrawable_change_dept` (`dept_id`), + KEY `idx_withdrawable_change_type` (`change_type`), + KEY `idx_withdrawable_change_source` (`source_no`), + KEY `idx_withdrawable_change_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='可提现变动明细表'; + +DROP TABLE IF EXISTS `t_finance_apply`; +CREATE TABLE `t_finance_apply` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `apply_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '申请单号', + `apply_type` tinyint(1) NOT NULL COMMENT '申请类型(1:提现申请,2:余额转提现)', + `audit_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '审核类型:1初审,2复审', + `apply_dept_id` bigint NOT NULL COMMENT '申请机构ID', + `audit_dept_id` bigint NOT NULL COMMENT '审核方机构ID,通常为直属上级或顶级', + `available_amount_snapshot` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '申请前可提现余额快照', + `apply_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '申请金额', + `account_type` tinyint(1) NOT NULL COMMENT '提现账号类型,1:银行卡,2:支付宝,3:微信', + `bank_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开户行名称', + `bank_account` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开户行账号或账号', + `account_name` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户姓名', + `identity_card` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户身份证号', + `receive_account` json DEFAULT NULL COMMENT '收款账户信息快照', + `apply_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态:0待审核,1已通过,2已驳回,3已打款,4已取消', + `apply_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间', + `audit_time` datetime DEFAULT NULL COMMENT '最近审核时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_withdrawal_apply_no` (`apply_no`), + KEY `idx_withdrawal_apply_dept` (`apply_dept_id`), + KEY `idx_withdrawal_audit_dept` (`audit_dept_id`), + KEY `idx_withdrawal_status` (`apply_status`), + KEY `idx_withdrawal_apply_time` (`apply_time`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='财务申请表'; + +DROP TABLE IF EXISTS `t_finance_audit_record`; +CREATE TABLE `t_finance_audit_record` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `audit_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '审核记录编号', + `apply_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '申请单号', + `audit_dept_id` bigint NOT NULL COMMENT '审核方机构ID', + `auditor_user_id` bigint DEFAULT NULL COMMENT '审核人ID', + `audit_result` tinyint(1) NOT NULL DEFAULT '0' COMMENT '审核结果:0通过,1驳回', + `audit_opinion` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审核意见', + `audit_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '审核时间', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_withdrawal_audit_no` (`audit_no`), + KEY `idx_withdrawal_audit_apply` (`apply_no`), + KEY `idx_withdrawal_audit_dept` (`audit_dept_id`), + KEY `idx_withdrawal_audit_time` (`audit_time`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='财务审核记录表'; + +DROP TABLE IF EXISTS `t_flow_package_config`; +CREATE TABLE `t_flow_package_config` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `pool_package_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '池编码', + `package_codes` json DEFAULT NULL COMMENT '套餐编码列表', + `topup_package_codes` json DEFAULT NULL COMMENT '可订购加油包套餐编码列表', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_pool_package_code` (`pool_package_code`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='SIM流量池套餐配置表'; + +DROP TABLE IF EXISTS `t_message_log`; +CREATE TABLE `t_message_log` ( + `message_log_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `message_type` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '消息类型 1系统通知 2活动通知 3订单通知 4账户通知', + `send_user_type` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '发送用户类型 1代理商 2终端用户', + `user_ids` json NOT NULL COMMENT '接收用户ID集合(JSON数组)', + `message_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '消息标题', + `message_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '消息内容', + `message_link` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '跳转链接地址', + `send_time` datetime DEFAULT NULL COMMENT '发送时间', + `is_recall` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否撤回 0未撤回 1已撤回', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`message_log_id`) USING BTREE, + KEY `send_user_type` (`send_user_type`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=118 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='消息日志'; + +DROP TABLE IF EXISTS `t_message_type`; +CREATE TABLE `t_message_type` ( + `message_id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `name` varchar(100) DEFAULT '' COMMENT '通知类型', + `describe` varchar(128) DEFAULT '' COMMENT '通知描述', + `send_type` tinyint(1) DEFAULT '1' COMMENT '发送类型 1代理商 2终端', + `tenant_id` varchar(20) NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`message_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='消息类型'; + +DROP TABLE IF EXISTS `t_notify_log`; +CREATE TABLE `t_notify_log` ( + `notify_id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `notify_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '标题', + `notify_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '内容', + `send_user_type` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '发送用户类型 1代理商 2终端用户', + `send_time` datetime DEFAULT NULL COMMENT '发送时间', + `tenant_id` varchar(20) NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`notify_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='通知日志'; + +DROP TABLE IF EXISTS `t_order`; +CREATE TABLE `t_order` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `order_sn` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单编号', + `parent_order_id` bigint NOT NULL DEFAULT '0' COMMENT '父订单ID', + `parent_order_sn` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '父订单编号', + `customer_type` tinyint NOT NULL COMMENT '客户类型 枚举', + `customer_agent_id` bigint NOT NULL COMMENT '渠道编号(购买方)', + `end_user_id` bigint NOT NULL COMMENT '终端客户编号', + `agent_id` bigint NOT NULL COMMENT '渠道编号(销售方)', + `order_type` tinyint NOT NULL COMMENT '订单类型 枚举', + `order_status` tinyint NOT NULL COMMENT '订单状态 枚举', + `shipping_status` tinyint NOT NULL DEFAULT '0' COMMENT '配送状态 枚举', + `return_status` tinyint NOT NULL DEFAULT '0' COMMENT '退货状态 枚举', + `consignee` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '收货人姓名', + `mobile` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '收货人手机', + `email` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '收货人邮箱', + `address` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '详细地址', + `area_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '行政区域代码', + `buyer_note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '买家备注', + `admin_note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '商家备注', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '系统备注', + `shipping_method` tinyint NOT NULL DEFAULT '1' COMMENT '发货方式 枚举', + `logistics_id` bigint NOT NULL DEFAULT '0' COMMENT '快递公司ID', + `logistics_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '物流公司名称', + `shipping_type_id` bigint NOT NULL DEFAULT '0' COMMENT '配送类型ID', + `shipping_type_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '配送类型名称', + `tracking_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '物流单号', + `shipping_time` datetime DEFAULT NULL COMMENT '发货时间', + `received_time` datetime DEFAULT NULL COMMENT '收货时间', + `pay_type` tinyint NOT NULL DEFAULT '0' COMMENT '支付类型 枚举', + `pay_status` tinyint NOT NULL DEFAULT '0' COMMENT '支付状态 枚举', + `pay_order_sn` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '支付订单编号', + `pay_time` datetime DEFAULT NULL COMMENT '支付时间', + `total_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单总金额', + `product_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品总金额', + `shipping_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '运费金额', + `service_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '服务费金额', + `invoice_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '发票费金额', + `coupon_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠券抵扣金额', + `discount_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '活动优惠金额', + `balance` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '余额抵扣金额', + `paid_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '已支付总金额', + `online_paid_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '线上支付金额', + `offline_paid_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '线下支付金额', + `unpaid_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '未支付金额', + `unrefund_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '未退款金额', + `is_need_commission` tinyint NOT NULL DEFAULT '0' COMMENT '是否需要分佣 枚举:yesno_enum', + `distribution_status` tinyint NOT NULL DEFAULT '0' COMMENT '分销分成状态 枚举', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_order_sn` (`order_sn`) USING BTREE, + KEY `idx_parent_order_sn` (`parent_order_sn`) USING BTREE, + KEY `idx_order_type` (`order_type`) USING BTREE, + KEY `idx_order_status` (`order_status`) USING BTREE, + KEY `idx_pay_status` (`pay_status`) USING BTREE, + KEY `idx_shipping_status` (`shipping_status`) USING BTREE, + KEY `idx_customer_agent_id` (`customer_agent_id`) USING BTREE, + KEY `idx_agent_id` (`agent_id`) USING BTREE, + KEY `idx_end_user_id` (`end_user_id`) USING BTREE, + KEY `idx_created_at` (`created_at`) USING BTREE, + KEY `idx_tenant_id` (`tenant_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=249 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='订单主表'; + +DROP TABLE IF EXISTS `t_order_item`; +CREATE TABLE `t_order_item` ( + `item_id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单商品信息自增id', + `order_id` bigint NOT NULL DEFAULT '0' COMMENT '订单ID', + `order_sn` varchar(60) NOT NULL DEFAULT '' COMMENT '订单编号', + `customer_type` tinyint(1) NOT NULL COMMENT '客户类型 枚举', + `customer_agent_id` bigint NOT NULL COMMENT '渠道编号(购买方)', + `end_user_id` bigint NOT NULL COMMENT '客户编号', + `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品最终单价', + `quantity` smallint unsigned NOT NULL DEFAULT '1' COMMENT '商品的购买数量', + `product_id` bigint NOT NULL DEFAULT '0' COMMENT '商品ID', + `product_name` varchar(500) NOT NULL DEFAULT '' COMMENT '商品的名称', + `product_sn` varchar(60) NOT NULL DEFAULT '' COMMENT '商品的唯一货号', + `pic_thumb` varchar(255) NOT NULL DEFAULT '' COMMENT '商品缩略图', + `sku_id` bigint NOT NULL DEFAULT '0' COMMENT '规格ID', + `sku_data` text NOT NULL COMMENT '【JSON】sku信息[{sku_id,sku_value,sku_name}]', + `delivery_quantity` smallint unsigned NOT NULL DEFAULT '0' COMMENT '发货数量', + `product_type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '商品类型 枚举', + `is_gift` smallint unsigned NOT NULL DEFAULT '0' COMMENT '是否为赠品 枚举:yesno_enum', + `agent_id` bigint NOT NULL COMMENT '渠道编号(销售方)', + `prepay_price` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '预售价格', + `commission` varchar(255) DEFAULT '' COMMENT '佣金数据', + `origin_price` decimal(10,2) DEFAULT '0.00' COMMENT '商品初始价格', + `promotion_data` text COMMENT '优惠信息', + `extra_sku_data` text COMMENT '附加属性', + `pay_mode` tinyint DEFAULT NULL COMMENT '付费方式 枚举', + `service_begin_time` datetime DEFAULT NULL COMMENT '服务开始时间', + `service_end_time` datetime DEFAULT NULL COMMENT '服务结束时间', + `tenant_id` varchar(20) NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`item_id`) USING BTREE, + KEY `order_id` (`order_id`) USING BTREE, + KEY `goods_id` (`product_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=247 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='订单的商品信息'; + +DROP TABLE IF EXISTS `t_package_apply`; +CREATE TABLE `t_package_apply` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '批次编号', + `apply_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '申请单号', + `apply_type` tinyint(1) NOT NULL COMMENT '申请类型(1:变更,2:退订)', + `audit_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '审核类型:1初审,2复审', + `apply_dept_id` bigint NOT NULL COMMENT '申请机构ID', + `audit_dept_id` bigint NOT NULL COMMENT '审核方机构ID,通常为直属上级或顶级', + `apply_package_id` bigint NOT NULL COMMENT '申请前套餐ID', + `change_package_id` bigint DEFAULT NULL COMMENT '变更套餐ID', + `duration_months` int DEFAULT NULL COMMENT '套餐时长(月)', + `package_effective_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '生效方式:1:立即生效,2:到期生效', + `package_effective_time` datetime DEFAULT NULL COMMENT '生效时间', + `apply_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态:0待审核,1已通过,2已驳回,3已打款,4已取消', + `apply_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间', + `audit_time` datetime DEFAULT NULL COMMENT '最近审核时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_withdrawal_apply_no` (`apply_no`) USING BTREE, + KEY `idx_withdrawal_apply_dept` (`apply_dept_id`) USING BTREE, + KEY `idx_withdrawal_status` (`apply_status`) USING BTREE, + KEY `idx_withdrawal_apply_time` (`apply_time`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='套餐相关申请表'; + +DROP TABLE IF EXISTS `t_package_audit_record`; +CREATE TABLE `t_package_audit_record` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `audit_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '审核记录编号', + `apply_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '申请单号', + `audit_dept_id` bigint NOT NULL COMMENT '审核方机构ID', + `auditor_user_id` bigint DEFAULT NULL COMMENT '审核人ID', + `audit_result` tinyint(1) NOT NULL DEFAULT '0' COMMENT '审核结果:0通过,1驳回', + `audit_opinion` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审核意见', + `audit_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '审核时间', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_withdrawal_audit_no` (`audit_no`), + KEY `idx_withdrawal_audit_apply` (`apply_no`), + KEY `idx_withdrawal_audit_dept` (`audit_dept_id`), + KEY `idx_withdrawal_audit_time` (`audit_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='套餐相关审核记录表'; + +DROP TABLE IF EXISTS `t_package_customer`; +CREATE TABLE `t_package_customer` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `package_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐编码', + `package_name` varchar(128) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '套餐名称', + `dept_id` bigint DEFAULT NULL COMMENT '组织客户ID', + `dept_name` varchar(30) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '组织客户名称', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_dept_package` (`tenant_id`,`dept_id`,`package_code`), + KEY `idx_dept_id` (`dept_id`), + KEY `idx_tenant_id` (`tenant_id`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=732 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='套餐客户关联表'; + +DROP TABLE IF EXISTS `t_package_terminal`; +CREATE TABLE `t_package_terminal` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `package_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐编码', + `package_name` varchar(128) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '套餐名称', + `terminal_id` bigint DEFAULT NULL COMMENT '终端客户ID', + `terminal_name` varchar(30) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '终端客户名称', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_package_terminal` (`tenant_id`,`package_code`,`terminal_id`), + KEY `idx_tenant_id` (`tenant_id`), + KEY `idx_package_code` (`package_code`), + KEY `idx_terminal_id` (`terminal_id`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='套餐终端客户关联表'; + +DROP TABLE IF EXISTS `t_product`; +CREATE TABLE `t_product` ( + `product_id` bigint NOT NULL AUTO_INCREMENT COMMENT '商品id ', + `product_name` varchar(120) NOT NULL DEFAULT '' COMMENT '商品的名称 ', + `product_sn` varchar(60) NOT NULL DEFAULT '' COMMENT '商品的唯一货号 ', + `product_tsn` varchar(255) DEFAULT NULL COMMENT '条形编码', + `product_stock` int unsigned NOT NULL DEFAULT '0' COMMENT '商品库存数量 ', + `product_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '本店售价 ', + `market_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '市场售价 ', + `product_status` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '该商品状态 枚举', + `product_type` tinyint(1) DEFAULT '1' COMMENT '商品类型 枚举', + `category_id` bigint NOT NULL DEFAULT '0' COMMENT '商品所属商品分类id', + `brand_id` bigint NOT NULL DEFAULT '0' COMMENT '品牌id', + `keywords` varchar(255) DEFAULT '' COMMENT '商品关键字,放在商品页的关键字中,为搜索引擎收录用 ', + `check_status` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '审核状态 枚举', + `check_reason` varchar(255) NOT NULL DEFAULT '' COMMENT '审核失败原因', + `click_count` int unsigned NOT NULL DEFAULT '0' COMMENT '商品点击数', + `product_weight` decimal(10,3) unsigned NOT NULL DEFAULT '0.000' COMMENT '商品的重量,以千克为单位 ', + `is_promote` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否特价促销 枚举yesno_enum', + `promote_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '促销价格', + `promote_start_date` datetime DEFAULT NULL COMMENT '促销价格开始日期', + `promote_end_date` datetime DEFAULT NULL COMMENT '促销价格结束日期', + `seckill_max_num` smallint unsigned NOT NULL DEFAULT '0' COMMENT '最大秒杀库存', + `product_brief` varchar(255) NOT NULL DEFAULT '' COMMENT '商品的简短描述 ', + `product_desc` text COMMENT '商品的详细描述 ', + `pic_url` varchar(255) NOT NULL DEFAULT '' COMMENT '商品的实际大小图片,如进入该商品页时介绍商品属性所显示的大图片', + `pic_thumb` varchar(255) NOT NULL DEFAULT '' COMMENT '商品在前台显示的微缩图片,如在分类筛选时显示的小图片 ', + `pic_original` varchar(255) NOT NULL DEFAULT '' COMMENT '应该是上传的商品的原始图片 ', + `comment_tag` varchar(255) DEFAULT NULL COMMENT '标签', + `free_shipping` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否包邮 枚举yesno_enum', + `sort_order` smallint unsigned NOT NULL DEFAULT '100' COMMENT '商品的显示顺序', + `store_sort_order` smallint unsigned NOT NULL DEFAULT '100' COMMENT '排序', + `is_best` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否是精品 枚举yesno_enum', + `is_new` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否是新品 枚举yesno_enum', + `is_hot` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否热销 枚举yesno_enum', + `last_update` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最近一次更新商品配置的时间 ', + `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '商品的商家备注,仅商家可见 ', + `virtual_sales` int unsigned NOT NULL DEFAULT '0' COMMENT '虚拟销量', + `limit_number` int unsigned NOT NULL DEFAULT '0' COMMENT '限购数量', + `product_care` text COMMENT '温馨提示', + `product_related` text COMMENT '[JSON]关联的推荐商品Id', + `product_service_ids` text COMMENT '[JSON]服务项ids', + `is_support_return` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否支持无理由退货 枚举yesno_enum', + `is_support_cod` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '是否支持货到付款 枚举yesno_enum', + `product_video` text COMMENT '商品视频', + `prepay_price` decimal(8,2) unsigned DEFAULT '0.00' COMMENT '预付金额', + `virtual_sample` text COMMENT '虚拟商品', + `paid_content` text COMMENT '付费内容', + `no_shipping` tinyint DEFAULT '0' COMMENT '是否无需配送 枚举yesno_enum', + `fixed_shipping_type` tinyint DEFAULT '2' COMMENT '运费类型 枚举', + `fixed_shipping_fee` decimal(10,2) DEFAULT '0.00' COMMENT '固定运费金额', + `dept_id` bigint NOT NULL DEFAULT '0' COMMENT '机构id', + `tenant_id` varchar(20) NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`product_id`,`brand_id`,`product_weight`) USING BTREE, + KEY `goods_sn` (`product_sn`) USING BTREE, + KEY `cat_id` (`category_id`) USING BTREE, + KEY `last_update` (`last_update`) USING BTREE, + KEY `brand_id` (`brand_id`) USING BTREE, + KEY `goods_weight` (`product_weight`) USING BTREE, + KEY `promote_end_date` (`promote_end_date`) USING BTREE, + KEY `promote_start_date` (`promote_start_date`) USING BTREE, + KEY `goods_number` (`product_stock`) USING BTREE, + KEY `sort_order` (`sort_order`) USING BTREE, + KEY `goods_basesell` (`virtual_sales`) USING BTREE, + KEY `product_name` (`product_name`) USING BTREE, + KEY `keywords` (`keywords`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=347 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='商品表'; + +DROP TABLE IF EXISTS `t_profit_account_month_bill`; +CREATE TABLE `t_profit_account_month_bill` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '账单ID', + `dept_id` bigint NOT NULL COMMENT '机构ID', + `account_period` varchar(7) COLLATE utf8mb4_general_ci NOT NULL COMMENT '账期YYYY-MM', + `opening_balance` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '月初余额', + `commission_income` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '分润收入', + `balance_transfer_in_income` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '余额转提现收入', + `withdrawal_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '提现支出', + `withdrawable_transfer_out_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '可提现转余额支出', + `profit_credit_repay_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '盈利账户还款支出', + `total_income` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '本月收入总额', + `total_expense` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '本月支出总额', + `closing_balance` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '月末余额(月初余额+本月收入-本月支出)', + `income_count` int NOT NULL DEFAULT '0' COMMENT '收入笔数', + `expense_count` int NOT NULL DEFAULT '0' COMMENT '支出笔数', + `bill_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '账单状态:1正常,2已调整,3已作废', + `settle_time` datetime DEFAULT NULL COMMENT '结算时间', + `settle_by` bigint DEFAULT NULL COMMENT '结算人ID', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_bill_profit_dept_period` (`dept_id`,`account_period`), + KEY `idx_bill_profit_period` (`account_period`), + KEY `idx_bill_profit_dept` (`dept_id`), + KEY `idx_bill_profit_status` (`bill_status`) +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='盈利账户月账单表'; + +DROP TABLE IF EXISTS `t_resource_batch_download`; +CREATE TABLE `t_resource_batch_download` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '批次编号(全局唯一)', + `task_name` varchar(128) COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务名称', + `resource_type` tinyint NOT NULL COMMENT '资源类型 枚举', + `export_scene` tinyint DEFAULT NULL COMMENT '导出场景 枚举', + `query_params` json DEFAULT NULL COMMENT '导出查询条件快照', + `total_count` int NOT NULL DEFAULT '0' COMMENT '预计导出总条数', + `success_count` int NOT NULL DEFAULT '0' COMMENT '已成功导出条数', + `fail_count` int NOT NULL DEFAULT '0' COMMENT '失败条数', + `download_status` tinyint NOT NULL DEFAULT '0' COMMENT '下载状态 枚举', + `oss_id` bigint DEFAULT NULL COMMENT 'OSS文件ID', + `file_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '导出文件名', + `file_ext` varchar(16) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件扩展名', + `file_url` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件访问地址', + `file_path` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '服务器本地路径', + `file_size` bigint NOT NULL DEFAULT '0' COMMENT '文件大小(字节)', + `file_md5` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件MD5', + `download_count` int NOT NULL DEFAULT '0' COMMENT '下载次数', + `last_download_time` datetime DEFAULT NULL COMMENT '最后下载时间', + `max_download_count` int NOT NULL DEFAULT '10' COMMENT '最大下载次数限制', + `error_message` text COLLATE utf8mb4_general_ci COMMENT '失败原因', + `dept_id` bigint NOT NULL COMMENT '所属机构ID', + `start_time` datetime DEFAULT NULL COMMENT '任务开始时间', + `finish_time` datetime DEFAULT NULL COMMENT '任务完成时间', + `expire_time` datetime DEFAULT NULL COMMENT '文件过期时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_batch_no` (`batch_no`), + KEY `idx_dept_id` (`dept_id`), + KEY `idx_resource_type` (`resource_type`), + KEY `idx_download_status` (`download_status`), + KEY `idx_created_by` (`created_by`), + KEY `idx_expire_time` (`expire_time`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=581 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='资源批次下载表'; + +DROP TABLE IF EXISTS `t_sim_bind_package_logs`; +CREATE TABLE `t_sim_bind_package_logs` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `subscription_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '订购记录编号', + `batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '批次编号', + `iccid` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ICCID', + `msisdn` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'MSISDN/卡号', + `dept_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '部门机构编号', + `package_type` tinyint NOT NULL COMMENT '套餐类型', + `package_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐编号', + `previous_package_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '变更前套餐编号', + `business_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型 枚举', + `effective_status` tinyint(1) NOT NULL COMMENT '订购状态 枚举', + `handle_time` datetime NOT NULL COMMENT '办理时间', + `effective_time` datetime NOT NULL COMMENT '生效时间', + `expected_expire_time` datetime DEFAULT NULL COMMENT '预计到期时间', + `actual_expire_time` datetime DEFAULT NULL COMMENT '实际到期时间', + `duration_months` int DEFAULT NULL COMMENT '套餐时长(月)', + `gift_duration_months` int NOT NULL DEFAULT '0' COMMENT '赠送时长(月)', + `order_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '订单编号', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_subscription_no` (`subscription_no`), + KEY `idx_subscription_iccid` (`iccid`), + KEY `idx_subscription_msisdn` (`msisdn`), + KEY `idx_subscription_dept` (`dept_id`), + KEY `idx_subscription_package` (`package_code`), + KEY `idx_subscription_status` (`effective_status`), + KEY `idx_subscription_business_type` (`business_type`), + KEY `idx_subscription_effective_time` (`effective_time`), + KEY `idx_subscription_expire_time` (`expected_expire_time`) +) ENGINE=InnoDB AUTO_INCREMENT=131 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订购历史表'; + +DROP TABLE IF EXISTS `t_sim_card_bind_pkg`; +CREATE TABLE `t_sim_card_bind_pkg` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `subscription_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '订购记录编号', + `batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '批次编号', + `iccid` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ICCID', + `msisdn` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'MSISDN/卡号', + `dept_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '部门机构编号', + `package_type` tinyint NOT NULL COMMENT '套餐类型', + `package_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐编号', + `previous_package_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '变更前套餐编号', + `business_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型 枚举', + `effective_status` tinyint(1) NOT NULL COMMENT '订购状态 枚举', + `handle_time` datetime NOT NULL COMMENT '办理时间', + `effective_time` datetime NOT NULL COMMENT '生效时间', + `expected_expire_time` datetime DEFAULT NULL COMMENT '预计到期时间', + `actual_expire_time` datetime DEFAULT NULL COMMENT '实际到期时间', + `duration_months` int DEFAULT NULL COMMENT '套餐时长(月)', + `gift_duration_months` int NOT NULL DEFAULT '0' COMMENT '赠送时长(月)', + `order_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '订单编号', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_subscription_no` (`subscription_no`), + KEY `idx_subscription_iccid` (`iccid`), + KEY `idx_subscription_msisdn` (`msisdn`), + KEY `idx_subscription_dept` (`dept_id`), + KEY `idx_subscription_package` (`package_code`), + KEY `idx_subscription_status` (`effective_status`), + KEY `idx_subscription_business_type` (`business_type`), + KEY `idx_subscription_effective_time` (`effective_time`), + KEY `idx_subscription_expire_time` (`expected_expire_time`) +) ENGINE=InnoDB AUTO_INCREMENT=251 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订购表'; + +DROP TABLE IF EXISTS `t_sim_card_cancellation`; +CREATE TABLE `t_sim_card_cancellation` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `iccid` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ICCID', + `msisdn` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'MSISDN/卡号', + `imsi` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'IMSI', + `imei` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'IMEI', + `region_code` varchar(128) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '归属地', + `dept_id` bigint NOT NULL COMMENT '渠道客户ID', + `current_package_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前套餐编号', + `package_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '套餐状态:0 无套餐,1待生效,2生效中,3已过期', + `access_type` tinyint(1) DEFAULT NULL COMMENT '接入方式:ipv4、ipv6、ipv4_ipv6', + `boss_card_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '运营商卡状态 枚举', + `cancel_batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '系统销户批次号', + `cancelled_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '系统销户完成时间', + `card_type` tinyint(1) DEFAULT NULL COMMENT '卡类型 枚举', + `boss_open_at` date DEFAULT NULL COMMENT '运营商开户日期', + `boss_activate_at` datetime DEFAULT NULL COMMENT '运营商激活日期', + `is_boss_activate_enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否按运营商激活减去赠送时长方:1是,0否', + `inbound_batch_no` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '入库批次', + `outbound_batch_no` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '出库批次', + `allocation_batch_no` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '划拨批次', + `is_flow_pool` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为池卡:1是,0否', + `flow_pool_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '流量池编号', + `flow_pkg_begin_at` datetime DEFAULT NULL COMMENT '当前套餐生效时间', + `flow_pkg_present_at` datetime DEFAULT NULL COMMENT '套餐赠送结束时间', + `flow_pkg_real_present_at` datetime DEFAULT NULL COMMENT '实际赠送结束时间', + `flow_pkg_end_at` datetime DEFAULT NULL COMMENT '当前套餐预计到期时间', + `data_service_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '数据服务状态:0启用,1停用', + `package_total_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '套餐总流量MB', + `used_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '已用流量MB', + `traffic_cutoff_status` tinyint NOT NULL DEFAULT '0' COMMENT '达量断网配置状态:0未配置,1已开启,2已关闭', + `traffic_cutoff_threshold` decimal(18,3) DEFAULT '0.000' COMMENT '达量断网阈值', + `sms_service_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '短信服务状态:0启用,1停用', + `package_total_sms` int NOT NULL DEFAULT '0' COMMENT '套餐短信总条数', + `used_sms` int NOT NULL DEFAULT '0' COMMENT '已用短信条数', + `voice_service_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '语音服务状态:0启用,1停用', + `package_total_voice` int NOT NULL DEFAULT '0' COMMENT '套餐语音总分钟数', + `used_voice` int NOT NULL DEFAULT '0' COMMENT '已用语音分钟数', + `roam_service_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '国漫服务状态:0启用,1停用', + `package_total_roam_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '套餐国际流量MB', + `used_roam_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '已用国际流量MB', + `status_sync_time` datetime DEFAULT NULL COMMENT '状态最后一次同步时间', + `flow_sync_time` datetime DEFAULT NULL COMMENT '流量最后一次同步时间', + `sms_sync_time` datetime DEFAULT NULL COMMENT '短信最后一次同步时间', + `voice_sync_time` datetime DEFAULT NULL COMMENT '语音最后一次同步时间', + `roam_sync_time` datetime DEFAULT NULL COMMENT '国漫最后一次同步时间', + `extra_fee_enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否收取附加费:0是,1否', + `extra_fee_multiple` decimal(10,2) NOT NULL DEFAULT '1.00' COMMENT '附加费用倍数', + `extra_fee` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '附加金额', + `chan_key` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道编号', + `net_model` tinyint(1) DEFAULT NULL COMMENT '网络类型 枚举', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_card_iccid` (`iccid`), + UNIQUE KEY `uk_card_msisdn` (`msisdn`), + KEY `idx_card_imsi` (`imsi`), + KEY `idx_card_imei` (`imei`), + KEY `idx_card_inbound_batch` (`inbound_batch_no`), + KEY `idx_card_outbound_batch` (`outbound_batch_no`), + KEY `idx_card_allocation_batch` (`allocation_batch_no`), + KEY `idx_card_dept_id` (`dept_id`), + KEY `idx_card_current_package` (`current_package_code`), + KEY `idx_card_boss_card_status` (`boss_card_status`), + KEY `idx_card_package_status` (`package_status`), + KEY `idx_card_flow_pkg_end_at` (`flow_pkg_end_at`), + KEY `idx_card_flow_pool_code` (`flow_pool_code`), + KEY `idx_card_chan_key` (`chan_key`), + KEY `idx_cancel_batch_no` (`cancel_batch_no`), + KEY `idx_cancelled_at` (`cancelled_at`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='销户卡信息表'; + +DROP TABLE IF EXISTS `t_sim_card_info`; +CREATE TABLE `t_sim_card_info` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `iccid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ICCID', + `msisdn` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'MSISDN/卡号', + `imsi` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'IMSI', + `imei` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'IMEI', + `region_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '归属地', + `dept_id` bigint NOT NULL COMMENT '渠道客户ID', + `current_package_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前套餐编号', + `package_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '套餐状态:0 无套餐,1待生效,2生效中,3已过期', + `access_type` tinyint(1) DEFAULT NULL COMMENT '接入方式:ipv4、ipv6、ipv4_ipv6', + `boss_card_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '运营商卡状态 枚举', + `card_type` tinyint(1) DEFAULT NULL COMMENT '卡类型 枚举', + `boss_open_at` date DEFAULT NULL COMMENT '运营商开户日期', + `boss_activate_at` datetime DEFAULT NULL COMMENT '运营商激活日期', + `is_boss_activate_enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否按运营商激活减去赠送时长方:1是,0否', + `inbound_batch_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '入库批次', + `outbound_batch_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '出库批次', + `allocation_batch_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '划拨批次', + `is_flow_pool` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为池卡:1是,0否', + `flow_pool_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '流量池编号', + `out_stock_time` datetime DEFAULT NULL COMMENT '出库时间', + `flow_pkg_begin_at` datetime DEFAULT NULL COMMENT '当前套餐生效时间', + `flow_pkg_present_at` datetime DEFAULT NULL COMMENT '套餐赠送结束时间', + `flow_pkg_real_present_at` datetime DEFAULT NULL COMMENT '实际赠送结束时间', + `flow_pkg_end_at` datetime DEFAULT NULL COMMENT '当前套餐预计到期时间', + `data_service_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '数据服务状态:1启用、0禁用', + `package_total_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '套餐总流量MB', + `used_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '已用流量MB', + `traffic_cutoff_status` tinyint NOT NULL DEFAULT '0' COMMENT '达量断网配置状态:0未配置,1已开启,2已关闭', + `traffic_cutoff_threshold` decimal(18,3) DEFAULT '0.000' COMMENT '达量断网阈值', + `sms_service_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '短信服务状态:1启用、0禁用', + `package_total_sms` int NOT NULL DEFAULT '0' COMMENT '套餐短信总条数', + `used_sms` int NOT NULL DEFAULT '0' COMMENT '已用短信条数', + `voice_service_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '语音服务状态:1启用、0禁用', + `package_total_voice` int NOT NULL DEFAULT '0' COMMENT '套餐语音总分钟数', + `used_voice` int NOT NULL DEFAULT '0' COMMENT '已用语音分钟数', + `roam_service_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '国漫服务状态:1启用、0禁用', + `package_total_roam_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '套餐国际流量MB', + `used_roam_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '已用国际流量MB', + `status_sync_time` datetime DEFAULT NULL COMMENT '状态最后一次同步时间', + `flow_sync_time` datetime DEFAULT NULL COMMENT '流量最后一次同步时间', + `sms_sync_time` datetime DEFAULT NULL COMMENT '短信最后一次同步时间', + `voice_sync_time` datetime DEFAULT NULL COMMENT '语音最后一次同步时间', + `roam_sync_time` datetime DEFAULT NULL COMMENT '国漫最后一次同步时间', + `extra_fee_enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否收取附加费:1是,0否', + `extra_fee_multiple` decimal(10,2) NOT NULL DEFAULT '1.00' COMMENT '附加费用倍数', + `extra_fee` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '附加金额', + `chan_key` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道编号', + `net_model` tinyint(1) DEFAULT NULL COMMENT '网络类型:4G、5G、NB-IoT', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_card_iccid` (`iccid`) USING BTREE, + UNIQUE KEY `uk_card_msisdn` (`msisdn`) USING BTREE, + KEY `idx_card_imsi` (`imsi`) USING BTREE, + KEY `idx_card_imei` (`imei`) USING BTREE, + KEY `idx_card_inbound_batch` (`inbound_batch_no`) USING BTREE, + KEY `idx_card_outbound_batch` (`outbound_batch_no`) USING BTREE, + KEY `idx_card_allocation_batch` (`allocation_batch_no`) USING BTREE, + KEY `idx_card_dept_id` (`dept_id`) USING BTREE, + KEY `idx_card_current_package` (`current_package_code`) USING BTREE, + KEY `idx_card_boss_card_status` (`boss_card_status`) USING BTREE, + KEY `idx_card_package_status` (`package_status`) USING BTREE, + KEY `idx_card_flow_pkg_end_at` (`flow_pkg_end_at`) USING BTREE, + KEY `idx_card_flow_pool_code` (`flow_pool_code`) USING BTREE, + KEY `idx_card_chan_key` (`chan_key`) USING BTREE, + KEY `idx_traffic_cutoff_scan` (`traffic_cutoff_status`,`data_service_status`,`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4088 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='卡信息表'; + +DROP TABLE IF EXISTS `t_sim_card_stock`; +CREATE TABLE `t_sim_card_stock` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL, + `iccid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ICCID', + `msisdn` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'MSISDN', + `imsi` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'IMSI', + `imei` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'IMEI', + `chan_key` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道编号', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_card_iccid` (`iccid`) USING BTREE, + UNIQUE KEY `uk_card_msisdn` (`msisdn`) USING BTREE, + KEY `idx_card_imsi` (`imsi`) USING BTREE, + KEY `idx_card_chan_key` (`chan_key`) USING BTREE, + KEY `idx_card_batch_no` (`batch_no`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=528 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='库存卡信息表'; + +DROP TABLE IF EXISTS `t_sim_channel_template`; +CREATE TABLE `t_sim_channel_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', + `temp_key` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板标识', + `temp_name` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板名称', + `temp_model` text COLLATE utf8mb4_general_ci COMMENT '模板模型', + `temp_config` text COLLATE utf8mb4_general_ci COMMENT '模板配置', + `temp_status` tinyint DEFAULT NULL COMMENT '模板状态(0未启用,1启用)', + `remark` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_key` (`tenant_id`,`temp_key`), + KEY `temp_key` (`temp_key`), + KEY `tenant_id` (`tenant_id`) +) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='通道模板'; + +DROP TABLE IF EXISTS `t_sim_channels`; +CREATE TABLE `t_sim_channels` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', + `temp_key` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板标识', + `chan_key` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道编号', + `chan_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道名称', + `chan_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '通道配置', + `chan_status` tinyint DEFAULT NULL COMMENT '通道状态(0启用,1停用, 2未申请, 3申请中, 4接口信息不全)', + `share_enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否开放共享Token(0否,1是)', + `chan_alias` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道别名', + `region_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '通道行政区域代码(省市)', + `app_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '应用标识', + `app_secret` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '应用密钥', + `access_token` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '接口调用凭证', + `access_token_created` datetime DEFAULT NULL COMMENT '凭证申请时间', + `access_token_expire` datetime DEFAULT NULL COMMENT '凭证过期时间', + `refresh_token` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '刷新凭证', + `login_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '登录账号', + `login_password` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '登录密码', + `login_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录地址', + `remark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_key` (`tenant_id`,`chan_key`) USING BTREE, + KEY `chan_key` (`chan_key`) USING BTREE, + KEY `tenant_id` (`tenant_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='通道列表'; + +DROP TABLE IF EXISTS `t_sim_flow_package_info`; +CREATE TABLE `t_sim_flow_package_info` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `package_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐编码', + `category_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐分类编码', + `pool_package_code` varchar(16) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '池套餐', + `package_name` varchar(128) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐名称', + `package_type` int NOT NULL COMMENT '套餐类型:101-卡套餐 102-池套餐 103-单卡加油包 104-池卡加油包', + `billing_method` tinyint(1) DEFAULT NULL COMMENT '计费方式', + `sort_no` int NOT NULL DEFAULT '0' COMMENT '排序号', + `flow_mb` decimal(18,3) DEFAULT NULL COMMENT '套餐流量(MB)', + `flow_gb` decimal(18,3) DEFAULT NULL COMMENT '套餐流量(GB)', + `enabled` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用:0-否 1-是(yesno_enum)', + `list_price` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '目录售价', + `cost_price` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '成本价', + `sys_default_profit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '系统默认利润', + `sys_default_ratio` decimal(10,4) NOT NULL DEFAULT '100.0000' COMMENT '系统默认系数', + `terminal_cost` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '终端成本', + `sys_default_terminal_profit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '系统默认终端利润', + `sys_default_terminal_ratio` decimal(10,4) NOT NULL DEFAULT '100.0000' COMMENT '系统默认终端系数', + `renewable_duration_config` json DEFAULT NULL COMMENT '可续费时长配置:[1,2,3]', + `discount_rate_config` json DEFAULT NULL COMMENT '折扣率配置:{"duration":1,"rate":100}', + `renewable_package_codes` json DEFAULT NULL COMMENT '可续费套餐编码列表', + `changeable_package_codes` json DEFAULT NULL COMMENT '可变更套餐编码列表', + `topup_package_codes` json DEFAULT NULL COMMENT '可订购加油包套餐编码列表', + `is_auto_renew` tinyint(1) DEFAULT '0' COMMENT '是否自动续费:0-否 1-是', + `auto_renew_package_id` bigint DEFAULT NULL COMMENT '自动续费套餐ID', + `auto_renew_years` tinyint DEFAULT '1' COMMENT '自动续费年限', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_package_code` (`package_code`), + KEY `idx_category_code` (`category_code`), + KEY `idx_package_type` (`package_type`), + KEY `idx_enabled` (`enabled`) +) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='SIM流量套餐管理表'; + +DROP TABLE IF EXISTS `t_sim_flow_package_price`; +CREATE TABLE `t_sim_flow_package_price` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `package_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐编码', + `agent_scope_type` tinyint NOT NULL COMMENT '渠道适用类型:0-所有客户 1-指定客户', + `target_agent_id` bigint DEFAULT NULL COMMENT '指定渠道客户ID', + `dept_id` bigint DEFAULT NULL COMMENT '机构编号', + `agent_cost_ratio` decimal(10,4) NOT NULL DEFAULT '1.0000' COMMENT '渠道成本系数', + `agent_cost_profit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '渠道成本利润', + `user_cost_ratio` decimal(10,4) NOT NULL DEFAULT '1.0000' COMMENT '终端用户成本系数', + `user_cost_profit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '终端用户成本利润', + `enabled` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用:0-否 1-是(yesno_enum)', + `remark` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_package_agent_scope` (`package_code`,`agent_scope_type`,`target_agent_id`,`dept_id`), + KEY `idx_package_code` (`package_code`), + KEY `idx_target_agent_id` (`target_agent_id`), + KEY `idx_dept_id` (`dept_id`), + KEY `idx_enabled` (`enabled`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB AUTO_INCREMENT=62 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='SIM流量套餐定价表'; + +DROP TABLE IF EXISTS `t_sim_flow_pool`; +CREATE TABLE `t_sim_flow_pool` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `flow_pool_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '流量池编号', + `dept_id` bigint NOT NULL COMMENT '客户编号', + `package_codes` json DEFAULT NULL COMMENT '套餐编号列表(冗余)', + `pool_package_code` varchar(16) COLLATE utf8mb4_general_ci NOT NULL COMMENT '池套餐编码', + `card_count` bigint NOT NULL DEFAULT '0' COMMENT '关联卡数量', + `card_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '套餐卡流量MB', + `pool_package_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '套内总流量MB', + `add_on_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '加油包总流量MB', + `total_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '总流量MB(套内+加油包)', + `used_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '已使用流量MB', + `remain_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '剩余流量MB', + `last_stat_time` datetime DEFAULT NULL COMMENT '最后流量统计时间', + `pool_status` tinyint NOT NULL DEFAULT '0' COMMENT '状态:0 正常、1 停用、2 锁定', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_flow_pool_code` (`flow_pool_code`), + KEY `idx_dept_id` (`dept_id`), + KEY `idx_status` (`pool_status`) +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量池表'; + +DROP TABLE IF EXISTS `t_sim_package_category`; +CREATE TABLE `t_sim_package_category` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `category_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐分类编号', + `category_name` varchar(128) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐分类名称', + `sort_no` int NOT NULL DEFAULT '0' COMMENT '排序', + `enabled` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用:1启用,0停用', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_package_category_code` (`category_code`), + KEY `idx_package_category_enabled` (`enabled`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='套餐分类表'; + +DROP TABLE IF EXISTS `t_sim_pool`; +CREATE TABLE `t_sim_pool` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `flow_pool_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '流量池编号', + `dept_id` bigint NOT NULL COMMENT '客户编号', + `package_codes` json DEFAULT NULL COMMENT '套餐编号列表(冗余)', + `pool_package_code` bigint NOT NULL COMMENT '池套餐编码', + `card_count` bigint NOT NULL DEFAULT '0' COMMENT '关联卡数量', + `card_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '套餐卡流量MB', + `pool_package_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '套内总流量MB', + `add_on_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '加油包总流量MB', + `total_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '总流量MB(套内+加油包)', + `used_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '已使用流量MB', + `remain_flow_mb` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '剩余流量MB', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态:0 正常、1 停用、2 锁定', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_flow_pool_code` (`flow_pool_code`), + KEY `idx_dept_id` (`dept_id`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量池表'; + +DROP TABLE IF EXISTS `t_sim_pool_bind_package`; +CREATE TABLE `t_sim_pool_bind_package` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `subscription_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '订购记录编号', + `pool_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '流量池编号', + `dept_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '部门机构编号', + `package_type` tinyint NOT NULL COMMENT '套餐类型', + `package_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐编号', + `previous_package_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '变更前套餐编号', + `business_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型 枚举', + `effective_status` tinyint(1) NOT NULL COMMENT '订购状态 枚举', + `handle_time` datetime NOT NULL COMMENT '办理时间', + `effective_time` datetime NOT NULL COMMENT '生效时间', + `expected_expire_time` datetime DEFAULT NULL COMMENT '预计到期时间', + `actual_expire_time` datetime DEFAULT NULL COMMENT '实际到期时间', + `duration_months` int DEFAULT NULL COMMENT '套餐时长(月)', + `gift_duration_months` int NOT NULL DEFAULT '0' COMMENT '赠送时长(月)', + `order_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '订单编号', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_subscription_no` (`subscription_no`), + KEY `idx_subscription_pool` (`pool_no`), + KEY `idx_subscription_dept` (`dept_id`), + KEY `idx_subscription_package` (`package_code`), + KEY `idx_subscription_status` (`effective_status`), + KEY `idx_subscription_business_type` (`business_type`), + KEY `idx_subscription_effective_time` (`effective_time`), + KEY `idx_subscription_expire_time` (`expected_expire_time`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='卡池加油包订购表'; + +DROP TABLE IF EXISTS `t_sim_pool_bind_pkg_logs`; +CREATE TABLE `t_sim_pool_bind_pkg_logs` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `subscription_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '订购记录编号', + `pool_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '流量池编号', + `dept_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '部门机构编号', + `package_type` tinyint NOT NULL COMMENT '套餐类型', + `package_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐编号', + `previous_package_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '变更前套餐编号', + `business_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型 枚举', + `effective_status` tinyint(1) NOT NULL COMMENT '订购状态 枚举', + `handle_time` datetime NOT NULL COMMENT '办理时间', + `effective_time` datetime NOT NULL COMMENT '生效时间', + `expected_expire_time` datetime DEFAULT NULL COMMENT '预计到期时间', + `actual_expire_time` datetime DEFAULT NULL COMMENT '实际到期时间', + `duration_months` int DEFAULT NULL COMMENT '套餐时长(月)', + `gift_duration_months` int NOT NULL DEFAULT '0' COMMENT '赠送时长(月)', + `order_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '订单编号', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_subscription_no` (`subscription_no`), + KEY `idx_subscription_pool` (`pool_no`), + KEY `idx_subscription_dept` (`dept_id`), + KEY `idx_subscription_package` (`package_code`), + KEY `idx_subscription_status` (`effective_status`), + KEY `idx_subscription_business_type` (`business_type`), + KEY `idx_subscription_effective_time` (`effective_time`), + KEY `idx_subscription_expire_time` (`expected_expire_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='卡池加油包订购表历史'; + +DROP TABLE IF EXISTS `t_sim_pool_warn_config`; +CREATE TABLE `t_sim_pool_warn_config` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `pool_id` bigint NOT NULL COMMENT '流量池ID', + `warn_level` tinyint NOT NULL COMMENT '预警等级:1提示,2注意,3警告,4危险,5紧急', + `threshold_percent` decimal(10,2) NOT NULL COMMENT '阈值(例如0.7)', + `warn_methods` tinyint NOT NULL DEFAULT '0' COMMENT '预警方式:0短信,1邮箱,2电话,3平台消息 多选逗号分隔', + `warn_phones` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '预警手机号 多个逗号分隔', + `warn_emails` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '预警邮箱 多个逗号分隔', + `auto_action` tinyint NOT NULL DEFAULT '0' COMMENT '自动动作:0无,1限速,2断网', + `is_enabled` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用:1启用,0停用', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_pool_level` (`pool_id`,`warn_level`), + KEY `idx_pool_threshold` (`pool_id`,`threshold_percent`), + KEY `idx_pool_enabled` (`pool_id`,`is_enabled`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量池预警配置表'; + +DROP TABLE IF EXISTS `t_sim_pool_warn_log`; +CREATE TABLE `t_sim_pool_warn_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `pool_id` bigint NOT NULL COMMENT '流量池ID', + `warn_level` tinyint NOT NULL COMMENT '预警级别', + `threshold_percent` decimal(10,2) NOT NULL COMMENT '触发阈值百分比(例如0.7)', + `used_percent` decimal(10,2) NOT NULL COMMENT '实际使用百分比', + `used_flow_mb` decimal(18,3) NOT NULL COMMENT '触发时已用流量MB', + `total_flow_mb` decimal(18,3) NOT NULL COMMENT '触发时总流量MB', + `warn_methods` tinyint(1) NOT NULL DEFAULT '0' COMMENT '预警方式:0短信,1邮箱,2电话,3平台消息', + `warn_phones` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '预警手机号', + `warn_emails` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '预警邮箱', + `warn_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '预警状态:0成功,1失败', + `warn_time` datetime NOT NULL COMMENT '预警时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_pool_time` (`pool_id`,`warn_time`), + KEY `idx_pool_level` (`pool_id`,`warn_level`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量池预警记录表'; + +DROP TABLE IF EXISTS `t_sim_terminal`; +CREATE TABLE `t_sim_terminal` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `iccid` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ICCID', + `msisdn` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'MSISDN/卡号', + `imsi` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'IMSI', + `terminal_id` bigint DEFAULT NULL COMMENT '终端客户ID', + `terminal_name` varchar(30) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '终端客户名称', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门ID', + `created_by` bigint NOT NULL COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者ID', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `dept_id` bigint NOT NULL COMMENT '渠道客户ID', + `current_package_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前套餐编号', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_package_terminal` (`iccid`,`terminal_id`), + KEY `idx_tenant_id` (`tenant_id`), + KEY `idx_terminal_id` (`terminal_id`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='终端客户卡关联表'; + +DROP TABLE IF EXISTS `t_sim_upstream_package`; +CREATE TABLE `t_sim_upstream_package` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `up_pkg_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '上游套餐编码', + `up_pkg_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '上游套餐名称', + `operator` tinyint NOT NULL COMMENT '运营商:1移动,2联通,3电信', + `apn_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'APN名称', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_up_pkg_code` (`up_pkg_code`), + KEY `idx_operator` (`operator`), + KEY `idx_created_at` (`created_at`), + KEY `idx_up_pkg_name` (`up_pkg_name`(100)) +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='上游套餐表'; + +DROP TABLE IF EXISTS `t_terminal`; +CREATE TABLE `t_terminal` ( + `terminal_id` bigint NOT NULL AUTO_INCREMENT COMMENT '终端客户id', + `terminal_name` varchar(30) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '客户名称', + `leader` bigint DEFAULT NULL COMMENT '负责人', + `phone` varchar(11) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系电话', + `email` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮箱', + `status` char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '客户状态(0正常 1停用)', + `credit_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '统一社会信用代码', + `area_code` varchar(12) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '行政区域代码', + `address` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '地址', + `full_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '单位全称', + `industry` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '行业', + `legal_person_name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '法人名称', + `legal_person_id_card` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '法人身份证号', + `company_type` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '单位类型', + `establish_time` date DEFAULT NULL COMMENT '单位成立时间', + `bank_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开户行名称', + `bank_account` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开户行账号', + `balance` decimal(15,2) DEFAULT '0.00' COMMENT '账户余额', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`terminal_id`) +) ENGINE=InnoDB AUTO_INCREMENT=147 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='终端客户表'; + +DROP TABLE IF EXISTS `t_tplatform_setting`; +CREATE TABLE `t_tplatform_setting` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `sub_domain` varchar(128) NOT NULL COMMENT '二级域名前缀', + `full_domain` varchar(256) NOT NULL COMMENT '完整域名', + `app_title` varchar(128) NOT NULL COMMENT '平台标题', + `app_icon` varchar(512) DEFAULT NULL COMMENT '图标地址', + `login_page_title` varchar(256) DEFAULT NULL COMMENT '登录页大标题', + `login_page_description` varchar(512) DEFAULT NULL COMMENT '登录页描述文案', + `login_slogan_image` varchar(512) DEFAULT NULL COMMENT '登录标语图地址', + `sort` int DEFAULT '0' COMMENT '排序', + `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 0启用 1禁用', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_full_domain` (`full_domain`) COMMENT '完整域名唯一,防止重复配置', + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='二级域名站点个性化配置表'; + +DROP TABLE IF EXISTS `t_user_message`; +CREATE TABLE `t_user_message` ( + `message_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `message_log_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '消息日志ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `is_read` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否已读 0未读 1已读', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`message_id`) USING BTREE, + KEY `message_log_id` (`message_log_id`) USING BTREE, + KEY `user_id` (`user_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=203 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='用户消息'; + +DROP TABLE IF EXISTS `t_warn_config`; +CREATE TABLE `t_warn_config` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `batch_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '批次编号', + `item_type` tinyint NOT NULL COMMENT '对象类型:1卡,2流量池', + `item_id` bigint NOT NULL COMMENT '对象ID:单卡为t_sim_card_info.id,流量池为t_sim_flow_pool.id', + `item_code` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '对象编码快照:ICCID/MSISDN/流量池编码', + `warn_unit` tinyint NOT NULL COMMENT '预警单位:1MB,2百分比,3天数,4月数', + `first_warn` decimal(10,2) DEFAULT NULL COMMENT '第一档预警阈值,单位由warn_unit决定', + `second_warn` decimal(10,2) DEFAULT NULL COMMENT '第二档预警阈值,单位由warn_unit决定', + `third_warn` decimal(10,2) DEFAULT NULL COMMENT '第三档预警阈值,单位由warn_unit决定', + `warn_methods` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '3' COMMENT '预警方式:0短信,1邮箱,2电话,3平台消息;多选逗号分隔', + `warn_phones` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '预警手机号,多个逗号分隔', + `warn_emails` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '预警邮箱,多个逗号分隔', + `auto_action` tinyint NOT NULL DEFAULT '0' COMMENT '自动动作:0无,2断网;第一期只保存配置不自动执行', + `is_enabled` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用:1启用,0停用', + `wx_template_id` varchar(128) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '微信订阅消息模板ID', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `app_notify_enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否开启小程序预警通知:0关闭,1开启', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_warn_item_type` (`tenant_id`,`item_type`,`item_id`,`warn_unit`) USING BTREE, + KEY `idx_item_enabled` (`tenant_id`,`item_type`,`item_id`,`is_enabled`) USING BTREE, + KEY `idx_type_enabled_updated` (`tenant_id`,`warn_unit`,`is_enabled`,`updated_at`) USING BTREE, + KEY `idx_batch_no` (`tenant_id`,`batch_no`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='预警配置表'; + +DROP TABLE IF EXISTS `t_warn_log`; +CREATE TABLE `t_warn_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `config_id` bigint NOT NULL COMMENT '预警配置ID', + `item_type` tinyint NOT NULL COMMENT '对象类型:1单卡,2流量池', + `item_id` bigint NOT NULL COMMENT '对象ID:单卡为t_sim_card_info.id,流量池为t_sim_flow_pool.id', + `item_code` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '对象编码快照:ICCID/MSISDN/流量池编码', + `warn_stage` tinyint NOT NULL COMMENT '触发档位:1第一档,2第二档,3第三档', + `warn_level` tinyint NOT NULL COMMENT '预警级别:1提示,2注意,3警告,4危险,5紧急', + `warn_unit` tinyint NOT NULL COMMENT '预警单位/维度:1MB,2百分比,3天数,4月数', + `threshold_value` decimal(10,2) NOT NULL COMMENT '触发阈值,单位由warn_unit决定', + `actual_value` decimal(18,3) NOT NULL COMMENT '触发时实际值,单位由warn_unit决定', + `total_flow_mb` decimal(18,3) DEFAULT NULL COMMENT '触发时总流量MB;流量类预警使用', + `remain_flow_mb` decimal(18,3) DEFAULT NULL COMMENT '触发时剩余流量MB;流量类预警使用', + `warn_methods` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '3' COMMENT '实际预警方式快照', + `warn_phones` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际预警手机号快照', + `warn_emails` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际预警邮箱快照', + `message_log_id` bigint DEFAULT NULL COMMENT '平台消息ID;聚合通知时可能为空', + `warn_time` datetime NOT NULL COMMENT '预警时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_item_time` (`tenant_id`,`item_type`,`item_id`,`warn_time`) USING BTREE, + KEY `idx_config_stage_time` (`config_id`,`warn_stage`,`warn_time`) USING BTREE, + KEY `idx_warn_unit_time` (`tenant_id`,`item_type`,`warn_unit`,`warn_time`) USING BTREE, + KEY `idx_message_log_id` (`message_log_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='预警记录表'; + +DROP TABLE IF EXISTS `t_wo_communication`; +CREATE TABLE `t_wo_communication` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `wo_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '工单编号', + `comm_type` tinyint NOT NULL COMMENT '沟通类型:0回复,1反馈', + `sender_dept_id` bigint DEFAULT NULL COMMENT '发送人机构ID', + `sender_user_id` bigint DEFAULT NULL COMMENT '发送人用户ID', + `sender_name` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发送人姓名', + `content` text COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容', + `attachment_urls` json DEFAULT NULL COMMENT '附件URL列表', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_wo_comm_type` (`comm_type`), + KEY `idx_wo_comm_sender_user` (`sender_user_id`), + KEY `idx_wo_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单问题沟通表'; + +DROP TABLE IF EXISTS `t_wo_main`; +CREATE TABLE `t_wo_main` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `wo_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '工单编号', + `wo_type` tinyint(1) NOT NULL COMMENT '工单类型 0卡,1模组,2设备,3订单,4余额,5提现', + `related_id` bigint DEFAULT NULL COMMENT '关联业务ID', + `title` varchar(200) COLLATE utf8mb4_general_ci NOT NULL COMMENT '工单标题', + `content` text COLLATE utf8mb4_general_ci NOT NULL COMMENT '问题描述', + `attachment` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '附件', + `creator_type` tinyint NOT NULL COMMENT '创建人类型:1终端用户,2代理商', + `creator_dept_id` bigint DEFAULT NULL COMMENT '创建机构ID', + `creator_user_id` bigint DEFAULT NULL COMMENT '创建用户ID', + `creator_name` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人姓名', + `creator_phone` varchar(16) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人手机号', + `assign_dept_id` bigint DEFAULT NULL COMMENT '分派方机构ID', + `assign_user_id` bigint DEFAULT NULL COMMENT '分派人用户ID', + `current_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '当前处理状态:1已分派,2处理中,3已解决,4已完结_关单,5已取消', + `handler_dept_id` bigint DEFAULT NULL COMMENT '处理方机构ID', + `handler_user_id` bigint DEFAULT NULL COMMENT '处理人用户ID', + `first_response_time` datetime DEFAULT NULL COMMENT '首次响应时间', + `resolve_time` datetime DEFAULT NULL COMMENT '确认时间', + `close_time` datetime DEFAULT NULL COMMENT '关闭时间', + `satisfaction_level` tinyint(1) DEFAULT NULL COMMENT '满意度:1-5分', + `eval_content` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '评价内容', + `eval_time` datetime DEFAULT NULL COMMENT '评价时间', + `remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_wo_no` (`wo_no`), + KEY `idx_wo_wo_type` (`wo_type`), + KEY `idx_wo_creator_dept` (`creator_dept_id`), + KEY `idx_wo_creator_user` (`creator_user_id`), + KEY `idx_wo_handler_dept` (`handler_dept_id`), + KEY `idx_wo_handler_user` (`handler_user_id`), + KEY `idx_wo_status` (`current_status`), + KEY `idx_wo_created_at` (`created_at`) +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单主表'; + +DROP TABLE IF EXISTS `t_wo_record`; +CREATE TABLE `t_wo_record` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `wo_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '工单编号', + `operation_type` tinyint(1) NOT NULL COMMENT '操作类型:0创建,1分派,2处理,3完成,4关单,5取消', + `operation_dept_id` bigint DEFAULT NULL COMMENT '操作机构ID', + `operation_user_id` bigint DEFAULT NULL COMMENT '操作用户ID', + `target_dept_id` bigint DEFAULT NULL COMMENT '目标部门ID', + `target_user_id` bigint DEFAULT NULL COMMENT '目标用户ID', + `before_status` tinyint(1) DEFAULT NULL COMMENT '变更前状态', + `after_status` tinyint(1) DEFAULT NULL COMMENT '变更后状态', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `created_dept` bigint NOT NULL COMMENT '创建部门', + `created_by` bigint NOT NULL COMMENT '创建者', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_wo_record_wo_no` (`wo_no`), + KEY `idx_wo_record_operation_type` (`operation_type`), + KEY `idx_wo_record_auditor_user` (`operation_user_id`), + KEY `idx_wo_record_time` (`created_by`) +) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单记录表'; + +DROP TABLE IF EXISTS `test_demo`; +CREATE TABLE `test_demo` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `dept_id` bigint DEFAULT NULL COMMENT '部门id', + `user_id` bigint DEFAULT NULL COMMENT '用户id', + `order_num` int DEFAULT '0' COMMENT '排序号', + `test_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'key键', + `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '值', + `version` int DEFAULT '0' COMMENT '版本', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测试单表'; + +DROP TABLE IF EXISTS `test_tree`; +CREATE TABLE `test_tree` ( + `id` bigint NOT NULL COMMENT '主键', + `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号', + `parent_id` bigint DEFAULT '0' COMMENT '父id', + `dept_id` bigint DEFAULT NULL COMMENT '部门id', + `user_id` bigint DEFAULT NULL COMMENT '用户id', + `tree_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '值', + `version` int DEFAULT '0' COMMENT '版本', + `created_dept` bigint DEFAULT NULL COMMENT '创建部门', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `created_by` bigint DEFAULT NULL COMMENT '创建者', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `updated_by` bigint DEFAULT NULL COMMENT '更新者', + `deleted_by` bigint DEFAULT NULL COMMENT '删除人', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测试树表'; + +INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `level`, `tree`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `remark`) VALUES +(1,'系统管理',0,1,NULL,900,'system','','',1,0,'M','0','0','','ant-design:setting-filled',103,1,'2025-02-13 11:56:36',1,'2026-06-03 13:16:46','系统管理目录'), +(2,'系统监控',0,1,NULL,902,'monitor','','',1,0,'M','0','0','','ant-design:bar-chart-outlined',103,1,'2025-02-13 11:56:36',1,'2026-06-03 13:17:07','系统监控目录'), +(3,'系统工具',0,1,NULL,903,'tool','','',1,0,'M','0','0','','ant-design:sliders-twotone',103,1,'2025-02-13 11:56:36',1,'2026-07-24 14:19:26','系统工具目录'), +(4,'首页',0,1,NULL,1,'analytics','iotlcm/tDashboard/index','',1,0,'C','0','0','','ant-design:bank-filled',103,1,'2025-02-13 11:56:36',1,'2026-07-20 15:15:24','RuoYi-Vue-Plus官网地址'), +(5,'租户管理',0,1,NULL,901,'tenant','','',1,0,'M','0','0','','ant-design:gold-twotone',103,1,'2025-02-13 11:56:36',1,'2026-07-24 14:19:35','租户管理目录'), +(6,'用户管理',1,1,NULL,1,'user','system/user/index','',1,0,'C','0','0','system:user:list','ant-design:user-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:31:59','用户管理菜单'), +(7,'角色管理',1,1,NULL,2,'role','system/role/index','',1,0,'C','0','0','system:role:list','ant-design:team-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:37:39','角色管理菜单'), +(8,'菜单管理',1,1,NULL,3,'menu','system/menu/index','',1,0,'C','0','0','system:menu:list','ant-design:menu-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:39:02','菜单管理菜单'), +(9,'组织管理',1,1,NULL,4,'dept','system/dept/index','',1,0,'C','0','0','system:dept:list','ant-design:apartment-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:42:16','部门管理菜单'), +(10,'岗位管理',1,1,NULL,5,'post','system/post/index','',1,0,'C','0','0','system:post:list','ant-design:solution-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:43:25','岗位管理菜单'), +(11,'字典管理',1,1,NULL,6,'dict','system/dict/index','',1,0,'C','0','0','system:dict:list','ant-design:book-twotone',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:48:51','字典管理菜单'), +(12,'参数设置',1,1,NULL,7,'config','system/config/index','',1,0,'C','0','0','system:config:list','ant-design:tool-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:50:51','参数设置菜单'), +(13,'通知公告',1,1,NULL,8,'notice','system/notice/index','',1,0,'C','0','0','system:notice:list','ant-design:notification-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:51:37','通知公告菜单'), +(14,'日志管理',1,1,NULL,9,'log','','',1,0,'M','0','0','','ant-design:file-text-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:53:07','日志管理菜单'), +(15,'在线用户',2,1,NULL,1,'online','monitor/online/index','',1,0,'C','0','0','monitor:online:list','ant-design:api-filled',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:58:44','在线用户菜单'), +(16,'缓存监控',2,1,NULL,5,'cache','monitor/cache/index','',1,0,'C','0','0','monitor:cache:list','ant-design:codepen-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:59:18','缓存监控菜单'), +(17,'代码生成',3,1,NULL,2,'gen','tool/gen/index','',1,0,'C','0','0','tool:gen:list','ant-design:code-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 14:01:09','代码生成菜单'), +(18,'服务监控',2,1,NULL,5,'Admin','monitor/server/index','',1,0,'C','0','0','monitor:server:list','ant-design:bar-chart-outlined',103,1,'2025-02-13 11:56:36',1,'2025-03-17 10:47:57','Admin监控菜单'), +(19,'文件管理',1,1,NULL,10,'oss','system/oss/index','',1,0,'C','0','0','system:oss:list','ant-design:folder-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:55:15','文件管理菜单'), +(20,'任务调度中心',2,1,NULL,6,'snailjob','system/job/index','',1,0,'C','0','0','system:job:list','ant-design:align-center-outlined',103,1,'2025-02-13 11:56:36',11,'2025-03-19 17:08:27','SnailJob控制台菜单'), +(21,'租户管理',5,1,NULL,1,'tenant','system/tenant/index','',1,0,'C','0','0','system:tenant:list','ant-design:gold-twotone',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:56:31','租户管理菜单'), +(22,'租户套餐管理',5,1,NULL,2,'tenantPackage','system/tenantPackage/index','',1,0,'C','0','0','system:tenantPackage:list','ant-design:unordered-list-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:58:05','租户套餐管理菜单'), +(23,'客户端管理',1,1,NULL,11,'client','system/client/index','',1,0,'C','0','0','system:client:list','ant-design:group-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:54:54','客户端管理菜单'), +(24,'操作日志',14,1,NULL,1,'operlog','system/operlog/index','',1,0,'C','0','0','monitor:operlog:list','ant-design:file-text-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:53:18','操作日志菜单'), +(25,'登录日志',14,1,NULL,2,'logininfor','system/logininfor/index','',1,0,'C','0','0','monitor:logininfor:list','ant-design:file-text-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:53:29','登录日志菜单'), +(26,'用户查询',6,1,NULL,1,'','','',1,0,'F','0','0','system:user:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(27,'用户新增',6,1,NULL,2,'','','',1,0,'F','0','0','system:user:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(28,'用户修改',6,1,NULL,3,'','','',1,0,'F','0','0','system:user:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(29,'用户删除',6,1,NULL,4,'','','',1,0,'F','0','0','system:user:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(30,'用户导出',6,1,NULL,5,'','','',1,0,'F','0','0','system:user:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(31,'用户导入',6,1,NULL,6,'','','',1,0,'F','0','0','system:user:import','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(32,'重置密码',6,1,NULL,7,'','','',1,0,'F','0','0','system:user:resetPwd','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(33,'角色查询',7,1,NULL,1,'','','',1,0,'F','0','0','system:role:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(34,'角色新增',7,1,NULL,2,'','','',1,0,'F','0','0','system:role:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(35,'角色修改',7,1,NULL,3,'','','',1,0,'F','0','0','system:role:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(36,'角色删除',7,1,NULL,4,'','','',1,0,'F','0','0','system:role:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(37,'角色导出',7,1,NULL,5,'','','',1,0,'F','0','0','system:role:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(38,'菜单查询',8,1,NULL,1,'','','',1,0,'F','0','0','system:menu:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(39,'菜单新增',8,1,NULL,2,'','','',1,0,'F','0','0','system:menu:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(40,'菜单修改',8,1,NULL,3,'','','',1,0,'F','0','0','system:menu:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(41,'菜单删除',8,1,NULL,4,'','','',1,0,'F','0','0','system:menu:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(42,'组织查询',9,1,NULL,1,'','','',1,0,'F','0','0','system:dept:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(43,'组织新增',9,1,NULL,2,'','','',1,0,'F','0','0','system:dept:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(44,'组织修改',9,1,NULL,3,'','','',1,0,'F','0','0','system:dept:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(45,'组织删除',9,1,NULL,4,'','','',1,0,'F','0','0','system:dept:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(46,'岗位查询',10,1,NULL,1,'','','',1,0,'F','0','0','system:post:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(47,'岗位新增',10,1,NULL,2,'','','',1,0,'F','0','0','system:post:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(48,'岗位修改',10,1,NULL,3,'','','',1,0,'F','0','0','system:post:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(49,'岗位删除',10,1,NULL,4,'','','',1,0,'F','0','0','system:post:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(50,'岗位导出',10,1,NULL,5,'','','',1,0,'F','0','0','system:post:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(51,'字典查询',11,1,NULL,1,'#','','',1,0,'F','0','0','system:dict:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(52,'字典新增',11,1,NULL,2,'#','','',1,0,'F','0','0','system:dict:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(53,'字典修改',11,1,NULL,3,'#','','',1,0,'F','0','0','system:dict:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(54,'字典删除',11,1,NULL,4,'#','','',1,0,'F','0','0','system:dict:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(55,'字典导出',11,1,NULL,5,'#','','',1,0,'F','0','0','system:dict:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(56,'参数查询',12,1,NULL,1,'#','','',1,0,'F','0','0','system:config:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(57,'参数新增',12,1,NULL,2,'#','','',1,0,'F','0','0','system:config:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(58,'参数修改',12,1,NULL,3,'#','','',1,0,'F','0','0','system:config:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(59,'参数删除',12,1,NULL,4,'#','','',1,0,'F','0','0','system:config:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(60,'参数导出',12,1,NULL,5,'#','','',1,0,'F','0','0','system:config:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(61,'公告查询',13,1,NULL,1,'#','','',1,0,'F','0','0','system:notice:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(62,'公告新增',13,1,NULL,2,'#','','',1,0,'F','0','0','system:notice:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(63,'公告修改',13,1,NULL,3,'#','','',1,0,'F','0','0','system:notice:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(64,'公告删除',13,1,NULL,4,'#','','',1,0,'F','0','0','system:notice:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(65,'操作查询',24,1,NULL,1,'#','','',1,0,'F','0','0','monitor:operlog:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(66,'操作删除',24,1,NULL,2,'#','','',1,0,'F','0','0','monitor:operlog:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(67,'日志导出',24,1,NULL,4,'#','','',1,0,'F','0','0','monitor:operlog:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(68,'登录查询',25,1,NULL,1,'#','','',1,0,'F','0','0','monitor:logininfor:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(69,'登录删除',25,1,NULL,2,'#','','',1,0,'F','0','0','monitor:logininfor:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(70,'日志导出',25,1,NULL,3,'#','','',1,0,'F','0','0','monitor:logininfor:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(71,'在线查询',15,1,NULL,1,'#','','',1,0,'F','0','0','monitor:online:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(72,'批量强退',15,1,NULL,2,'#','','',1,0,'F','0','0','monitor:online:batchLogout','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(73,'单条强退',15,1,NULL,3,'#','','',1,0,'F','0','0','monitor:online:forceLogout','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(74,'账户解锁',25,1,NULL,4,'#','','',1,0,'F','0','0','monitor:logininfor:unlock','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(75,'生成查询',17,1,NULL,1,'#','','',1,0,'F','0','0','tool:gen:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(76,'生成修改',17,1,NULL,2,'#','','',1,0,'F','0','0','tool:gen:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(77,'生成删除',17,1,NULL,3,'#','','',1,0,'F','0','0','tool:gen:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(78,'导入代码',17,1,NULL,2,'#','','',1,0,'F','0','0','tool:gen:import','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(79,'预览代码',17,1,NULL,4,'#','','',1,0,'F','0','0','tool:gen:preview','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(80,'生成代码',17,1,NULL,5,'#','','',1,0,'F','0','0','tool:gen:code','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(81,'客户端管理查询',23,1,NULL,1,'#','','',1,0,'F','0','0','system:client:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(82,'客户端管理新增',23,1,NULL,2,'#','','',1,0,'F','0','0','system:client:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(83,'客户端管理修改',23,1,NULL,3,'#','','',1,0,'F','0','0','system:client:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(84,'客户端管理删除',23,1,NULL,4,'#','','',1,0,'F','0','0','system:client:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(85,'客户端管理导出',23,1,NULL,5,'#','','',1,0,'F','0','0','system:client:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(86,'任务详情',20,1,NULL,1,'#','','',1,0,'F','0','0','system:job:view','#',103,1,'2025-03-26 09:03:17',NULL,NULL,'查看'), +(87,'任务新增',20,1,NULL,2,'#','','',1,0,'F','0','0','system:job:add','#',103,1,'2025-03-26 09:09:51',NULL,NULL,'新增'), +(88,'任务修改',20,1,NULL,3,'#','','',1,0,'F','0','0','system:job:update','#',103,1,'2025-03-26 09:09:51',NULL,NULL,'修改'), +(89,'任务状态修改',20,1,NULL,4,'#','','',1,0,'F','0','0','system:job:status','#',103,1,'2025-03-26 09:09:51',NULL,NULL,'修改状态'), +(90,'任务执行一次',20,1,NULL,5,'#','','',1,0,'F','0','0','system:job:exec','#',103,1,'2025-03-26 09:09:51',NULL,NULL,'执行一次'), +(91,'任务删除',20,1,NULL,6,'#','','',1,0,'F','0','0','system:job:delete','#',103,1,'2025-03-26 09:09:51',NULL,NULL,'删除'), +(92,'文件查询',19,1,NULL,1,'#','','',1,0,'F','0','0','system:oss:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(93,'文件上传',19,1,NULL,2,'#','','',1,0,'F','0','0','system:oss:upload','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(94,'文件下载',19,1,NULL,3,'#','','',1,0,'F','0','0','system:oss:download','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(95,'文件删除',19,1,NULL,4,'#','','',1,0,'F','0','0','system:oss:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(96,'租户查询',21,1,NULL,1,'#','','',1,0,'F','0','0','system:tenant:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(97,'租户新增',21,1,NULL,2,'#','','',1,0,'F','0','0','system:tenant:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(98,'租户修改',21,1,NULL,3,'#','','',1,0,'F','0','0','system:tenant:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(99,'租户删除',21,1,NULL,4,'#','','',1,0,'F','0','0','system:tenant:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(100,'租户导出',21,1,NULL,5,'#','','',1,0,'F','0','0','system:tenant:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(101,'租户套餐查询',22,1,NULL,1,'#','','',1,0,'F','0','0','system:tenantPackage:query','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(102,'租户套餐新增',22,1,NULL,2,'#','','',1,0,'F','0','0','system:tenantPackage:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(103,'租户套餐修改',22,1,NULL,3,'#','','',1,0,'F','0','0','system:tenantPackage:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(104,'租户套餐删除',22,1,NULL,4,'#','','',1,0,'F','0','0','system:tenantPackage:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(105,'租户套餐导出',22,1,NULL,5,'#','','',1,0,'F','0','0','system:tenantPackage:export','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(106,'配置列表',19,1,NULL,5,'#','','',1,0,'F','0','0','system:ossConfig:list','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(107,'配置添加',19,1,NULL,6,'#','','',1,0,'F','0','0','system:ossConfig:add','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(108,'配置编辑',19,1,NULL,6,'#','','',1,0,'F','0','0','system:ossConfig:edit','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(109,'配置删除',19,1,NULL,6,'#','','',1,0,'F','0','0','system:ossConfig:remove','#',103,1,'2025-02-13 11:56:36',NULL,NULL,''), +(110,'字典数据',1,1,NULL,6,'dict-data/:id','system/dict-data/index','',1,0,'C','1','0','system:dict:list','ant-design:book-outlined',103,1,'2025-02-13 11:56:36',1,'2025-02-25 13:48:35','字典数据菜单'), +(111,'OSS配置',1,1,NULL,10,'oss-config','system/oss-config/index','',1,1,'C','1','0','system:oss-config:list','ant-design:file-outlined',103,1,'2025-03-13 16:19:44',1,'2025-03-13 16:19:44',''), +(112,'生成配置',3,1,NULL,20,'gen-develop','tool/gen/develop','',1,0,'C','1','0','tool:gen:develop','ant-design:code-outlined',103,1,'2025-03-20 11:43:45',1,'2025-03-26 15:35:17',''), +(113,'同步菜单',21,1,NULL,1,'','','',1,0,'F','0','0','system:tenant:syncmenu','',103,1,'2026-03-08 11:06:09',1,'2026-03-08 11:09:00',''), +(114,'套餐分类',178,2,'tr_1659 ',11,'tSimPackageCategory','iotlcm/tPricingPackage/tSimPackageCategory/index','',1,0,'C','0','0','iot:tSimPackageCategory:list','ant-design:interaction-outlined',103,1,'2026-05-26 11:41:45',1,'2026-06-03 14:00:54',''), +(115,'套餐分类表详情',114,3,'tr_1659 tr_1660 ',10,'','','',1,0,'F','0','0','iot:tSimPackageCategory:view','',103,1,'2026-05-26 11:41:45',NULL,NULL,''), +(116,'编辑/新增套餐分类表',114,3,'tr_1659 tr_1660 ',10,'','','',1,0,'F','0','0','iot:tSimPackageCategory:edit','',103,1,'2026-05-26 11:41:45',NULL,NULL,''), +(117,'删除套餐分类表',114,3,'tr_1659 tr_1660 ',10,'','','',1,0,'F','0','0','iot:tSimPackageCategory:delete','',103,1,'2026-05-26 11:41:45',NULL,NULL,''), +(118,'导出套餐分类表',114,3,'tr_1659 tr_1660 ',10,'','','',1,0,'F','0','0','iot:tSimPackageCategory:export','',103,1,'2026-05-26 11:41:45',NULL,NULL,''), +(119,'通道管理',179,2,'tr_1665 ',21,'tSimChannels','iotlcm/tChannel/tSimChannels/index','',1,0,'C','0','0','iot:tSimChannels:list','ant-design:appstore-outlined',103,1,'2026-05-26 14:47:55',1,'2026-06-03 13:25:05',''), +(120,'通道管理详情',119,3,'tr_1665 tr_1666 ',10,'','','',1,0,'F','0','0','iot:tSimChannels:view','',103,1,'2026-05-26 14:47:55',1,'2026-05-27 09:05:20',''), +(121,'编辑/新增通道列表',119,3,'tr_1665 tr_1666 ',10,'','','',1,0,'F','0','0','iot:tSimChannels:edit','',103,1,'2026-05-26 14:47:55',1,'2026-05-27 09:12:57',''), +(122,'删除通道列表',119,3,'tr_1665 tr_1666 ',10,'','','',1,0,'F','0','0','iot:tSimChannels:delete','',103,1,'2026-05-26 14:47:55',1,'2026-05-27 09:13:11',''), +(123,'导出通道列表',119,3,'tr_1665 tr_1666 ',10,'','','',1,0,'F','0','0','iot:tSimChannels:export','',103,1,'2026-05-26 14:47:55',1,'2026-05-27 09:13:34',''), +(124,'通道模板详情',134,3,'tr_1671 tr_1672 ',9,'','','',1,0,'F','0','0','iot:tSimChannelTemplate:view','',103,1,'2026-05-26 14:53:52',1,'2026-05-27 09:16:30',''), +(125,'编辑/新增通道模板',134,3,'tr_1671 tr_1672 ',9,'','','',1,0,'F','0','0','iot:tSimChannelTemplate:edit','',103,1,'2026-05-26 14:53:52',1,'2026-05-27 09:16:40',''), +(126,'删除通道模板',134,3,'tr_1671 tr_1672 ',9,'','','',1,0,'F','0','0','iot:tSimChannelTemplate:delete','',103,1,'2026-05-26 14:53:52',1,'2026-05-27 09:16:53',''), +(127,'导出通道模板',134,3,'tr_1671 tr_1672 ',9,'','','',1,0,'F','0','0','iot:tSimChannelTemplate:export','',103,1,'2026-05-26 14:53:52',1,'2026-05-27 09:17:05',''), +(128,'SIM流量套餐',178,2,'tr_1677 ',21,'tSimFlowPackageInfo','iotlcm/tPricingPackage/tSimFlowPackageInfo/index','',1,0,'C','0','0','iot:tSimFlowPackageInfo:list','ant-design:global-outlined',103,1,'2026-05-26 15:36:39',1,'2026-06-03 14:01:16',''), +(129,'SIM流量套餐管理详情',128,3,'tr_1677 tr_1678 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPackageInfo:view','',103,1,'2026-05-26 15:36:39',NULL,NULL,''), +(130,'编辑/新增SIM流量套餐管理',128,3,'tr_1677 tr_1678 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPackageInfo:edit','',103,1,'2026-05-26 15:36:39',NULL,NULL,''), +(131,'删除SIM流量套餐管理',128,3,'tr_1677 tr_1678 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPackageInfo:delete','',103,1,'2026-05-26 15:36:39',NULL,NULL,''), +(132,'操作SIM流量套餐管理开关',128,3,'tr_1677 tr_1678 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPackageInfo:switch','',103,1,'2026-05-26 15:36:39',NULL,NULL,''), +(133,'导出SIM流量套餐管理',128,3,'tr_1677 tr_1678 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPackageInfo:export','',103,1,'2026-05-26 15:36:39',NULL,NULL,''), +(134,'通道模版',179,1,NULL,1,'tSimChannelTemplate','iotlcm/tChannel/tSimChannelTemplate/index','',1,0,'C','0','0','iot:tSimChannelTemplate:list','ant-design:slack-outlined',103,1,'2026-05-27 09:07:12',1,'2026-07-21 09:03:58',''), +(135,'SIM流量套餐定价',178,2,'tr_1686 ',31,'tSimFlowPackagePrice','iotlcm/tPricingPackage/tSimFlowPackagePrice/index','',1,0,'C','0','0','iot:tSimFlowPackagePrice:agentDefaultPackagePrice:list','ant-design:sliders-outlined',103,1,'2026-05-27 09:24:36',1,'2026-06-03 14:01:47',''), +(136,'村级行政区划表',1,1,NULL,12,'tDivisionCode','LAYOUT','',1,0,'M','0','0','','ant-design:home-twotone',103,1,'2026-05-27 10:28:00',1,'2026-06-03 11:27:41',''), +(137,'村级行政区划表列表',136,2,'tr_1704 ',10,'index','common/tDivisionCode/index','',1,0,'C','0','0','common:tDivisionCode:list','ant-design:home-twotone',103,1,'2026-05-27 10:28:00',1,'2026-05-29 09:48:22',''), +(138,'村级行政区划表详情',137,3,'tr_1704 tr_1705 ',10,'','','',1,0,'F','0','0','common:tDivisionCode:view','',103,1,'2026-05-27 10:28:00',NULL,NULL,''), +(139,'编辑/新增村级行政区划表',137,3,'tr_1704 tr_1705 ',10,'','','',1,0,'F','0','0','common:tDivisionCode:edit','',103,1,'2026-05-27 10:28:00',NULL,NULL,''), +(140,'删除村级行政区划表',137,3,'tr_1704 tr_1705 ',10,'','','',1,0,'F','0','0','common:tDivisionCode:delete','',103,1,'2026-05-27 10:28:00',NULL,NULL,''), +(141,'导出村级行政区划表',137,3,'tr_1704 tr_1705 ',10,'','','',1,0,'F','0','0','common:tDivisionCode:export','',103,1,'2026-05-27 10:28:00',NULL,NULL,''), +(142,'企业客户单位信息',170,1,'',1,'tAgentEnterprise','LAYOUT','',1,0,'M','0','0','','ant-design:home-twotone',103,1,'2026-05-27 14:09:49',1,'2026-05-29 09:50:38',''), +(143,'企业客户单位信息列表',142,2,'tr_1710 ',10,'index','agent/tAgentEnterprise/index','',1,0,'C','0','0','agent:tAgentEnterprise:list','ant-design:home-twotone',103,1,'2026-05-27 14:09:49',1,'2026-05-27 14:09:49',''), +(144,'企业客户单位信息详情',143,3,'tr_1710 tr_1711 ',10,'','','',1,0,'F','0','0','agent:tAgentEnterprise:view','',103,1,'2026-05-27 14:09:49',NULL,NULL,''), +(145,'编辑/新增企业客户单位信息',143,3,'tr_1710 tr_1711 ',10,'','','',1,0,'F','0','0','agent:tAgentEnterprise:edit','',103,1,'2026-05-27 14:09:49',NULL,NULL,''), +(146,'删除企业客户单位信息',143,3,'tr_1710 tr_1711 ',10,'','','',1,0,'F','0','0','agent:tAgentEnterprise:delete','',103,1,'2026-05-27 14:09:49',NULL,NULL,''), +(147,'导出企业客户单位信息',143,3,'tr_1710 tr_1711 ',10,'','','',1,0,'F','0','0','agent:tAgentEnterprise:export','',103,1,'2026-05-27 14:09:49',NULL,NULL,''), +(148,'API凭证管理',268,2,'tr_1716 ',20,'tApi','iotlcm/tApi/index','',1,0,'C','0','0','agent:tApi:list','ant-design:api-outlined',103,1,'2026-05-28 08:58:29',1,'2026-07-31 19:27:37',''), +(149,'API集成详情',148,3,'tr_1716 tr_1717 ',10,'','','',1,0,'F','0','0','agent:tApi:view','',103,1,'2026-05-28 08:58:29',NULL,NULL,''), +(150,'编辑/新增API集成',148,3,'tr_1716 tr_1717 ',10,'','','',1,0,'F','0','0','agent:tApi:edit','',103,1,'2026-05-28 08:58:29',NULL,NULL,''), +(151,'删除API集成',148,3,'tr_1716 tr_1717 ',10,'','','',1,0,'F','0','0','agent:tApi:delete','',103,1,'2026-05-28 08:58:29',NULL,NULL,''), +(152,'导出API集成',148,3,'tr_1716 tr_1717 ',10,'','','',1,0,'F','0','0','agent:tApi:export','',103,1,'2026-05-28 08:58:29',NULL,NULL,''), +(153,'卡信息',176,2,'tr_1722 ',31,'tSimCardInfo','iotlcm/tCommunication/tSimCardInfo/index','',1,0,'C','0','0','iot:tSimCardInfo:list','ant-design:layout-outlined',103,1,'2026-05-28 09:21:36',1,'2026-06-11 13:17:59',''), +(154,'卡信息表详情',153,3,'tr_1722 tr_1723 ',10,'','','',1,0,'F','0','0','iot:tSimCardInfo:view','',103,1,'2026-05-28 09:21:36',1,'2026-06-01 13:13:23',''), +(155,'编辑卡信息表',153,3,'tr_1722 tr_1723 ',10,'','','',1,0,'F','0','0','iot:tSimCardInfo:edit','',103,1,'2026-05-28 09:21:36',1,'2026-06-12 11:33:31',''), +(156,'删除卡信息表',153,3,'tr_1722 tr_1723 ',10,'','','',1,0,'F','0','0','iot:tSimCardInfo:delete','',103,1,'2026-05-28 09:21:36',1,'2026-06-01 13:13:44',''), +(157,'导出卡信息表',153,3,'tr_1722 tr_1723 ',10,'','','',1,0,'F','0','0','iot:tSimCardInfo:export','',103,1,'2026-05-28 09:21:36',1,'2026-06-01 13:14:13',''), +(158,'客户提现账户表',170,1,'',1,'tCustWithdrawAccount','LAYOUT','',1,0,'M','0','0','','ant-design:home-twotone',103,1,'2026-05-28 11:16:48',1,'2026-06-03 13:41:35',''), +(159,'客户提现账户表列表',158,2,'tr_1728 ',10,'index','another/tCustWithdrawAccount/index','',1,0,'C','0','0','agent:tCustWithdrawAccount:list','ant-design:home-twotone',103,1,'2026-05-28 11:16:48',1,'2026-06-03 13:42:03',''), +(160,'客户提现账户表详情',159,3,'tr_1728 tr_1729 ',10,'','','',1,0,'F','0','0','agent:tCustWithdrawAccount:view','',103,1,'2026-05-28 11:16:48',NULL,NULL,''), +(161,'编辑/新增客户提现账户表',159,3,'tr_1728 tr_1729 ',10,'','','',1,0,'F','0','0','agent:tCustWithdrawAccount:edit','',103,1,'2026-05-28 11:16:48',NULL,NULL,''), +(162,'删除客户提现账户表',159,3,'tr_1728 tr_1729 ',10,'','','',1,0,'F','0','0','agent:tCustWithdrawAccount:delete','',103,1,'2026-05-28 11:16:48',NULL,NULL,''), +(163,'修改客户提现账户表状态',159,3,'tr_1728 tr_1729 ',10,'','','',1,0,'F','0','0','agent:tCustWithdrawAccount:status','',103,1,'2026-05-28 11:16:48',NULL,NULL,''), +(164,'导出客户提现账户表',159,3,'tr_1728 tr_1729 ',10,'','','',1,0,'F','0','0','agent:tCustWithdrawAccount:export','',103,1,'2026-05-28 11:16:48',NULL,NULL,''), +(165,'批次管理',177,2,'tr_1735 ',31,'tBatch','iotlcm/tLifeCycle/tBatch/index','',1,0,'C','0','0','common:batchMain:list','ant-design:group-outlined',103,1,'2026-05-28 15:34:25',1,'2026-06-03 13:57:31',''), +(166,'批次主表详情',165,3,'tr_1735 tr_1736 ',10,'','','',1,0,'F','0','0','common:batchMain:view','',103,1,'2026-05-28 15:34:25',1,'2026-06-01 13:37:05',''), +(167,'编辑/新增批次主表',165,3,'tr_1735 tr_1736 ',10,'','','',1,0,'F','0','0','common:batchMain:edit','',103,1,'2026-05-28 15:34:25',1,'2026-06-01 13:37:18',''), +(168,'删除批次主表',165,3,'tr_1735 tr_1736 ',10,'','','',1,0,'F','0','0','common:batchMain:delete','',103,1,'2026-05-28 15:34:25',1,'2026-06-01 13:37:40',''), +(169,'导出批次主表',165,3,'tr_1735 tr_1736 ',10,'','','',1,0,'F','0','0','common:batchMain:export','',103,1,'2026-05-28 15:34:25',1,'2026-06-01 13:37:28',''), +(170,'不展示的目录',0,1,NULL,999,'another','','',1,0,'M','1','0','','ant-design:home-twotone',103,1,'2026-05-29 09:50:22',1,'2026-06-03 13:41:03',''), +(171,'上游套餐',178,2,'tr_1755 ',1,'tSimUpstreamPackage','iotlcm/tPricingPackage/tSimUpstreamPackage/index','',1,0,'C','0','0','iot:tSimUpstreamPackage:list','ant-design:gold-twotone',103,1,'2026-06-02 15:13:21',1,'2026-07-24 13:30:22',''), +(172,'上游套餐表详情',171,3,'tr_1755 tr_1756 ',10,'','','',1,0,'F','0','0','iot:tSimUpstreamPackage:view','',103,1,'2026-06-02 15:13:21',NULL,NULL,''), +(173,'编辑/新增上游套餐表',171,3,'tr_1755 tr_1756 ',10,'','','',1,0,'F','0','0','iot:tSimUpstreamPackage:edit','',103,1,'2026-06-02 15:13:21',NULL,NULL,''), +(174,'删除上游套餐表',171,3,'tr_1755 tr_1756 ',10,'','','',1,0,'F','0','0','iot:tSimUpstreamPackage:delete','',103,1,'2026-06-02 15:13:21',NULL,NULL,''), +(175,'导出上游套餐表',171,3,'tr_1755 tr_1756 ',10,'','','',1,0,'F','0','0','iot:tSimUpstreamPackage:export','',103,1,'2026-06-02 15:13:21',NULL,NULL,''), +(176,'通讯管理',0,1,NULL,1,'tCommunication','','',1,0,'M','0','0','','ant-design:credit-card-outlined',103,1,'2026-06-03 11:39:30',1,'2026-07-24 14:59:55',''), +(177,'生命周期管理',0,1,NULL,3,'tLifeCycle','','',1,0,'M','0','0','','ant-design:interaction-outlined',103,1,'2026-06-03 11:40:59',1,'2026-07-31 14:49:39',''), +(178,'资费套餐管理',0,1,NULL,2,'tPricingPackage','','',1,0,'M','0','0','','ant-design:book-outlined',103,1,'2026-06-03 11:41:44',1,'2026-07-31 14:49:33',''), +(179,'通道管理',0,1,NULL,3,'tChannel','','',1,0,'M','0','0','','ant-design:bars-outlined',103,1,'2026-06-03 11:43:24',1,'2026-07-31 14:49:52',''), +(180,'库存卡信息',177,3,'tr_1762 tr_1765 ',10,'tSimCardStock','iotlcm/tLifeCycle/tSimCardStock/index','',1,0,'C','0','0','iot:tSimCardStock:list','ant-design:credit-card-outlined',103,1,'2026-06-03 17:12:41',1,'2026-07-20 15:23:04',''), +(181,'库存卡信息表详情',180,4,'tr_1762 tr_1765 tr_1766 ',10,'','','',1,0,'F','0','0','iot:tSimCardStock:view','',103,1,'2026-06-03 17:12:41',1,'2026-06-03 18:01:35',''), +(182,'编辑/新增库存卡信息表',180,4,'tr_1762 tr_1765 tr_1766 ',10,'','','',1,0,'F','0','0','iot:tSimCardStock:edit','',103,1,'2026-06-03 17:12:41',1,'2026-06-03 18:01:45',''), +(183,'删除库存卡信息表',180,4,'tr_1762 tr_1765 tr_1766 ',10,'','','',1,0,'F','0','0','iot:tSimCardStock:delete','',103,1,'2026-06-03 17:12:41',1,'2026-06-03 18:02:00',''), +(184,'导出库存卡信息表',180,4,'tr_1762 tr_1765 tr_1766 ',10,'','','',1,0,'F','0','0','iot:tSimCardStock:export','',103,1,'2026-06-03 17:12:41',1,'2026-06-03 18:02:08',''), +(185,'测试菜单',0,1,NULL,9999,'test','test/index','',1,0,'C','0','0','','',103,1,'2026-06-04 15:23:18',1,'2026-06-04 15:23:18',''), +(186,'流量池',176,2,'tr_1772 ',51,'tSimFlowPool','iotlcm/tPricingPackage/tSimFlowPool/index','',1,0,'C','0','0','iot:tSimFlowPool:list','ant-design:dashboard-outlined',103,1,'2026-06-04 17:26:42',1,'2026-07-20 15:23:27',''), +(187,'流量池表详情',186,3,'tr_1772 tr_1773 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPool:view','',103,1,'2026-06-04 17:26:42',1,'2026-06-05 10:06:02',''), +(188,'编辑/新增流量池表',186,3,'tr_1772 tr_1773 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPool:edit','',103,1,'2026-06-04 17:26:42',1,'2026-06-05 10:06:17',''), +(189,'删除流量池表',186,3,'tr_1772 tr_1773 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPool:delete','',103,1,'2026-06-04 17:26:42',1,'2026-06-05 10:06:32',''), +(190,'导出流量池表',186,3,'tr_1772 tr_1773 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPool:export','',103,1,'2026-06-04 17:26:42',1,'2026-06-05 10:06:47',''), +(191,'卡信息 单张卡同步用量',153,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardInfo:syncCardFlow','',103,1,'2026-06-05 09:03:55',1,'2026-07-01 11:41:59',''), +(192,'API调试',1,1,NULL,999,'api','system/api/index','',1,0,'C','0','0','','ant-design:api-twotone',103,1,'2026-06-05 10:46:03',1,'2026-06-05 10:46:03',''), +(193,'部门树',153,1,NULL,1,'','','',1,0,'F','0','0','system:dept:list','',103,1,'2026-06-07 19:26:13',1,'2026-06-07 19:31:45',''), +(194,'入库管理',177,1,NULL,1,'tWarehousing','iotlcm/tLifeCycle/tWarehousing/index','',1,0,'C','0','0','','ant-design:folder-open-outlined',103,1,'2026-06-08 10:36:34',1,'2026-06-08 10:36:34',''), +(195,'智能诊断',176,1,NULL,55,'tIntelligentDiagnosis','iotlcm/tIntelligentDiagnosis/index','',1,0,'C','0','0','','ant-design:tool-outlined',103,1,'2026-06-10 13:19:46',1,'2026-07-21 09:33:49',''), +(196,'企业管理',0,1,NULL,6,'enterpriseManagement','','',1,0,'M','0','0','','ant-design:appstore-outlined',103,1,'2026-06-11 12:32:12',1,'2026-07-31 14:50:15',''), +(197,'企业信息',196,1,NULL,1,'UnitInformation','system/enterpriseManagement/UnitInformation/index','',1,0,'C','0','0','','ant-design:bank-outlined',103,1,'2026-06-11 13:15:04',1,'2026-08-07 14:13:23',''), +(198,'实名认证',196,1,NULL,2,'realNameAuthentication','system/enterpriseManagement/realNameAuthentication/index','',1,0,'F','0','0','','ant-design:appstore-outlined',103,1,'2026-06-11 13:21:54',1,'2026-06-29 14:08:40',''), +(199,'新增卡信息表',153,1,NULL,10,'','','',1,0,'F','0','0','iot:tSimCardInfo:add','',103,1,'2026-06-12 11:33:12',1,'2026-06-12 11:33:12',''), +(200,'我的API凭证',0,1,NULL,11,'tDeptApi','iotlcm/tDeptApi/index','',1,0,'C','0','0','agent:dept:apiInfo','ant-design:apartment-outlined',103,1,'2026-06-16 11:24:57',1,'2026-07-31 19:53:46',''), +(201,'同步卡状态',153,1,NULL,2,'','','',1,0,'F','0','0','iot:tSimCardInfo:syncSimCardStatus','',103,1,'2026-06-18 17:02:11',1,'2026-07-31 14:16:33',''), +(202,'平台设置管理',196,1,NULL,3,'tTplatformSetting','system/enterpriseManagement/tTplatformSetting/index.vue','',1,0,'F','0','0','system:tTplatformSetting:list','ant-design:appstore-twotone',103,1,'2026-06-21 18:25:11',1,'2026-06-29 14:08:53',''), +(203,'修改/新增二级域名站点个性化配置表',202,1,NULL,1,'','','',1,0,'F','0','0','system:tTplatformSetting:edit','',103,1,'2026-06-21 18:29:47',1,'2026-06-21 18:29:47',''), +(204,'获取二级域名站点个性化配置表指定信息',202,1,NULL,1,'','','',1,0,'F','0','0','system:tTplatformSetting:view','',103,1,'2026-06-21 19:01:18',1,'2026-06-21 19:01:18',''), +(205,'企业客户',196,1,NULL,5,'organizationStructure','agent/structure/index','',1,0,'C','0','0','agent:dept:list','ant-design:apartment-outlined',103,1,'2026-06-22 03:00:34',1,'2026-06-22 16:25:23','企业管理下级组织架构'), +(206,'组织查询',205,1,NULL,1,'','','',1,0,'F','0','0','agent:dept:query','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(207,'组织新增',205,1,NULL,2,'','','',1,0,'F','0','0','agent:dept:edit','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(208,'组织修改',205,1,NULL,3,'','','',1,0,'F','0','0','agent:dept:edit','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(209,'组织删除',205,1,NULL,4,'','','',1,0,'F','0','0','agent:dept:remove','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(210,'用户管理',196,1,NULL,4,'subordinateUsers','agent/users/index','',1,0,'C','0','0','agent:user:list','ant-design:user-outlined',103,1,'2026-06-22 03:00:34',1,'2026-06-22 16:25:56','企业管理下级用户'), +(211,'用户查询',210,1,NULL,1,'','','',1,0,'F','0','0','agent:user:query','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(212,'用户新增',210,1,NULL,2,'','','',1,0,'F','0','0','agent:user:add','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(213,'用户修改',210,1,NULL,3,'','','',1,0,'F','0','0','agent:user:edit','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(214,'用户删除',210,1,NULL,4,'','','',1,0,'F','0','0','agent:user:remove','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(215,'用户导出',210,1,NULL,5,'','','',1,0,'F','0','0','agent:user:export','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(216,'用户导入',210,1,NULL,6,'','','',1,0,'F','0','0','agent:user:import','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(217,'重置密码',210,1,NULL,7,'','','',1,0,'F','0','0','agent:user:resetPwd','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(218,'角色管理',196,1,NULL,6,'rolePermission','agent/roles/index','',1,0,'C','0','0','agent:role:list','ant-design:team-outlined',103,1,'2026-06-22 03:00:34',1,'2026-06-22 16:26:23','企业管理角色权限'), +(219,'角色查询',218,1,NULL,1,'','','',1,0,'F','0','0','agent:role:query','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(220,'角色新增',218,1,NULL,2,'','','',1,0,'F','0','0','agent:role:edit','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(221,'角色修改',218,1,NULL,3,'','','',1,0,'F','0','0','agent:role:edit','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(222,'角色删除',218,1,NULL,4,'','','',1,0,'F','0','0','agent:role:remove','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(223,'角色导出',218,1,NULL,5,'','','',1,0,'F','0','0','agent:role:export','#',103,1,'2026-06-22 03:00:34',NULL,NULL,''), +(224,'渠道代理树',135,3,'tr_1686 tr_1687 ',10,'','','',1,0,'F','0','0','iot:tSimFlowPackagePrice:agentTree','',103,1,'2026-06-22 10:20:49',NULL,NULL,''), +(225,'查询下级代理套餐生效定价',135,3,'tr_1686 tr_1687 ',11,'','','',1,0,'F','0','0','iot:tSimFlowPackagePrice:agentPackagePrice:list','',103,1,'2026-06-22 10:48:17',NULL,NULL,''), +(226,'查询本级默认套餐定价',135,3,'tr_1686 tr_1687 ',12,'','','',1,0,'F','0','0','iot:tSimFlowPackagePrice:agentDefaultPackagePrice:list','',103,1,'2026-06-22 10:48:17',NULL,NULL,''), +(227,'执行日志',177,2,'tr_1762 ',32,'batchExecutionLog','iotlcm/tLifeCycle/tBatchExecutionLog/index','',1,0,'C','0','0','common:batchExecutionLog:list','ant-design:file-search-outlined',103,1,'2026-06-22 13:27:54',NULL,NULL,''), +(228,'执行日志详情',227,3,'tr_1762 tr_1836 ',10,'','','',1,0,'F','0','0','common:batchExecutionLog:detail','',103,1,'2026-06-22 13:27:54',NULL,NULL,''), +(229,'编辑本级默认套餐定价',135,3,'tr_1686 tr_1687 ',13,'','','',1,0,'F','0','0','iot:tSimFlowPackagePrice:agentDefaultPackagePrice:edit','',103,1,'2026-06-22 15:59:23',NULL,NULL,''), +(230,'编辑下级代理套餐定价',135,3,'tr_1686 tr_1687 ',14,'','','',1,0,'F','0','0','iot:tSimFlowPackagePrice:agentPackagePrice:edit','',103,1,'2026-06-22 15:59:23',NULL,NULL,''), +(231,'mfa验证',6,1,NULL,1,'','','',1,0,'F','0','0','system:user:query','',100,1,'2026-06-24 13:35:15',1,'2026-06-24 13:35:15',''), +(232,'mfa验证',6,1,NULL,1,'','','',1,0,'F','0','0','system:user:query','',100,1,'2026-06-24 13:51:16',1,'2026-06-24 13:51:16',''), +(233,'获取成功批次列表',165,1,NULL,10,'','','',1,0,'F','0','0','common:batchMain:successList','',100,1,'2026-06-24 16:31:10',1,'2026-06-24 16:31:10',''), +(234,'获取SIM流量套餐管理列表',128,1,NULL,10,'','','',1,0,'F','0','0','iot:tSimFlowPackageInfo:list','',100,1,'2026-06-24 16:54:20',1,'2026-06-24 16:54:20',''), +(235,'获取企业客户单位信息指定信息',198,1,NULL,10,'','','',1,0,'F','0','0','agent:tAgentEnterprise:view','',100,1,'2026-06-25 09:28:23',1,'2026-06-25 09:28:23',''), +(236,'获取村级行政区划表列表',197,1,NULL,10,'','','',1,0,'F','0','0','iot:tDivisionCode:list','',100,1,'2026-06-25 09:32:09',1,'2026-06-25 09:32:09',''), +(237,'查询SIM卡会话',154,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardInfo:querySimSession','',100,1,'2026-06-25 09:39:19',1,'2026-06-25 09:39:19',''), +(238,'获取直属下级',205,1,NULL,6,'',NULL,NULL,1,0,'F','0','0','agent:dept:subCompany','#',NULL,NULL,'2026-06-25 13:26:23',NULL,NULL,''), +(239,'根据流量池表获取卡列表',186,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimFlowPool:getCardsByPackageCodes','',100,1,'2026-06-25 16:02:04',1,'2026-06-25 16:02:04',''), +(240,'工单管理',0,1,'',9,'tWoMain','LAYOUT','',1,0,'M','0','0','','ant-design:diff-outlined',103,1,'2026-06-25 16:32:16',1,'2026-07-24 14:20:12',''), +(241,'工单主表详情',256,3,'tr_1858 tr_1859 ',10,'','','',1,0,'F','0','0','gen:tWoMain:view','',103,1,'2026-06-25 16:32:16',1,'2026-06-28 18:14:11',''), +(242,'编辑/新增工单主表',256,3,'tr_1858 tr_1859 ',10,'','','',1,0,'F','0','0','gen:tWoMain:edit','',103,1,'2026-06-25 16:32:16',1,'2026-06-28 18:14:26',''), +(243,'删除工单主表',256,3,'tr_1858 tr_1859 ',10,'','','',1,0,'F','0','0','gen:tWoMain:delete','',103,1,'2026-06-25 16:32:16',1,'2026-06-28 18:14:40',''), +(244,'导出工单主表',256,3,'tr_1858 tr_1859 ',10,'','','',1,0,'F','0','0','gen:tWoMain:export','',103,1,'2026-06-25 16:32:16',1,'2026-06-28 18:14:48',''), +(245,'工单问题沟通',240,2,'tr_1870 ',10,'tWoCommunication','common/tWoCommunication/index','',1,0,'C','1','0','gen:tWoCommunication:list','ant-design:home-twotone',103,1,'2026-06-25 16:36:25',1,'2026-07-07 14:28:44',''), +(246,'工单问题沟通表详情',245,3,'tr_1870 tr_1871 ',10,'','','',1,0,'F','0','0','gen:tWoCommunication:view','',103,1,'2026-06-25 16:36:25',NULL,NULL,''), +(247,'编辑/新增工单问题沟通表',245,3,'tr_1870 tr_1871 ',10,'','','',1,0,'F','0','0','gen:tWoCommunication:edit','',103,1,'2026-06-25 16:36:25',NULL,NULL,''), +(248,'删除工单问题沟通表',245,3,'tr_1870 tr_1871 ',10,'','','',1,0,'F','0','0','gen:tWoCommunication:delete','',103,1,'2026-06-25 16:36:25',NULL,NULL,''), +(249,'导出工单问题沟通表',245,3,'tr_1870 tr_1871 ',10,'','','',1,0,'F','0','0','gen:tWoCommunication:export','',103,1,'2026-06-25 16:36:25',NULL,NULL,''), +(250,'SIM流量套餐分类列表',114,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimPackageCategory:list','',100,1,'2026-06-26 14:25:49',1,'2026-06-26 14:34:25',''), +(251,'工单记录',240,2,'tr_1877 ',10,'tWoRecord','common/tWoRecord/index','',1,0,'C','0','0','gen:tWoRecord:list','ant-design:database-outlined',103,1,'2026-06-26 16:45:12',1,'2026-07-21 08:46:37',''), +(252,'工单记录表详情',251,3,'tr_1877 tr_1878 ',10,'','','',1,0,'F','0','0','gen:tWoRecord:view','',103,1,'2026-06-26 16:45:12',NULL,NULL,''), +(253,'编辑/新增工单记录表',251,3,'tr_1877 tr_1878 ',10,'','','',1,0,'F','0','0','gen:tWoRecord:edit','',103,1,'2026-06-26 16:45:12',NULL,NULL,''), +(254,'删除工单记录表',251,3,'tr_1877 tr_1878 ',10,'','','',1,0,'F','0','0','gen:tWoRecord:delete','',103,1,'2026-06-26 16:45:12',NULL,NULL,''), +(255,'导出工单记录表',251,3,'tr_1877 tr_1878 ',10,'','','',1,0,'F','0','0','gen:tWoRecord:export','',103,1,'2026-06-26 16:45:12',NULL,NULL,''), +(256,'我的工单',240,1,NULL,1,'tWoMain','common/tWoMain/index','',1,0,'C','0','0','gen:tWoMain:list','ant-design:container-outlined',100,1,'2026-06-28 18:13:34',1,'2026-07-21 08:45:09',''), +(257,'业务受理',176,1,NULL,1,'tBusinessAcceptance','iotlcm/tCommunication/tBusinessAcceptance/index','',1,0,'C','0','0','','ant-design:apartment-outlined',100,1,'2026-06-29 09:55:10',1,'2026-06-29 09:56:34',''), +(258,'查询SIM卡基本信息、会话信息、套餐信息',195,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimdiagnose:info','',100,1,'2026-06-30 17:06:19',1,'2026-06-30 17:06:19',''), +(259,'查询SIM卡使用流量',195,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimdiagnose:flow','',100,1,'2026-06-30 17:07:30',1,'2026-06-30 17:07:30',''), +(260,'转单',256,1,NULL,1,'','','',1,0,'F','0','0','gen:tWoMain:transfer','',100,1,'2026-07-01 10:17:07',1,'2026-07-01 10:17:07',''), +(261,'工单处理完成',256,1,NULL,1,'','','',1,0,'F','0','0','gen:tWoMain:resolve','',100,1,'2026-07-01 10:17:54',1,'2026-07-01 10:17:54',''), +(262,'取消工单',256,1,NULL,1,'','','',1,0,'F','0','0','gen:tWoMain:cancel','',100,1,'2026-07-01 10:18:27',1,'2026-07-01 10:18:27',''), +(263,'关闭工单',256,1,NULL,1,'','','',1,0,'F','0','0','gen:tWoMain:close','',100,1,'2026-07-01 10:18:55',1,'2026-07-01 10:18:55',''), +(264,'用户评价工单',256,1,NULL,1,'','','',1,0,'F','0','0','gen:tWoMain:evaluate','',100,1,'2026-07-01 10:19:25',1,'2026-07-01 10:19:25',''), +(265,'发送工单对话消息',245,1,NULL,1,'','','',1,0,'F','0','0','gen:tWoCommunication:message','',100,1,'2026-07-01 10:20:53',1,'2026-07-01 10:20:53',''), +(266,'批次卡清单',165,1,NULL,1,'','','',1,0,'F','0','0','common:batchMain:cards','',100,1,'2026-07-01 11:07:08',1,'2026-07-01 11:07:08',''), +(267,'获取执行日志明细列表',227,1,NULL,1,'','','',1,0,'F','0','0','common:batchExecutionLog:detailList','',100,1,'2026-07-01 11:10:42',1,'2026-07-01 11:10:42',''), +(268,'API权限管理',0,1,'',8,'tApiGroup','LAYOUT','',1,0,'M','0','0','','ant-design:home-twotone',103,1,'2026-07-02 13:59:41',1,'2026-07-31 19:50:13',''), +(269,'API权限组',268,2,'tr_1898 ',10,'tApiGroup','agent/tApiGroup/index','',1,0,'C','0','0','agent:tApiGroup:list','ant-design:home-twotone',103,1,'2026-07-02 13:59:41',1,'2026-07-31 19:48:51',''), +(270,'开放接口权限组表详情',269,3,'tr_1898 tr_1899 ',10,'','','',1,0,'F','0','0','agent:tApiGroup:view','',103,1,'2026-07-02 13:59:41',1,'2026-07-03 10:22:00',''), +(271,'编辑/新增开放接口权限组表',269,3,'tr_1898 tr_1899 ',10,'','','',1,0,'F','0','0','agent:tApiGroup:edit','',103,1,'2026-07-02 13:59:41',1,'2026-07-03 10:22:09',''), +(272,'删除开放接口权限组表',269,3,'tr_1898 tr_1899 ',10,'','','',1,0,'F','0','0','agent:tApiGroup:delete','',103,1,'2026-07-02 13:59:41',1,'2026-07-03 10:22:19',''), +(273,'修改开放接口权限组表状态',269,3,'tr_1898 tr_1899 ',10,'','','',1,0,'F','0','0','agent:tApiGroup:status','',103,1,'2026-07-02 13:59:41',1,'2026-07-03 10:23:04',''), +(274,'导出开放接口权限组表',269,3,'tr_1898 tr_1899 ',10,'','','',1,0,'F','0','0','agent:tApiGroup:export','',103,1,'2026-07-02 13:59:41',1,'2026-07-03 10:23:18',''), +(275,'API接口资源',268,2,'tr_1905 ',10,'tApiResource/index','agent/tApiResource/index','',1,0,'C','0','0','agent:tApiResource:list','ant-design:home-twotone',103,1,'2026-07-02 13:59:54',1,'2026-07-31 19:49:05',''), +(276,'开放接口资源表详情',275,3,'tr_1905 tr_1906 ',10,'','','',1,0,'F','0','0','agent:tApiResource:view','',103,1,'2026-07-02 13:59:54',1,'2026-07-03 10:23:42',''), +(277,'编辑/新增开放接口资源表',275,3,'tr_1905 tr_1906 ',10,'','','',1,0,'F','0','0','agent:tApiResource:edit','',103,1,'2026-07-02 13:59:54',1,'2026-07-03 10:23:54',''), +(278,'删除开放接口资源表',275,3,'tr_1905 tr_1906 ',10,'','','',1,0,'F','0','0','agent:tApiResource:delete','',103,1,'2026-07-02 13:59:54',1,'2026-07-03 10:24:08',''), +(279,'修改开放接口资源表状态',275,3,'tr_1905 tr_1906 ',10,'','','',1,0,'F','0','0','agent:tApiResource:status','',103,1,'2026-07-02 13:59:54',1,'2026-07-03 10:24:17',''), +(280,'导出开放接口资源表',275,3,'tr_1905 tr_1906 ',10,'','','',1,0,'F','0','0','agent:tApiResource:export','',103,1,'2026-07-02 13:59:54',1,'2026-07-03 10:24:27',''), +(281,'下载Excel批量卡入库模板',194,1,NULL,10,'','',NULL,1,0,'F','0','0','iot:tSimCardInbound:excel:template','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(282,'提交Excel批量卡入库',194,1,NULL,11,'','',NULL,1,0,'F','0','0','iot:tSimCardInbound:excel:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(283,'提交连号批量卡入库',194,1,NULL,12,'','',NULL,1,0,'F','0','0','iot:tSimCardInbound:range:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(284,'提交批量输入卡入库',194,1,NULL,13,'','',NULL,1,0,'F','0','0','iot:tSimCardInbound:input:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(285,'下载Excel批量卡出库模板',257,1,NULL,1,'','',NULL,1,0,'F','0','0','iot:tSimCardOutbound:excel:template','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(286,'提交Excel批量卡出库校验批次',257,1,NULL,2,'','',NULL,1,0,'F','0','0','iot:tSimCardOutbound:excel:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(287,'提交连号卡出库校验批次',257,1,NULL,3,'','',NULL,1,0,'F','0','0','iot:tSimCardOutbound:range:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(288,'提交批量输入卡出库',257,1,NULL,4,'','',NULL,1,0,'F','0','0','iot:tSimCardOutbound:input:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(289,'查询可出库批次列表',257,1,NULL,5,'','',NULL,1,0,'F','0','0','iot:tSimCardOutbound:inboundBatch:list','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(290,'查询指定批次卡列表',257,1,NULL,6,'','',NULL,1,0,'F','0','0','iot:tSimCardOutbound:inboundBatch:cards','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(291,'提交指定批次卡出库',257,1,NULL,7,'','',NULL,1,0,'F','0','0','iot:tSimCardOutbound:batch:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(292,'下载Excel卡续费模板',257,1,NULL,1,'','',NULL,1,0,'F','0','0','iot:tSimCardRenew:excel:template','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(293,'提交Excel卡续费',257,1,NULL,2,'','',NULL,1,0,'F','0','0','iot:tSimCardRenew:excel:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(294,'批量输入卡续费预处理',257,1,NULL,3,'','',NULL,1,0,'F','0','0','iot:tSimCardRenew:input:prepare','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(295,'确认批次卡续费',257,1,NULL,4,'','',NULL,1,0,'F','0','0','iot:tSimCardRenew:batch:confirm','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(296,'下载Excel卡退订模板',257,1,NULL,1,'','',NULL,1,0,'F','0','0','iot:tSimCardUnsub:excel:template','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(297,'提交Excel卡退订',257,1,NULL,2,'','',NULL,1,0,'F','0','0','iot:tSimCardUnsub:excel:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(298,'提交批量输入卡退订',257,1,NULL,3,'','',NULL,1,0,'F','0','0','iot:tSimCardUnsub:input:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(299,'提交连号卡退订',257,1,NULL,4,'','',NULL,1,0,'F','0','0','iot:tSimCardUnsub:range:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(300,'下载Excel卡变更套餐模板',257,1,NULL,1,'','',NULL,1,0,'F','0','0','iot:tSimCardChange:excel:template','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(301,'提交Excel卡变更套餐',257,1,NULL,2,'','',NULL,1,0,'F','0','0','iot:tSimCardChange:excel:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(302,'批量输入卡变更套餐预处理',257,1,NULL,3,'','',NULL,1,0,'F','0','0','iot:tSimCardChange:input:prepare','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(303,'连号卡变更套餐预处理',257,1,NULL,4,'','',NULL,1,0,'F','0','0','iot:tSimCardChange:range:prepare','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(304,'提交批次卡变更套餐',257,1,NULL,5,'','',NULL,1,0,'F','0','0','iot:tSimCardChange:batch:submit','',100,1,'2026-07-07 11:15:18',NULL,NULL,''), +(305,'企业客户财务信息列表',322,2,'tr_1940 ',10,'tAgentBalance','common/tAgentBalance/index','',1,0,'C','0','0','common:tAgentBalance:list','ant-design:contacts-outlined',103,1,'2026-07-07 15:48:59',1,'2026-07-21 09:26:07',''), +(306,'企业客户财务信息详情',305,3,'tr_1940 tr_1941 ',10,'','','',1,0,'F','0','0','common:tAgentBalance:view','',103,1,'2026-07-07 15:48:59',1,'2026-07-08 18:46:30',''), +(307,'编辑/新增企业客户财务信息',305,3,'tr_1940 tr_1941 ',10,'','','',1,0,'F','0','0','common:tAgentBalance:edit','',103,1,'2026-07-07 15:48:59',1,'2026-07-08 18:46:41',''), +(308,'删除企业客户财务信息',305,3,'tr_1940 tr_1941 ',10,'','','',1,0,'F','0','0','common:tAgentBalance:delete','',103,1,'2026-07-07 15:48:59',1,'2026-07-08 18:47:01',''), +(309,'修改企业客户财务信息状态',305,3,'tr_1940 tr_1941 ',10,'','','',1,0,'F','0','0','common:tAgentBalance:status','',103,1,'2026-07-07 15:48:59',1,'2026-07-08 18:47:15',''), +(310,'导出企业客户财务信息',305,3,'tr_1940 tr_1941 ',10,'','','',1,0,'F','0','0','common:tAgentBalance:export','',103,1,'2026-07-07 15:48:59',1,'2026-07-08 18:47:26',''), +(311,'消费账户月账单表列表',316,2,'tr_1947 ',10,'tConsumeAccountMonthBill','common/tConsumeAccountMonthBill/index','',1,0,'C','0','0','common:tConsumeAccountMonthBill:list','ant-design:account-book-filled',103,1,'2026-07-07 15:55:27',1,'2026-07-21 09:25:18',''), +(312,'消费账户月账单表详情',311,3,'tr_1947 tr_1948 ',10,'','','',1,0,'F','0','0','common:tConsumeAccountMonthBill:view','',103,1,'2026-07-07 15:55:27',1,'2026-07-08 18:43:58',''), +(313,'编辑/新增消费账户月账单表',311,3,'tr_1947 tr_1948 ',10,'','','',1,0,'F','0','0','common:tConsumeAccountMonthBill:edit','',103,1,'2026-07-07 15:55:27',1,'2026-07-08 18:44:12',''), +(314,'删除消费账户月账单表',311,3,'tr_1947 tr_1948 ',10,'','','',1,0,'F','0','0','common:tConsumeAccountMonthBill:delete','',103,1,'2026-07-07 15:55:27',1,'2026-07-08 18:44:27',''), +(315,'导出消费账户月账单表',311,3,'tr_1947 tr_1948 ',10,'','','',1,0,'F','0','0','common:tConsumeAccountMonthBill:export','',103,1,'2026-07-07 15:55:27',1,'2026-07-08 18:44:40',''), +(316,'账单',196,1,'',1,'tProfitAccountMonthBill','','',1,0,'M','0','0','','ant-design:dollar-outlined',103,1,'2026-07-07 15:56:20',1,'2026-07-21 08:39:08',''), +(317,'盈利账户月账单表详情',333,3,'tr_1953 tr_1954 ',10,'','','',1,0,'F','0','0','common:tProfitAccountMonthBill:view','',103,1,'2026-07-07 15:56:20',1,'2026-07-27 10:51:27',''), +(318,'编辑/新增盈利账户月账单表',333,3,'tr_1953 tr_1954 ',10,'','','',1,0,'F','0','0','common:tProfitAccountMonthBill:edit','',103,1,'2026-07-07 15:56:20',1,'2026-07-27 10:51:41',''), +(319,'删除盈利账户月账单表',333,3,'tr_1953 tr_1954 ',10,'','','',1,0,'F','0','0','common:tProfitAccountMonthBill:delete','',103,1,'2026-07-07 15:56:20',1,'2026-07-27 10:51:48',''), +(320,'导出盈利账户月账单表',333,3,'tr_1953 tr_1954 ',10,'','','',1,0,'F','0','0','common:tProfitAccountMonthBill:export','',103,1,'2026-07-07 15:56:20',1,'2026-07-27 10:51:55',''), +(321,'获取执行日志概要',227,1,NULL,10,'','','',1,0,'F','0','0','common:batchExecutionLog:summary','',100,1,'2026-07-08 13:46:29',1,'2026-07-08 13:46:29',''), +(322,'费用与成本',196,1,'',1,'tBalanceDetail','','',1,0,'M','0','0','','ant-design:money-collect-outlined',103,1,'2026-07-08 16:30:22',1,'2026-07-21 08:40:23',''), +(323,'余额明细表列表',322,2,'tr_1966 ',10,'tBalanceDetail','common/tBalanceDetail/index','',1,0,'C','0','0','common:tBalanceDetail:list','ant-design:wallet-outlined',103,1,'2026-07-08 16:30:22',1,'2026-07-21 09:30:21',''), +(324,'余额明细表详情',323,3,'tr_1966 tr_1967 ',10,'','','',1,0,'F','0','0','common:tBalanceDetail:view','',103,1,'2026-07-08 16:30:22',1,'2026-07-08 18:47:56',''), +(325,'编辑/新增余额明细表',323,3,'tr_1966 tr_1967 ',10,'','','',1,0,'F','0','0','common:tBalanceDetail:edit','',103,1,'2026-07-08 16:30:22',1,'2026-07-08 18:48:14',''), +(326,'删除余额明细表',323,3,'tr_1966 tr_1967 ',10,'','','',1,0,'F','0','0','common:tBalanceDetail:delete','',103,1,'2026-07-08 16:30:22',1,'2026-07-08 18:48:28',''), +(327,'导出余额明细表',323,3,'tr_1966 tr_1967 ',10,'','','',1,0,'F','0','0','common:tBalanceDetail:export','',103,1,'2026-07-08 16:30:22',1,'2026-07-08 18:48:55',''), +(328,'可提现变动明细',322,2,'tr_1972 ',10,'tFinWithdrawableChange','common/tFinWithdrawableChange/index','',1,0,'C','0','0','common:tFinWithdrawableChange:list','ant-design:transaction-outlined',103,1,'2026-07-08 16:33:47',1,'2026-07-21 09:30:42',''), +(329,'可提现变动明细表详情',328,3,'tr_1972 tr_1973 ',10,'','','',1,0,'F','0','0','common:tFinWithdrawableChange:view','',103,1,'2026-07-08 16:33:47',1,'2026-07-08 18:49:30',''), +(330,'编辑/新增可提现变动明细表',328,3,'tr_1972 tr_1973 ',10,'','','',1,0,'F','0','0','common:tFinWithdrawableChange:edit','',103,1,'2026-07-08 16:33:47',1,'2026-07-08 18:49:44',''), +(331,'删除可提现变动明细表',328,3,'tr_1972 tr_1973 ',10,'','','',1,0,'F','0','0','common:tFinWithdrawableChange:delete','',103,1,'2026-07-08 16:33:47',1,'2026-07-08 18:49:55',''), +(332,'导出可提现变动明细表',328,3,'tr_1972 tr_1973 ',10,'','','',1,0,'F','0','0','common:tFinWithdrawableChange:export','',103,1,'2026-07-08 16:33:47',1,'2026-07-08 18:50:09',''), +(333,'盈利账户月账单列表',316,1,NULL,1,'tProfitAccountMonthBill','common/tProfitAccountMonthBill/index','',1,0,'C','0','0','common:tProfitAccountMonthBill:list','ant-design:account-book-outlined',100,1,'2026-07-09 10:33:37',1,'2026-07-21 09:24:52',''), +(334,'财务总览',196,1,NULL,5,'financialOverview','common/financialOverview/index','',1,0,'C','0','0','','ant-design:property-safety-outlined',100,1,'2026-07-10 12:52:03',1,'2026-07-21 08:43:15',''), +(335,'下载Excel自主停机模板',257,1,NULL,10,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardStop:excel:template','#',100,1,'2026-07-13 17:12:33',NULL,NULL,'批量自主停机/复机第一版权限'), +(336,'提交Excel自主停机批次',257,1,NULL,11,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardStop:excel:submit','#',100,1,'2026-07-13 17:12:33',NULL,NULL,'批量自主停机/复机第一版权限'), +(337,'提交批量输入自主停机',257,1,NULL,12,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardStop:input:submit','#',100,1,'2026-07-13 17:12:33',NULL,NULL,'批量自主停机/复机第一版权限'), +(338,'下载Excel自主复机模板',257,1,NULL,13,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardStart:excel:template','#',100,1,'2026-07-13 17:12:33',NULL,NULL,'批量自主停机/复机第一版权限'), +(339,'提交Excel自主复机批次',257,1,NULL,14,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardStart:excel:submit','#',100,1,'2026-07-13 17:12:33',NULL,NULL,'批量自主停机/复机第一版权限'), +(340,'提交批量输入自主复机',257,1,NULL,15,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardStart:input:submit','#',100,1,'2026-07-13 17:12:33',NULL,NULL,'批量自主停机/复机第一版权限'), +(341,'获取企业客户财务信息列表',305,1,NULL,1,'','','',1,0,'F','0','0','gen:tAgentBalance:list','',100,1,'2026-07-14 10:46:16',1,'2026-07-14 10:46:16',''), +(342,'获取当前登录企业账户余额',305,1,NULL,1,'','','',1,0,'F','0','0','common:tAgentBalance:getAccountBalance','',100,1,'2026-07-14 10:48:02',1,'2026-07-14 10:48:02',''), +(343,'获取账户总览折线图',305,1,NULL,1,'','','',1,0,'F','0','0','common:tAgentBalance:accountTrend','',100,1,'2026-07-14 10:48:52',1,'2026-07-14 10:48:52',''), +(344,'套餐详情查询',153,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardBindPkg:getPkgInfo','',100,1,'2026-07-16 09:51:06',1,'2026-07-16 09:51:06',''), +(345,'获取订购表列表',153,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardBindPkg:list','',100,1,'2026-07-16 09:51:45',1,'2026-07-16 09:51:45',''), +(346,'变更套餐查询',153,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardBindPkg:getChangePkg','',100,1,'2026-07-16 09:52:19',1,'2026-07-16 09:52:19',''), +(347,'获取企业客户企业认证信息',197,1,NULL,1,'','','',1,0,'F','0','0','agent:tAgentEnterprise:view','',100,1,'2026-07-17 16:01:07',1,'2026-07-17 16:01:07',''), +(348,'通道列表',153,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimChannels:list','',100,1,'2026-07-20 15:14:43',1,'2026-07-20 15:14:43',''), +(349,'财务申请表列表',359,2,'tr_2007 ',1,'tFinanceApply','common/tFinanceApply/index','',1,0,'C','0','0','common:tFinanceApply:list','ant-design:home-twotone',103,1,'2026-07-22 14:12:55',1,'2026-07-22 15:24:56',''), +(350,'财务申请表详情',349,3,'tr_2007 tr_2008 ',10,'','','',1,0,'F','0','0','common:tFinanceApply:view','',103,1,'2026-07-22 14:12:55',1,'2026-07-22 15:25:23',''), +(351,'编辑/新增财务申请表',349,3,'tr_2007 tr_2008 ',10,'','','',1,0,'F','0','0','common:tFinanceApply:edit','',103,1,'2026-07-22 14:12:55',1,'2026-07-22 15:25:37',''), +(352,'删除财务申请表',349,3,'tr_2007 tr_2008 ',10,'','','',1,0,'F','0','0','common:tFinanceApply:delete','',103,1,'2026-07-22 14:12:55',1,'2026-07-22 15:25:52',''), +(353,'导出财务申请表',349,3,'tr_2007 tr_2008 ',10,'','','',1,0,'F','0','0','common:tFinanceApply:export','',103,1,'2026-07-22 14:12:55',1,'2026-07-22 15:26:11',''), +(354,'财务审核记录表',359,1,'',1,'tFinanceAuditRecord','common/tFinanceAuditRecord/index.vue','',1,0,'C','0','0','common:tFinanceAuditRecord:list','ant-design:home-twotone',103,1,'2026-07-22 14:13:55',1,'2026-07-22 15:10:22',''), +(355,'财务审核记录表详情',354,3,'tr_2013 tr_2014 ',10,'','','',1,0,'F','0','0','common:tFinanceAuditRecord:view','',103,1,'2026-07-22 14:13:55',1,'2026-07-22 15:21:20',''), +(356,'编辑/新增财务审核记录表',354,3,'tr_2013 tr_2014 ',10,'','','',1,0,'F','0','0','common:tFinanceAuditRecord:edit','',103,1,'2026-07-22 14:13:55',1,'2026-07-22 15:24:04',''), +(357,'删除财务审核记录表',354,3,'tr_2013 tr_2014 ',10,'','','',1,0,'F','0','0','common:tFinanceAuditRecord:delete','',103,1,'2026-07-22 14:13:55',1,'2026-07-22 15:26:33',''), +(358,'导出财务审核记录表',354,3,'tr_2013 tr_2014 ',10,'','','',1,0,'F','0','0','common:tFinanceAuditRecord:export','',103,1,'2026-07-22 14:13:55',1,'2026-07-22 15:27:03',''), +(359,'审核',196,1,NULL,13,'Finance','','',1,0,'M','0','0','','ant-design:database-filled',100,1,'2026-07-22 15:01:03',1,'2026-07-22 15:01:03',''), +(360,'获取财务审核记录表指定信息',354,1,NULL,1,'','','',1,0,'F','0','0','common:tFinanceAuditRecord:view','',100,1,'2026-07-22 15:15:18',1,'2026-07-22 15:15:18',''), +(361,'发起余额转可提现申请',305,1,NULL,1,'','','',1,0,'F','0','0','common:tAgentBalance:balanceTransferApply','',100,1,'2026-07-23 14:51:40',1,'2026-07-23 14:51:40',''), +(362,'通知日志列表',372,2,'tr_2023 ',10,'NotifyLog','common/tNotifyLog/index.vue','',1,0,'C','0','0','common:tNotifyLog:list','ant-design:home-twotone',103,1,'2026-07-24 14:29:57',1,'2026-07-24 15:32:46',''), +(363,'通知日志详情',362,3,'tr_2023 tr_2024 ',10,'','','',1,0,'F','0','0','common:tNotifyLog:view','',103,1,'2026-07-24 14:29:57',1,'2026-07-24 15:35:49',''), +(364,'编辑/新增通知日志',362,3,'tr_2023 tr_2024 ',10,'','','',1,0,'F','0','0','common:tNotifyLog:edit','',103,1,'2026-07-24 14:29:57',1,'2026-07-24 15:36:00',''), +(365,'删除通知日志',362,3,'tr_2023 tr_2024 ',10,'','','',1,0,'F','0','0','common:tNotifyLog:delete','',103,1,'2026-07-24 14:29:57',1,'2026-07-24 15:36:12',''), +(366,'导出通知日志',362,3,'tr_2023 tr_2024 ',10,'','','',1,0,'F','0','0','common:tNotifyLog:export','',103,1,'2026-07-24 14:29:57',1,'2026-07-24 15:36:24',''), +(367,'消息日志列表',372,2,'tr_2029 ',10,'tMessageLog','common/tMessageLog/index','',1,0,'C','0','0','common:tMessageLog:list','ant-design:home-twotone',103,1,'2026-07-24 14:30:34',1,'2026-07-24 15:33:49',''), +(368,'消息日志详情',367,3,'tr_2029 tr_2030 ',10,'','','',1,0,'F','0','0','common:tMessageLog:view','',103,1,'2026-07-24 14:30:34',1,'2026-07-24 15:36:34',''), +(369,'编辑/新增消息日志',367,3,'tr_2029 tr_2030 ',10,'','','',1,0,'F','0','0','common:tMessageLog:edit','',103,1,'2026-07-24 14:30:34',1,'2026-07-24 15:36:47',''), +(370,'删除消息日志',367,3,'tr_2029 tr_2030 ',10,'','','',1,0,'F','0','0','common:tMessageLog:delete','',103,1,'2026-07-24 14:30:34',1,'2026-07-24 15:36:58',''), +(371,'导出消息日志',367,3,'tr_2029 tr_2030 ',10,'','','',1,0,'F','0','0','common:tMessageLog:export','',103,1,'2026-07-24 14:30:34',1,'2026-07-24 15:37:09',''), +(372,'通知管理',0,1,NULL,20,'notify','','',1,0,'M','0','0','','',100,1,'2026-07-24 14:57:43',1,'2026-07-24 14:57:43',''), +(373,'下载Excel自主重启模板',257,1,NULL,1,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardRestart:excel:template','#',NULL,NULL,NULL,NULL,NULL,''), +(374,'提交Excel自主重启批次',257,1,NULL,2,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardRestart:excel:submit','#',NULL,NULL,NULL,NULL,NULL,''), +(375,'提交批量输入自主重启',257,1,NULL,3,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardRestart:input:submit','#',NULL,NULL,NULL,NULL,NULL,''), +(376,'下载Excel数据服务开通模板',257,1,NULL,1,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardDataStart:excel:template','#',NULL,NULL,NULL,NULL,NULL,''), +(377,'提交Excel数据服务开通',257,1,NULL,2,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardDataStart:excel:submit','#',NULL,NULL,NULL,NULL,NULL,''), +(378,'提交批量输入数据服务开通',257,1,NULL,3,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardDataStart:input:submit','#',NULL,NULL,NULL,NULL,NULL,''), +(379,'下载Excel数据服务停用模板',257,1,NULL,1,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardDataStop:excel:template','#',NULL,NULL,NULL,NULL,NULL,''), +(380,'提交Excel数据服务停用',257,1,NULL,2,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardDataStop:excel:submit','#',NULL,NULL,NULL,NULL,NULL,''), +(381,'提交批量输入数据服务停用',257,1,NULL,3,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardDataStop:input:submit','#',NULL,NULL,NULL,NULL,NULL,''), +(382,'查询卡续费预处理结果',257,1,NULL,5,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardRenew:prepare:result','#',NULL,NULL,NULL,NULL,NULL,''), +(383,'查询卡变更预处理结果',257,1,NULL,6,'',NULL,NULL,1,0,'F','0','0','iot:tSimCardChange:prepare:result','#',NULL,NULL,NULL,NULL,NULL,''), +(384,'下载预警配置Excel模板',257,1,NULL,16,'','','',1,0,'F','0','0','iot:tSimWarningConfig:excel:template','',100,1,'2026-07-27 10:54:26',1,'2026-07-27 10:54:51',''), +(385,'批量输入预警配置',257,1,NULL,17,'','','',1,0,'F','0','0','iot:tSimWarningConfig:input:submit','',100,1,'2026-07-27 10:55:27',1,'2026-07-27 10:57:10',''), +(386,'连号预警配置',257,1,NULL,18,'','','',1,0,'F','0','0','iot:tSimWarningConfig:range:submit','',100,1,'2026-07-27 10:55:54',1,'2026-07-27 10:56:47',''), +(387,'提交预警配置Excel',257,1,NULL,19,'','','',1,0,'F','0','0','iot:tSimWarningConfig:excel:submit','',100,1,'2026-07-27 10:58:02',1,'2026-07-27 10:58:02',''), +(388,'预警中心',0,1,NULL,4,'tWarnCenter','','',1,0,'M','0','0','','ant-design:alert-outlined',100,1,'2026-07-29 16:09:35',1,'2026-07-31 14:48:17',''), +(389,'卡配置',388,1,NULL,1,'cardConfig','iotlcm/tWarnCenter/cardConfig/index','',1,0,'C','0','0','iot:simWarningConfig:list','ant-design:credit-card-outlined',100,1,'2026-07-29 16:10:23',1,'2026-07-29 16:27:38',''), +(390,'流量池配置',388,1,NULL,1,'flowPoolConfig','iotlcm/tWarnCenter/flowPoolConfig/index','',1,0,'C','0','0','iot:simWarningConfig:list','ant-design:fund-outlined',100,1,'2026-07-29 16:12:06',1,'2026-07-29 16:27:53',''), +(391,'查看',389,1,NULL,1,'','','',1,0,'F','0','0','iot:simWarningConfig:view','',100,1,'2026-07-29 16:12:24',1,'2026-07-29 16:27:46',''), +(392,'查看',390,1,NULL,1,'','','',1,0,'F','0','0','iot:simWarningConfig:view','',100,1,'2026-07-29 16:12:39',1,'2026-07-29 16:28:20',''), +(393,'新增/修改',389,1,NULL,2,'','','',1,0,'F','0','0','iot:simWarningConfig:save','',100,1,'2026-07-29 16:13:03',1,'2026-07-29 16:28:01',''), +(394,'新增/查看',390,1,NULL,2,'','','',1,0,'F','0','0','iot:simWarningConfig:save','',100,1,'2026-07-29 16:13:23',1,'2026-07-29 16:28:26',''), +(395,'启用/停用',390,1,NULL,3,'','','',1,0,'F','0','0','iot:simWarningConfig:status','',100,1,'2026-07-29 16:14:14',1,'2026-07-29 16:28:34',''), +(396,'启用/停用',389,1,NULL,3,'','','',1,0,'F','0','0','iot:simWarningConfig:status','',100,1,'2026-07-29 16:14:35',1,'2026-07-29 16:28:08',''), +(397,'删除',389,1,NULL,4,'','','',1,0,'F','0','0','iot:simWarningConfig:delete','',100,1,'2026-07-29 16:14:52',1,'2026-07-29 16:28:14',''), +(398,'删除',390,1,NULL,4,'','','',1,0,'F','0','0','iot:simWarningConfig:delete','',100,1,'2026-07-29 16:15:01',1,'2026-07-29 16:28:41',''), +(399,'销户卡信息',177,2,'tr_1762 ',20,'tSimCardCancellation','iotlcm/tLifeCycle/tSimCardCancellation/index','',1,0,'C','0','0','iot:tSimCardCancellation:list','ant-design:credit-card-outlined',103,1,'2026-08-03 08:33:29',NULL,NULL,'销户卡只读查询'), +(400,'导出销户卡信息',399,3,'tr_1762 tr_2090 ',10,'','','',1,0,'F','0','0','iot:tSimCardCancellation:export','',103,1,'2026-08-03 08:33:29',NULL,NULL,'导出销户卡信息'), +(401,'划拨目标客户',257,1,NULL,20,'','','',1,0,'F','0','0','iot:tSimCardAllocate:targets','',100,1,'2026-08-04 09:03:53',1,'2026-08-04 09:03:53',''), +(402,'划拨下载模板',257,1,NULL,20,'','','',1,0,'F','0','0','iot:tSimCardAllocate:excel:template','',100,1,'2026-08-04 09:04:14',1,'2026-08-04 09:04:14',''), +(403,'划拨批量输入校验',257,1,NULL,20,'','','',1,0,'F','0','0','iot:tSimCardAllocate:input:prepare','',100,1,'2026-08-04 09:04:35',1,'2026-08-04 09:04:35',''), +(404,'划拨Excel校验 ',257,1,NULL,20,'','','',1,0,'F','0','0','iot:tSimCardAllocate:excel:submit','',100,1,'2026-08-04 09:04:50',1,'2026-08-04 09:04:50',''), +(405,'划拨确认提交',257,1,NULL,20,'','','',1,0,'F','0','0','iot:tSimCardAllocate:batch:submit','',100,1,'2026-08-04 09:05:06',1,'2026-08-04 09:05:06',''), +(406,'我的订单',196,2,'tr_2098 ',10,'iotlcm/tOrder','iotlcm/tOrder/index','',1,0,'C','0','0','iot:tOrder:list','ant-design:home-twotone',103,1,'2026-08-04 09:50:00',1,'2026-08-04 13:33:27',''), +(407,'订单主表详情',406,3,'tr_2098 tr_2099 ',10,'','','',1,0,'F','0','0','iot:tOrder:view','',103,1,'2026-08-04 09:50:00',1,'2026-08-04 10:55:24',''), +(408,'编辑/新增订单主表',406,3,'tr_2098 tr_2099 ',10,'','','',1,0,'F','0','0','iot:tOrder:edit','',103,1,'2026-08-04 09:50:00',1,'2026-08-04 10:55:34',''), +(409,'删除订单主表',406,3,'tr_2098 tr_2099 ',10,'','','',1,0,'F','0','0','iot:tOrder:delete','',103,1,'2026-08-04 09:50:00',1,'2026-08-04 10:55:41',''), +(410,'导出订单主表',406,3,'tr_2098 tr_2099 ',10,'','','',1,0,'F','0','0','iot:tOrder:export','',103,1,'2026-08-04 09:50:00',1,'2026-08-04 10:55:50',''), +(411,'流量池套餐配置',178,2,'tr_2104 ',32,'tFlowPackageConfig','iotlcm/tFlowPackageConfig/index.vue','',1,0,'C','0','0','iotv:tFlowPackageConfig:list','ant-design:home-twotone',103,1,'2026-08-05 09:44:58',1,'2026-08-06 10:09:56',''), +(412,'SIM流量池套餐配置表详情',411,3,'tr_2104 tr_2105 ',10,'','','',1,0,'F','0','0','iot:tFlowPackageConfig:view','',103,1,'2026-08-05 09:44:58',1,'2026-08-05 10:37:38',''), +(413,'编辑/新增SIM流量池套餐配置表',411,3,'tr_2104 tr_2105 ',10,'','','',1,0,'F','0','0','iot:tFlowPackageConfig:edit','',103,1,'2026-08-05 09:44:58',1,'2026-08-05 10:38:00',''), +(414,'删除SIM流量池套餐配置表',411,3,'tr_2104 tr_2105 ',10,'','','',1,0,'F','0','0','iot:tFlowPackageConfig:delete','',103,1,'2026-08-05 09:44:58',1,'2026-08-05 10:38:22',''), +(415,'导出SIM流量池套餐配置表',411,3,'tr_2104 tr_2105 ',10,'','','',1,0,'F','0','0','iot:tFlowPackageConfig:export','',103,1,'2026-08-05 09:44:58',1,'2026-08-05 10:38:35',''), +(416,'达量断网',176,1,NULL,32,'tSimCardTrafficCutoff','iotlcm/tCommunication/tSimCardTrafficCutoff/index','',1,0,'C','0','0','','ant-design:api-outlined',100,1,'2026-08-05 13:11:25',1,'2026-08-05 13:13:05',''), +(417,'达量断网卡信息列表',416,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardTrafficCutoff:list','',100,1,'2026-08-05 13:12:19',1,'2026-08-05 13:12:19',''), +(418,'达量断网卡信息编辑',416,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardTrafficCutoff:edit','',100,1,'2026-08-05 13:13:39',1,'2026-08-05 13:20:13',''), +(419,'达量断网卡信息删除',416,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardTrafficCutoff:delete','',100,1,'2026-08-05 13:14:15',1,'2026-08-05 13:14:15',''), +(420,'达量断网卡信息导出',416,1,NULL,1,'','','',1,0,'F','0','0','iot:tSimCardTrafficCutoff:export','',100,1,'2026-08-05 14:07:32',1,'2026-08-05 14:07:32',''); + +INSERT INTO `sys_dict_data` (`dict_code`, `tenant_id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `remark`) VALUES +(1,'000000',1,'男','0','sys_user_sex','','','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'性别男'), +(2,'000000',2,'女','1','sys_user_sex','','','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'性别女'), +(3,'000000',3,'未知','2','sys_user_sex','','','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'性别未知'), +(4,'000000',1,'显示','0','sys_show_hide','','primary','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'显示菜单'), +(5,'000000',2,'隐藏','1','sys_show_hide','','danger','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'隐藏菜单'), +(6,'000000',1,'正常','0','sys_normal_disable','','primary','',103,1,'2025-02-13 11:56:36',1,'2026-05-28 14:36:42','正常状态'), +(7,'000000',2,'停用','1','sys_normal_disable','','danger','',103,1,'2025-02-13 11:56:36',1,'2026-05-28 14:36:36','停用状态'), +(8,'000000',1,'是','Y','sys_yes_no','','primary','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'系统默认是'), +(9,'000000',2,'否','N','sys_yes_no','','danger','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'系统默认否'), +(10,'000000',1,'通知','1','sys_notice_type','','warning','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'通知'), +(11,'000000',2,'公告','2','sys_notice_type','','success','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'公告'), +(12,'000000',1,'正常','0','sys_notice_status','','primary','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'正常状态'), +(13,'000000',2,'关闭','1','sys_notice_status','','danger','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'关闭状态'), +(14,'000000',1,'新增','1','sys_oper_type','','info','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'新增操作'), +(15,'000000',2,'修改','2','sys_oper_type','','info','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'修改操作'), +(16,'000000',3,'删除','3','sys_oper_type','','danger','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'删除操作'), +(17,'000000',4,'授权','4','sys_oper_type','','primary','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'授权操作'), +(18,'000000',5,'导出','5','sys_oper_type','','warning','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'导出操作'), +(19,'000000',6,'导入','6','sys_oper_type','','warning','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'导入操作'), +(20,'000000',7,'强退','7','sys_oper_type','','danger','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'强退操作'), +(21,'000000',8,'生成代码','8','sys_oper_type','','warning','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'生成操作'), +(22,'000000',9,'清空数据','9','sys_oper_type','','danger','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'清空操作'), +(23,'000000',1,'成功','0','sys_common_status','','primary','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'正常状态'), +(24,'000000',2,'失败','1','sys_common_status','','danger','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'停用状态'), +(25,'000000',99,'其他','0','sys_oper_type','','info','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'其他操作'), +(26,'000000',0,'密码认证','password','sys_grant_type','el-check-tag','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'密码认证'), +(27,'000000',0,'短信认证','sms','sys_grant_type','el-check-tag','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'短信认证'), +(28,'000000',0,'邮件认证','email','sys_grant_type','el-check-tag','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'邮件认证'), +(29,'000000',0,'小程序认证','xcx','sys_grant_type','el-check-tag','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'小程序认证'), +(30,'000000',0,'三方登录认证','social','sys_grant_type','el-check-tag','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'三方登录认证'), +(31,'000000',0,'PC','pc','sys_device_type','','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'PC'), +(32,'000000',0,'安卓','android','sys_device_type','','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'安卓'), +(33,'000000',0,'iOS','ios','sys_device_type','','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'iOS'), +(34,'000000',0,'小程序','xcx','sys_device_type','','default','N',103,1,'2025-02-13 11:56:36',NULL,NULL,'小程序'), +(35,'000000',55,'22','33','addd','44','22','',103,1,'2025-03-05 12:59:35',NULL,'2025-03-05 12:59:35','44'), +(36,'000000',1,'是','0','sys_yes_no_num','','primary','',103,1,'2025-03-13 16:42:15',1,'2025-03-13 16:42:50',''), +(37,'000000',2,'否','1','sys_yes_no_num','','danger','',103,1,'2025-03-13 16:42:28',1,'2025-03-13 16:43:06',''), +(38,'000000',1,'私有','0','oss_access_policy','','orange','',103,1,'2025-03-13 16:55:30',NULL,'2025-03-13 16:55:30',''), +(39,'000000',2,'公开','1','oss_access_policy','','primary','',103,1,'2025-03-13 16:55:52',NULL,'2025-03-13 16:55:52',''), +(40,'000000',3,'自定义','2','oss_access_policy','','','',103,1,'2025-03-13 16:56:17',NULL,'2025-03-13 16:56:17',''), +(41,'000000',1,'生成成功','0','sys_gen_status','','success','',103,1,'2025-03-18 14:27:50',NULL,'2025-03-18 14:27:50',''), +(42,'000000',2,'未生成','1','sys_gen_status','','','',103,1,'2025-03-18 14:28:09',1,'2025-03-20 11:21:25',''), +(43,'000000',3,'生成失败','2','sys_gen_status','','danger','',103,1,'2025-03-18 14:28:24',1,'2025-03-18 14:28:43',''), +(44,'000000',1,'默认','0','sys_job_group','','','',101,11,'2025-03-19 17:37:14',11,'2025-03-19 17:37:41',''), +(45,'000000',1,'系统','1','sys_job_group','','','',101,11,'2025-03-19 17:37:34',NULL,'2025-03-19 17:37:34',''), +(46,'000000',2,'数据中心','2','sys_job_group','','','',101,11,'2025-03-19 17:37:55',NULL,'2025-03-19 17:37:55',''), +(47,'000000',1,'多次执行','1','sys_missfire_policy','','','',101,11,'2025-03-19 17:38:55',NULL,'2025-03-19 17:38:55',''), +(48,'000000',2,'执行一次','2','sys_missfire_policy','','','',101,11,'2025-03-19 17:39:04',NULL,'2025-03-19 17:39:04',''), +(49,'000000',1,'允许','0','sys_job_concurrent','','','',101,11,'2025-03-20 11:25:29',NULL,'2025-03-20 11:25:29',''), +(50,'000000',2,'禁止','1','sys_job_concurrent','','','',101,11,'2025-03-20 11:25:41',NULL,'2025-03-20 11:25:41',''), +(51,'000000',0,'部门','0','sys_dept_type','','','',103,1,'2026-05-24 22:43:24',NULL,'2026-05-24 22:43:24',''), +(52,'000000',1,'公司','1','sys_dept_type','','green','',103,1,'2026-05-24 22:43:42',NULL,'2026-05-24 22:43:42',''), +(53,'000000',1,'未启用','0','system_enabled_status','','warning','',103,1,'2026-05-27 14:34:09',1,'2026-05-27 14:40:07',''), +(54,'000000',2,'启用','1','system_enabled_status','','primary','',103,1,'2026-05-27 14:34:22',1,'2026-05-27 14:39:39',''), +(55,'000000',1,'卡套餐','101','t_sim_flow_package_info','','','',103,1,'2026-05-27 15:06:35',NULL,'2026-05-27 15:06:35',''), +(56,'000000',2,'池套餐','102','t_sim_flow_package_info','','','',103,1,'2026-05-27 15:06:58',NULL,'2026-05-27 15:06:58',''), +(57,'000000',3,'单卡加油包','103','t_sim_flow_package_info','','','',103,1,'2026-05-27 15:07:23',NULL,'2026-05-27 15:07:23',''), +(58,'000000',4,'池卡加油包','104','t_sim_flow_package_info','','','',103,1,'2026-05-27 15:07:50',NULL,'2026-05-27 15:07:50',''), +(59,'000000',1,'月','1','billing_method','','','',103,1,'2026-05-28 10:20:10',NULL,'2026-05-28 10:20:10',''), +(60,'000000',2,'年','2','billing_method','','','',103,1,'2026-05-28 10:20:20',NULL,'2026-05-28 10:20:20',''), +(61,'000000',1,'单卡流量套餐','101','package_type','','','',103,1,'2026-05-28 11:10:13',1,'2026-05-28 11:11:18',''), +(62,'000000',2,'池卡流量套餐','102','package_type','','','',103,1,'2026-05-28 11:10:31',NULL,'2026-05-28 11:10:31',''), +(63,'000000',3,'单卡流量加油包','103','package_type','','','',103,1,'2026-05-28 11:10:49',NULL,'2026-05-28 11:10:49',''), +(64,'000000',4,'池卡流量加油包','104','package_type','','','',103,1,'2026-05-28 11:11:12',NULL,'2026-05-28 11:11:12',''), +(65,'000000',5,'单卡短信套餐','201','package_type','','','',103,1,'2026-05-28 11:11:48',NULL,'2026-05-28 11:11:48',''), +(66,'000000',6,'单卡短信加油包','203','package_type','','','',103,1,'2026-05-28 11:12:09',1,'2026-05-28 11:12:18',''), +(67,'000000',7,'单卡语音套餐','301','package_type','','','',103,1,'2026-05-28 11:12:46',NULL,'2026-05-28 11:12:46',''), +(68,'000000',8,'单卡语音加油包','303','package_type','','','',103,1,'2026-05-28 11:13:20',NULL,'2026-05-28 11:13:20',''), +(69,'000000',8,'单卡国漫套餐','401','package_type','','','',103,1,'2026-05-28 11:14:01',NULL,'2026-05-28 11:14:01',''), +(70,'000000',9,'单卡国漫加油包','403','package_type','','','',103,1,'2026-05-28 11:14:17',NULL,'2026-05-28 11:14:17',''), +(71,'000000',1,'所有客户','0','agent_scope_type','','','',103,1,'2026-06-01 20:42:42',NULL,'2026-06-01 20:42:42',''), +(72,'000000',2,'指定客户','1','agent_scope_type','','','',103,1,'2026-06-01 20:42:58',NULL,'2026-06-01 20:42:58',''), +(73,'000000',1,'移动','1','operators','','','',103,1,'2026-06-02 15:43:21',1,'2026-06-02 16:59:30',''), +(74,'000000',2,'联通','2','operators','','','',103,1,'2026-06-02 15:43:37',1,'2026-06-02 16:59:40',''), +(75,'000000',3,'电信','3','operators','','','',103,1,'2026-06-02 15:44:12',1,'2026-06-02 16:59:47',''), +(76,'000000',1,'待激活 ','1','boss_card_status','','primary','',103,1,'2026-06-03 10:49:08',1,'2026-06-03 10:49:19',''), +(77,'000000',1,'已激活 ','2','boss_card_status','','','',103,1,'2026-06-03 10:49:36',NULL,'2026-06-03 10:49:36',''), +(78,'000000',1,'停机 ','4','boss_card_status','','','',103,1,'2026-06-03 10:50:12',NULL,'2026-06-03 10:50:12',''), +(79,'000000',1,'可测试','6','boss_card_status','','','',103,1,'2026-06-03 10:50:36',NULL,'2026-06-03 10:50:36',''), +(80,'000000',1,'库存 ','7','boss_card_status','','','',103,1,'2026-06-03 10:50:57',NULL,'2026-06-03 10:50:57',''), +(81,'000000',1,'预销户 ','8','boss_card_status','','','',103,1,'2026-06-03 10:51:18',NULL,'2026-06-03 10:51:18',''), +(82,'000000',1,'已销户 ','9','boss_card_status','','','',103,1,'2026-06-03 10:51:37',NULL,'2026-06-03 10:51:37',''), +(83,'000000',1,'未知 ','0','boss_card_status','','','',103,1,'2026-06-03 10:51:54',NULL,'2026-06-03 10:51:54',''), +(84,'000000',1,'开卡时间','0','cardInfo_timeType','','','',103,1,'2026-06-04 09:14:45',NULL,'2026-06-04 09:14:45',''), +(85,'000000',1,'激活时间','1','cardInfo_timeType','','','',103,1,'2026-06-04 09:15:04',NULL,'2026-06-04 09:15:04',''), +(86,'000000',1,'入库时间','2','cardInfo_timeType','','','',103,1,'2026-06-04 09:15:18',NULL,'2026-06-04 09:15:18',''), +(87,'000000',1,'出库时间','3','cardInfo_timeType','','','',103,1,'2026-06-04 09:15:34',NULL,'2026-06-04 09:15:34',''), +(88,'000000',1,'到期时间','4','cardInfo_timeType','','','',103,1,'2026-06-04 09:15:51',NULL,'2026-06-04 09:15:51',''), +(89,'000000',1,'创建时间','5','cardInfo_timeType','','','',103,1,'2026-06-04 09:16:06',NULL,'2026-06-04 09:16:06',''), +(90,'000000',1,'流量同步时间','6','cardInfo_timeType','','','',103,1,'2026-06-04 09:16:20',NULL,'2026-06-04 09:16:20',''), +(91,'000000',1,'状态同步时间','7','cardInfo_timeType','','','',103,1,'2026-06-04 09:16:36',NULL,'2026-06-04 09:16:36',''), +(92,'000000',1,'年','2','t_billing_method','','primary','',103,1,'2026-06-04 09:35:43',NULL,'2026-06-04 09:35:43',''), +(93,'000000',0,'月','1','t_billing_method','','primary','',103,1,'2026-06-04 09:35:43',NULL,'2026-06-04 09:35:43',''), +(94,'000000',1,'指定客户','1','t_agent_scope_type','','primary','',103,1,'2026-06-04 09:36:05',NULL,'2026-06-04 09:36:05',''), +(95,'000000',0,'所有客户','0','t_agent_scope_type','','primary','',103,1,'2026-06-04 09:36:05',NULL,'2026-06-04 09:36:05',''), +(96,'000000',2,'电信','3','t_operators','','primary','',103,1,'2026-06-04 09:36:18',NULL,'2026-06-04 09:36:18',''), +(97,'000000',1,'联通','2','t_operators','','primary','',103,1,'2026-06-04 09:36:18',NULL,'2026-06-04 09:36:18',''), +(98,'000000',0,'移动','1','t_operators','','primary','',103,1,'2026-06-04 09:36:18',NULL,'2026-06-04 09:36:18',''), +(99,'000000',1,'MSISDN','msisdn','cardInfo_selectCondition','','','',103,1,'2026-06-04 10:29:57',NULL,'2026-06-04 10:29:57',''), +(100,'000000',1,'ICCID','iccid','cardInfo_selectCondition','','','',103,1,'2026-06-04 10:30:11',NULL,'2026-06-04 10:30:11',''), +(101,'000000',1,'IMSI','imis','cardInfo_selectCondition','','','',103,1,'2026-06-04 10:30:25',NULL,'2026-06-04 10:30:25',''), +(102,'000000',1,'IMEI','imei','cardInfo_selectCondition','','','',103,1,'2026-06-04 10:30:38',NULL,'2026-06-04 10:30:38',''), +(103,'000000',1,'使用流量','1','cardInfo_dimension','','','',103,1,'2026-06-04 10:41:36',NULL,'2026-06-04 10:41:36',''), +(104,'000000',1,'剩余流量','2','cardInfo_dimension','','','',103,1,'2026-06-04 10:41:50',NULL,'2026-06-04 10:41:50',''), +(105,'000000',1,'>=','>=','cardInfo_dimensionStatus','','','',103,1,'2026-06-04 10:44:04',1,'2026-06-04 10:58:25',''), +(106,'000000',1,'>','>','cardInfo_dimensionStatus','','','',103,1,'2026-06-04 10:44:23',1,'2026-06-04 10:58:31',''), +(107,'000000',1,'=','=','cardInfo_dimensionStatus','','','',103,1,'2026-06-04 10:44:32',1,'2026-06-04 10:58:37',''), +(108,'000000',1,'<','<','cardInfo_dimensionStatus','','','',103,1,'2026-06-04 10:44:42',1,'2026-06-04 10:58:43',''), +(109,'000000',1,'<=','<=','cardInfo_dimensionStatus','','','',103,1,'2026-06-04 10:44:53',1,'2026-06-04 10:58:48',''), +(110,'000000',1,'!=','!=','cardInfo_dimensionStatus','','','',103,1,'2026-06-04 10:45:05',1,'2026-06-04 10:58:54',''), +(111,'000000',1,'>=','>=','t_cardInfo_dimensionStatus','','default','',103,1,'2026-06-04 11:19:22',NULL,'2026-06-04 11:19:22',''), +(112,'000000',1,'=','=','t_cardInfo_dimensionStatus','','default','',103,1,'2026-06-04 11:19:33',NULL,'2026-06-04 11:19:33',''), +(113,'000000',1,'开卡时间','0','t_cardInfo_timeType','','default','',103,1,'2026-06-04 11:33:33',NULL,'2026-06-04 11:33:33',''), +(114,'000000',1,'激活时间','1','t_cardInfo_timeType','','default','',103,1,'2026-06-04 11:33:42',NULL,'2026-06-04 11:33:42',''), +(115,'000000',1,'入库时间','2','t_cardInfo_timeType','','default','',103,1,'2026-06-04 11:33:52',NULL,'2026-06-04 11:33:52',''), +(116,'000000',3,'出库时间','3','t_cardInfo_timeType','','default','',103,1,'2026-06-04 11:34:01',NULL,'2026-06-04 11:34:01',''), +(117,'000000',4,'到期时间','4','t_cardInfo_timeType','','default','',103,1,'2026-06-04 11:34:11',NULL,'2026-06-04 11:34:11',''), +(118,'000000',5,'创建时间','5','t_cardInfo_timeType','','default','',103,1,'2026-06-04 11:34:22',NULL,'2026-06-04 11:34:22',''), +(119,'000000',6,'流量同步时间','6','t_cardInfo_timeType','','default','',103,1,'2026-06-04 11:34:31',NULL,'2026-06-04 11:34:31',''), +(120,'000000',7,'状态同步时间','7','t_cardInfo_timeType','','default','',103,1,'2026-06-04 11:34:40',NULL,'2026-06-04 11:34:40',''), +(121,'000000',1,'MSISDN','msisdn','t_cardInfo_selectCondition','','default','',103,1,'2026-06-04 11:36:56',NULL,'2026-06-04 11:36:56',''), +(122,'000000',1,'ICCID','iccid','t_cardInfo_selectCondition','','default','',103,1,'2026-06-04 11:37:09',NULL,'2026-06-04 11:37:09',''), +(123,'000000',1,'IMSI','imsi','t_cardInfo_selectCondition','','default','',103,1,'2026-06-04 11:37:25',NULL,'2026-06-04 11:37:25',''), +(124,'000000',1,'IMEI','imei','t_cardInfo_selectCondition','','default','',103,1,'2026-06-04 11:37:37',NULL,'2026-06-04 11:37:37',''), +(125,'000000',1,'使用流量','1','t_cardInfo_dimension','','default','',103,1,'2026-06-04 11:44:06',NULL,'2026-06-04 11:44:06',''), +(126,'000000',1,'剩余流量','2','t_cardInfo_dimension','','default','',103,1,'2026-06-04 11:44:16',NULL,'2026-06-04 11:44:16',''), +(127,'000000',1,'>','>','t_cardInfo_dimensionStatus','','default','',103,1,'2026-06-04 11:45:17',NULL,'2026-06-04 11:45:17',''), +(128,'000000',1,'<','<','t_cardInfo_dimensionStatus','','default','',103,1,'2026-06-04 11:45:31',NULL,'2026-06-04 11:45:31',''), +(129,'000000',1,'<=','<=','t_cardInfo_dimensionStatus','','default','',103,1,'2026-06-04 11:45:38',NULL,'2026-06-04 11:45:38',''), +(130,'000000',1,'!=','!=','t_cardInfo_dimensionStatus','','default','',103,1,'2026-06-04 11:45:46',NULL,'2026-06-04 11:45:46',''), +(131,'000000',1,'iccid','1','t_cardInfo_sortValue','','default','',103,1,'2026-06-04 12:26:46',NULL,'2026-06-04 12:26:46',''), +(132,'000000',1,'msisdn','2','t_cardInfo_sortValue','','default','',103,1,'2026-06-04 12:27:26',NULL,'2026-06-04 12:27:26',''), +(133,'000000',1,'imsi','3','t_cardInfo_sortValue','','default','',103,1,'2026-06-04 12:27:47',NULL,'2026-06-04 12:27:47',''), +(134,'000000',1,'流量用量','4','t_cardInfo_sortValue','','default','',103,1,'2026-06-04 12:27:59',NULL,'2026-06-04 12:27:59',''), +(135,'000000',1,'激活日期','5','t_cardInfo_sortValue','','default','',103,1,'2026-06-04 12:28:09',NULL,'2026-06-04 12:28:09',''), +(136,'000000',1,'流量到期日期','6','t_cardInfo_sortValue','','default','',103,1,'2026-06-04 12:28:23',NULL,'2026-06-04 12:28:23',''), +(137,'000000',1,'状态同步日期','7','t_cardInfo_sortValue','','default','',103,1,'2026-06-04 12:28:35',NULL,'2026-06-04 12:28:35',''), +(138,'000000',1,'升序','0','t_cardInfo_sortType','','default','',103,1,'2026-06-04 13:01:11',NULL,'2026-06-04 13:01:11',''), +(139,'000000',1,'降序','1','t_cardInfo_sortType','','default','',103,1,'2026-06-04 13:01:22',NULL,'2026-06-04 13:01:22',''), +(140,'000000',1,'3G','1','t_net_model','','default','',103,1,'2026-06-04 14:30:39',NULL,'2026-06-04 14:30:39',''), +(141,'000000',1,'2G','2','t_net_model','','default','',103,1,'2026-06-04 14:30:58',NULL,'2026-06-04 14:30:58',''), +(142,'000000',1,'4G','3','t_net_model','','default','',103,1,'2026-06-04 14:31:12',NULL,'2026-06-04 14:31:12',''), +(143,'000000',1,'5G','4','t_net_model','','default','',103,1,'2026-06-04 14:31:24',NULL,'2026-06-04 14:31:24',''), +(144,'000000',1,'NB-IOT','5','t_net_model','','default','',103,1,'2026-06-04 14:31:43',NULL,'2026-06-04 14:31:43',''), +(145,'000000',1,'5G-SA','6','t_net_model','','default','',103,1,'2026-06-04 14:31:59',NULL,'2026-06-04 14:31:59',''), +(146,'000000',1,'5G-NSA','7','t_net_model','','default','',103,1,'2026-06-04 14:32:19',NULL,'2026-06-04 14:32:19',''), +(147,'000000',1,'2G/3G','8','t_net_model','','default','',103,1,'2026-06-04 14:32:34',NULL,'2026-06-04 14:32:34',''), +(148,'000000',1,'电信NB','9','t_net_model','','default','',103,1,'2026-06-04 14:32:55',NULL,'2026-06-04 14:32:55',''), +(149,'000000',1,'移动4G','10','t_net_model','','default','',103,1,'2026-06-04 14:33:17',NULL,'2026-06-04 14:33:17',''), +(150,'000000',1,'联通NB','11','t_net_model','','default','',103,1,'2026-06-04 14:33:51',NULL,'2026-06-04 14:33:51',''), +(151,'000000',1,'联通4G','12','t_net_model','','default','',103,1,'2026-06-04 14:34:12',NULL,'2026-06-04 14:34:12',''), +(152,'000000',1,'电信4G','13','t_net_model','','default','',103,1,'2026-06-04 14:34:29',NULL,'2026-06-04 14:34:29',''), +(153,'000000',1,'RedCap','14','t_net_model','','default','',103,1,'2026-06-04 14:35:05',NULL,'2026-06-04 14:35:05',''), +(154,'000000',2,'待激活','1','t_boss_card_status','','warning','',103,1,'2026-06-04 14:57:58',NULL,'2026-07-13 17:38:11',''), +(155,'000000',4,'已激活','2','t_boss_card_status','','success','',103,1,'2026-06-04 14:58:10',NULL,'2026-07-13 17:38:11',''), +(156,'000000',5,'停机','4','t_boss_card_status','','danger','',103,1,'2026-06-04 14:58:22',NULL,'2026-07-13 17:38:11',''), +(157,'000000',3,'可测试','6','t_boss_card_status','','info','',103,1,'2026-06-04 14:58:38',NULL,'2026-07-13 17:38:11',''), +(158,'000000',1,'库存','7','t_boss_card_status','','default','',103,1,'2026-06-04 14:58:49',NULL,'2026-07-13 17:38:11',''), +(159,'000000',6,'预销户','8','t_boss_card_status','','warning','',103,1,'2026-06-04 14:59:02',NULL,'2026-07-13 17:38:11',''), +(160,'000000',7,'已销户','9','t_boss_card_status','','info','',103,1,'2026-06-04 14:59:12',NULL,'2026-07-13 17:38:11',''), +(161,'000000',99,'未知','0','t_boss_card_status','','default','',103,1,'2026-06-04 14:59:25',NULL,'2026-07-13 17:38:11',''), +(162,'000000',2,'锁定','2','t_pool_status','','primary','',103,1,'2026-06-05 14:18:24',NULL,'2026-06-05 14:18:24',''), +(163,'000000',1,'停用','1','t_pool_status','','primary','',103,1,'2026-06-05 14:18:24',NULL,'2026-06-05 14:18:24',''), +(164,'000000',0,'正常','0','t_pool_status','','primary','',103,1,'2026-06-05 14:18:24',NULL,'2026-06-05 14:18:24',''), +(165,'000000',1,'停用','1','global_enable','','danger','',103,1,'2026-06-08 15:30:56',NULL,'2026-06-08 15:30:56',''), +(166,'000000',0,'启用','0','global_enable','','success','',103,1,'2026-06-08 15:30:56',NULL,'2026-06-08 15:30:56',''), +(167,'000000',1,'否','1','global_yes_or_no','','danger','',103,1,'2026-06-08 15:31:46',NULL,'2026-06-08 15:31:46',''), +(168,'000000',0,'是','0','global_yes_or_no','','success','',103,1,'2026-06-08 15:31:46',NULL,'2026-06-08 15:31:46',''), +(169,'000000',1,'待生成','0','download_status','','default','',103,1,'2026-06-12 10:04:29',NULL,'2026-06-12 10:04:29',''), +(170,'000000',2,'已生成','1','download_status','','default','',103,1,'2026-06-12 10:04:39',NULL,'2026-06-12 10:04:39',''), +(171,'000000',3,'生成失败','3','download_status','','default','',103,1,'2026-06-12 10:05:05',1,'2026-06-12 16:53:22',''), +(172,'000000',6,'工业级贴片物联卡','7','t_card_type','','primary','',103,1,'2026-06-12 13:12:22',1,'2026-08-10 13:09:38',''), +(173,'000000',5,'消费级贴片物联卡','6','t_card_type','','primary','',103,1,'2026-06-12 13:12:22',1,'2026-08-10 13:09:33',''), +(174,'000000',4,'工业级插拔物联卡','5','t_card_type','','primary','',103,1,'2026-06-12 13:12:22',1,'2026-08-10 13:09:26',''), +(175,'000000',3,'消费级插拔物联卡','4','t_card_type','','primary','',103,1,'2026-06-12 13:12:22',1,'2026-08-10 13:09:20',''), +(176,'000000',2,'贴片卡 2×2mm','3','t_card_type','','primary','',103,1,'2026-06-12 13:12:22',1,'2026-08-10 13:12:02',''), +(177,'000000',1,'贴片卡 5×6mm','2','t_card_type','','primary','',103,1,'2026-06-12 13:12:22',1,'2026-08-10 13:11:56',''), +(178,'000000',0,'通用插拔 SIM 卡','1','t_card_type','','primary','',103,1,'2026-06-12 13:12:22',1,'2026-08-10 13:07:39',''), +(179,'000000',3,'已过期','3','t_package_status','','primary','',103,1,'2026-06-12 13:14:56',NULL,'2026-06-12 13:14:56',''), +(180,'000000',2,'生效中','2','t_package_status','','primary','',103,1,'2026-06-12 13:14:56',NULL,'2026-06-12 13:14:56',''), +(181,'000000',1,'待生效','1','t_package_status','','primary','',103,1,'2026-06-12 13:14:56',NULL,'2026-06-12 13:14:56',''), +(182,'000000',0,'无套餐','0','t_package_status','','primary','',103,1,'2026-06-12 13:14:56',NULL,'2026-06-12 13:14:56',''), +(183,'000000',0,'生成中','2','download_status','','primary','N',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','结果文件生成中'), +(184,'000000',0,'Card','1','resource_type','','primary','N',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','批量结果 Excel 文件'), +(185,'000000',0,'卡入库结果','1','resource_export_scene','','primary','N',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','Excel 批量卡入库结果文件'), +(186,'000000',0,'卡出库结果','2','resource_export_scene','','primary','N',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','Excel 批量卡出库结果文件(预留)'), +(187,'000000',0,'卡划拨结果','3','resource_export_scene','','primary','N',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','Excel 批量卡划拨结果文件(预留)'), +(188,'000000',0,'成功','success','sim_card_inbound_import_status','','success','N',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','整批导入成功'), +(189,'000000',0,'失败','failed','sim_card_inbound_import_status','','danger','N',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','文件、校验或业务处理失败'), +(190,'000000',1,'本级默认','agentDefault','t_package_price_source','','primary','',100,26,'2026-06-22 14:15:49',NULL,'2026-06-22 14:15:49',''), +(191,'000000',0,'系统级','system','t_package_price_source','','primary','',100,26,'2026-06-22 14:15:49',1,'2026-06-22 14:32:50',''), +(192,'000000',3,'下级专属','target','t_package_price_source','','primary','',103,1,'2026-06-22 14:32:36',1,'2026-06-22 14:32:42',''), +(193,'000000',3,'文件','3','t_batch_source_type','','primary','',100,1,'2026-06-24 09:07:58',NULL,'2026-06-24 09:07:58',''), +(194,'000000',2,'批量输入','2','t_batch_source_type','','primary','',100,1,'2026-06-24 09:07:58',NULL,'2026-06-24 09:07:58',''), +(195,'000000',1,'连号','1','t_batch_source_type','','primary','',100,1,'2026-06-24 09:07:58',NULL,'2026-06-24 09:07:58',''), +(196,'000000',0,'批次选择','0','t_batch_source_type','','primary','',100,1,'2026-06-24 09:07:58',NULL,'2026-06-24 09:07:58',''), +(197,'000000',0,'启用','0','enabled',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(198,'000000',1,'停用','1','enabled',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(199,'000000',0,'显示','1','is_show',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(200,'000000',1,'不显示','0','is_show',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(201,'000000',0,'是','1','yesno_enum',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(202,'000000',1,'否','0','yesno_enum',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(203,'000000',0,'正常','0','sys_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(204,'000000',1,'停用','1','sys_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(205,'000000',0,'正常','0','batch_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(206,'000000',1,'废弃','1','batch_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(207,'000000',0,'待处理','0','process_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(208,'000000',1,'处理汇总','1','process_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(209,'000000',2,'成功','2','process_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(210,'000000',3,'失败','3','process_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(211,'000000',1,'卡订购','1','order_type','','primary','',NULL,NULL,NULL,1,'2026-07-09 16:24:04',''), +(212,'000000',2,'卡续费','2','order_type','','primary','',NULL,NULL,NULL,1,'2026-07-09 16:24:09',''), +(213,'000000',3,'卡变更','3','order_type','','primary','',NULL,NULL,NULL,1,'2026-07-09 16:24:15',''), +(214,'000000',0,'待确定,待支付','0','order_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(215,'000000',1,'已确定,待发货','1','order_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(216,'000000',2,'处理中,已发货','2','order_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(217,'000000',3,'已取消','3','order_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(218,'000000',4,'无效','4','order_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(219,'000000',5,'已完成','5','order_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(220,'000000',0,'未发货','0','shipping_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(221,'000000',1,'已发货','1','shipping_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(222,'000000',2,'已收货','2','shipping_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(223,'000000',4,'退货','4','shipping_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(224,'000000',0,'未退款','0','return_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(225,'000000',1,'待审核','1','return_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(226,'000000',2,'执行中','2','return_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(227,'000000',3,'部分退货','3','return_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(228,'000000',4,'退货成功','4','return_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(229,'000000',1,'物流','1','shipping_method',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(230,'000000',2,'商家自提','2','shipping_method',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(231,'000000',3,'无需配送','3','shipping_method',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(232,'000000',1,'固定运费','1','fixed_shipping_type',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(233,'000000',2,'手动填写运费','2','fixed_shipping_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(234,'000000',0,'订购','0','business_type',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(235,'000000',1,'变更','1','business_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(236,'000000',2,'续费','2','business_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(237,'000000',0,'待生效','0','effective_status','','default','',NULL,NULL,NULL,1,'2026-07-14 13:50:55',''), +(238,'000000',1,'生效中','1','effective_status','','primary','',NULL,NULL,NULL,1,'2026-07-14 13:50:49',''), +(239,'000000',2,'已过期','2','effective_status','','danger','',NULL,NULL,NULL,1,'2026-07-14 13:51:05',''), +(240,'000000',3,'已终止','3','effective_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(241,'000000',4,'已作废','4','effective_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(242,'000000',1,'上架','1','product_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(243,'000000',0,'下架','0','product_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(244,'000000',1,'卡','1','product_type',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(245,'000000',2,'模组','2','product_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(246,'000000',3,'设备','3','product_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(247,'000000',4,'普通商品','4','product_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(248,'000000',5,'虚拟商品','5','product_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(249,'000000',6,'卡密商品','6','product_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(250,'000000',7,'付费内容','7','product_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(251,'000000',0,'待审核','0','check_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(252,'000000',1,'审核通过','1','check_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(253,'000000',2,'审核未通过','2','check_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(254,'000000',1,'渠道用户','1','customer_type',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(255,'000000',2,'终端用户','2','customer_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(256,'000000',1,'在线支付','1','pay_type','','primary','',NULL,NULL,NULL,1,'2026-07-09 17:26:21',''), +(257,'000000',2,'货到付款','2','pay_type','','primary','',NULL,NULL,NULL,1,'2026-07-09 17:26:27',''), +(258,'000000',3,'线下支付','3','pay_type','','primary','',NULL,NULL,NULL,1,'2026-07-09 17:26:31',''), +(259,'000000',0,'未支付','0','pay_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(260,'000000',1,'支付中','1','pay_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(261,'000000',2,'已支付','2','pay_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(262,'000000',3,'退款中','3','pay_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(263,'000000',4,'部分退款','4','pay_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(264,'000000',5,'已退款','5','pay_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(265,'000000',0,'余额','0','repayment_method',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(266,'000000',1,'银行卡','1','repayment_method',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(267,'000000',2,'支付宝','2','repayment_method',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(268,'000000',3,'微信','3','repayment_method',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(269,'000000',0,'一次性购买','0','pay_mode',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(270,'000000',1,'包年包月','1','pay_mode',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(271,'000000',2,'按量付费','2','pay_mode',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(272,'000000',0,'未分成','0','distribution_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(273,'000000',1,'已分成','1','distribution_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(274,'000000',0,'正常','0','withdraw_amount_status',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(275,'000000',1,'冻结','1','withdraw_amount_status',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(276,'000000',2,'Customer','2','resource_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(277,'000000',3,'Package','3','resource_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(278,'000000',4,'recharge_record','4','resource_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(279,'000000',5,'profit_record','5','resource_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(280,'000000',6,'settlement_report','6','resource_type',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(281,'000000',1,'list_export','1','export_scene',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(282,'000000',2,'report_export','2','export_scene',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(283,'000000',3,'settlement_export','3','export_scene',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(284,'000000',0,'短信','0','warn_methods',NULL,NULL,'Y',NULL,NULL,NULL,NULL,NULL,NULL), +(285,'000000',1,'邮箱','1','warn_methods',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(286,'000000',2,'电话','2','warn_methods',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(287,'000000',3,'平台消息','3','warn_methods',NULL,NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL), +(288,'000000',4,'接口信息不全','4','t_channels_status','','danger','',100,1,'2026-06-25 09:32:58',NULL,'2026-06-25 09:32:58',''), +(289,'000000',3,'申请中','3','t_channels_status','','success','',100,1,'2026-06-25 09:32:58',NULL,'2026-06-25 09:32:58',''), +(290,'000000',2,'未申请','2','t_channels_status','','warning','',100,1,'2026-06-25 09:32:58',NULL,'2026-06-25 09:32:58',''), +(291,'000000',1,'停用','1','t_channels_status','','danger','',100,1,'2026-06-25 09:32:59',NULL,'2026-06-25 09:32:59',''), +(292,'000000',0,'启用','0','t_channels_status','','primary','',100,1,'2026-06-25 09:32:59',NULL,'2026-06-25 09:32:59',''), +(293,'000000',1,'池套餐001','400','package_codes','','default','',100,1,'2026-06-25 11:42:40',1,'2026-06-25 13:09:36',''), +(294,'000000',2,'池套餐002','[\"dx-300m-3y\"]','package_codes','','default','',100,1,'2026-06-25 11:43:04',NULL,'2026-06-25 11:43:04',''), +(295,'000000',1,'套餐100','100','pool_package_code','','default','',100,1,'2026-06-25 13:10:14',1,'2026-07-29 14:54:25',''), +(296,'000000',1,'套餐400','400','pool_package_code','','default','',100,1,'2026-06-25 13:10:38',NULL,'2026-06-25 13:10:38',''), +(297,'000000',1,'入库','1','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,''), +(298,'000000',2,'出库','2','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,''), +(299,'000000',3,'划拨','3','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,''), +(300,'000000',101,'卡续费','101','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,'卡业务专属'), +(301,'000000',102,'卡变更','102','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,'卡业务专属'), +(302,'000000',103,'卡开机','103','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,'卡业务专属'), +(303,'000000',104,'卡停机','104','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,'卡业务专属'), +(304,'000000',105,'卡停复机','105','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,'卡业务专属'), +(305,'000000',106,'卡销户','106','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,'卡业务专属'), +(306,'000000',107,'卡达量断网执行','107','batch_type','','primary','',NULL,1,'2026-06-29 11:01:10',1,'2026-08-03 16:09:06','卡业务专属'), +(307,'000000',108,'卡退订','108','batch_type',NULL,'primary','N',NULL,1,'2026-06-29 11:01:10',NULL,NULL,'卡业务专属'), +(308,'000000',0,'已创建','0','batch_async_status',NULL,'primary','N',NULL,1,'2026-06-29 13:22:45',NULL,NULL,''), +(309,'000000',1,'待处理','1','batch_async_status',NULL,'primary','N',NULL,1,'2026-06-29 13:22:45',NULL,NULL,''), +(310,'000000',2,'处理中','2','batch_async_status',NULL,'primary','N',NULL,1,'2026-06-29 13:22:45',NULL,NULL,''), +(311,'000000',3,'成功','3','batch_async_status',NULL,'primary','N',NULL,1,'2026-06-29 13:22:45',NULL,NULL,''), +(312,'000000',4,'失败','4','batch_async_status',NULL,'primary','N',NULL,1,'2026-06-29 13:22:45',NULL,NULL,''), +(313,'000000',11,'提现','5','wo_type','','primary','',100,1,'2026-06-29 16:12:54',NULL,'2026-06-29 16:12:54',''), +(314,'000000',10,'余额','4','wo_type','','primary','',100,1,'2026-06-29 16:12:54',NULL,'2026-06-29 16:12:54',''), +(315,'000000',9,'订单','3','wo_type','','primary','',100,1,'2026-06-29 16:12:54',NULL,'2026-06-29 16:12:54',''), +(316,'000000',8,'设备','2','wo_type','','primary','',100,1,'2026-06-29 16:12:54',NULL,'2026-06-29 16:12:54',''), +(317,'000000',7,'模组','1','wo_type','','primary','',100,1,'2026-06-29 16:12:54',NULL,'2026-06-29 16:12:54',''), +(318,'000000',6,'卡','0','wo_type','','primary','',100,1,'2026-06-29 16:12:54',NULL,'2026-06-29 16:12:54',''), +(319,'000000',1,'代理商','2','creator_type','','primary','',100,1,'2026-06-29 16:28:37',NULL,'2026-06-29 16:28:37',''), +(320,'000000',0,'终端用户','1','creator_type','','primary','',100,1,'2026-06-29 16:28:37',NULL,'2026-06-29 16:28:37',''), +(321,'000000',0,'待运行','0','run_result','','info','N',NULL,1,'2026-06-30 17:08:27',NULL,NULL,NULL), +(322,'000000',1,'运行中','1','run_result','','primary','N',NULL,1,'2026-06-30 17:08:27',NULL,NULL,NULL), +(323,'000000',2,'成功','2','run_result','','success','N',NULL,1,'2026-06-30 17:08:27',NULL,NULL,NULL), +(324,'000000',3,'失败','3','run_result','','danger','N',NULL,1,'2026-06-30 17:08:27',NULL,NULL,NULL), +(325,'000000',0,'待处理','0','detail_status','','info','N',NULL,1,'2026-06-30 17:08:27',NULL,NULL,NULL), +(326,'000000',1,'处理中','1','detail_status','','primary','N',NULL,1,'2026-06-30 17:08:27',NULL,NULL,NULL), +(327,'000000',2,'成功','2','detail_status','','success','N',NULL,1,'2026-06-30 17:08:27',NULL,NULL,NULL), +(328,'000000',3,'失败','3','detail_status','','danger','N',NULL,1,'2026-06-30 17:08:27',NULL,NULL,NULL), +(329,'000000',4,'已取消','5','current_status','','primary','',100,1,'2026-07-01 09:38:49',NULL,'2026-07-01 09:38:49',''), +(330,'000000',3,'已完结','4','current_status','','success','',100,1,'2026-07-01 09:38:49',NULL,'2026-07-01 09:38:49',''), +(331,'000000',2,'已解决','3','current_status','','warning','',100,1,'2026-07-01 09:38:49',NULL,'2026-07-01 09:38:49',''), +(332,'000000',1,'处理中','2','current_status','','success','',100,1,'2026-07-01 09:38:49',NULL,'2026-07-01 09:38:49',''), +(333,'000000',0,'已分派','1','current_status','','primary','',100,1,'2026-07-01 09:38:49',NULL,'2026-07-01 09:38:49',''), +(334,'000000',5,'取消','5','operation_type','','primary','',100,1,'2026-07-01 11:15:20',NULL,'2026-07-01 11:15:20',''), +(335,'000000',4,'关单','4','operation_type','','primary','',100,1,'2026-07-01 11:15:20',NULL,'2026-07-01 11:15:20',''), +(336,'000000',3,'完成','3','operation_type','','primary','',100,1,'2026-07-01 11:15:20',NULL,'2026-07-01 11:15:20',''), +(337,'000000',2,'处理','2','operation_type','','primary','',100,1,'2026-07-01 11:15:20',NULL,'2026-07-01 11:15:20',''), +(338,'000000',1,'分派','1','operation_type','','primary','',100,1,'2026-07-01 11:15:21',NULL,'2026-07-01 11:15:21',''), +(339,'000000',0,'创建','0','operation_type','','primary','',100,1,'2026-07-01 11:15:21',NULL,'2026-07-01 11:15:21',''), +(340,'000000',4,'预处理','4','batch_type','','warning','',100,1,'2026-07-01 15:16:35',1,'2026-07-01 15:16:50',''), +(341,'000000',3,'GET','4','method','','primary','',100,1,'2026-07-03 10:51:40',NULL,'2026-07-03 10:51:40',''), +(342,'000000',2,'DELETE','3','method','','primary','',100,1,'2026-07-03 10:51:40',NULL,'2026-07-03 10:51:40',''), +(343,'000000',1,'PUT','2','method','','primary','',100,1,'2026-07-03 10:51:40',NULL,'2026-07-03 10:51:40',''), +(344,'000000',0,'POST','1','method','','primary','',100,1,'2026-07-03 10:51:40',NULL,'2026-07-03 10:51:40',''), +(345,'000000',101,'卡套餐','101','t_package_type',NULL,NULL,'N',103,1,'2026-07-07 09:22:35',NULL,NULL,'卡套餐'), +(346,'000000',102,'池套餐','102','t_package_type',NULL,NULL,'N',103,1,'2026-07-07 09:22:41',NULL,NULL,'池套餐'), +(347,'000000',103,'单卡加油包','103','t_package_type',NULL,NULL,'N',103,1,'2026-07-07 09:22:46',NULL,NULL,'单卡加油包'), +(348,'000000',104,'池卡加油包','104','t_package_type',NULL,NULL,'N',103,1,'2026-07-07 09:22:52',NULL,NULL,'池卡加油包'), +(349,'000000',0,'启用','1','flow_package_enabled','','success','N',100,1,'2026-07-08 13:43:37',1,'2026-07-08 13:43:37',''), +(350,'000000',1,'停用','0','flow_package_enabled','','danger','N',100,1,'2026-07-08 13:43:37',1,'2026-07-08 13:43:37',''), +(351,'000000',1,'支出','1','income_expense_type','','primary','',100,1,'2026-07-09 16:01:41',NULL,'2026-07-09 16:01:41',''), +(352,'000000',0,'收入','0','income_expense_type','','warning','',100,1,'2026-07-09 16:01:41',1,'2026-08-07 17:18:15',''), +(353,'000000',4,'还款','4','change_type','','primary','',100,1,'2026-07-09 16:19:58',NULL,'2026-07-09 16:19:58',''), +(354,'000000',3,'转入','3','change_type','','primary','',100,1,'2026-07-09 16:19:58',NULL,'2026-07-09 16:19:58',''), +(355,'000000',2,'转出','2','change_type','','primary','',100,1,'2026-07-09 16:19:58',NULL,'2026-07-09 16:19:58',''), +(356,'000000',1,'提现','1','change_type','','primary','',100,1,'2026-07-09 16:19:58',NULL,'2026-07-09 16:19:58',''), +(357,'000000',0,'分润','0','change_type','','primary','',100,1,'2026-07-09 16:19:58',NULL,'2026-07-09 16:19:58',''), +(358,'000000',4,'人工调整','4','transaction_type','','primary','',100,1,'2026-07-09 17:28:23',NULL,'2026-07-09 17:28:23',''), +(359,'000000',3,'可提现转入','3','transaction_type','','primary','',100,1,'2026-07-09 17:28:23',NULL,'2026-07-09 17:28:23',''), +(360,'000000',2,'转可提现','2','transaction_type','','primary','',100,1,'2026-07-09 17:28:23',NULL,'2026-07-09 17:28:23',''), +(361,'000000',1,'消费','1','transaction_type','','primary','',100,1,'2026-07-09 17:28:23',NULL,'2026-07-09 17:28:23',''), +(362,'000000',0,'充值','0','transaction_type','','primary','',100,1,'2026-07-09 17:28:23',NULL,'2026-07-09 17:28:23',''), +(363,'000000',2,'可提现金额','3','transaction_channel','','primary','',100,1,'2026-07-09 17:29:34',NULL,'2026-07-09 17:29:34',''), +(364,'000000',1,'微信','2','transaction_channel','','primary','',100,1,'2026-07-09 17:29:34',NULL,'2026-07-09 17:29:34',''), +(365,'000000',0,'支付宝','1','transaction_channel','','primary','',100,1,'2026-07-09 17:29:34',NULL,'2026-07-09 17:29:34',''), +(366,'000000',5,'部分成功','5','batch_async_status',NULL,'warning','N',NULL,1,'2026-07-17 11:29:40',NULL,'2026-07-17 11:29:40',''), +(367,'000000',4,'部分成功','4','run_result','','warning','N',NULL,1,'2026-07-17 11:29:44',NULL,'2026-07-17 11:29:44',NULL), +(368,'000000',109,'卡APN关停','109','batch_type','','primary','',100,1,'2026-07-22 16:07:21',NULL,'2026-07-22 16:07:21','卡业务专属'), +(369,'000000',110,'卡APN开启','110','batch_type','','primary','',100,1,'2026-07-22 16:07:40',1,'2026-07-22 16:08:09','卡业务专属'), +(370,'000000',1,'驳回','1','audit_result','','danger','',100,1,'2026-07-23 09:31:30',NULL,'2026-07-23 09:31:30',''), +(371,'000000',0,'通过','0','audit_result','','primary','',100,1,'2026-07-23 09:31:31',NULL,'2026-07-23 09:31:31',''), +(372,'000000',1,'余额转提现','2','apply_type','','default','',100,1,'2026-07-23 09:42:22',NULL,'2026-07-23 09:42:22',''), +(373,'000000',0,'提现申请','1','apply_type','','default','',100,1,'2026-07-23 09:42:22',NULL,'2026-07-23 09:42:22',''), +(374,'000000',1,'复审','2','audit_type','','warning','',100,1,'2026-07-23 09:45:07',NULL,'2026-07-23 09:45:07',''), +(375,'000000',0,'初审','1','audit_type','','primary','',100,1,'2026-07-23 09:45:07',NULL,'2026-07-23 09:45:07',''), +(376,'000000',2,'微信','3','account_type','','primary','',100,1,'2026-07-23 09:46:58',NULL,'2026-07-23 09:46:58',''), +(377,'000000',1,'支付宝','2','account_type','','primary','',100,1,'2026-07-23 09:46:58',NULL,'2026-07-23 09:46:58',''), +(378,'000000',0,'银行卡','1','account_type','','primary','',100,1,'2026-07-23 09:46:58',NULL,'2026-07-23 09:46:58',''), +(379,'000000',4,'已取消','4','apply_status','','default','',100,1,'2026-07-23 11:01:45',NULL,'2026-07-23 11:01:45',''), +(380,'000000',3,'已打款','3','apply_status','','primary','',100,1,'2026-07-23 11:01:45',NULL,'2026-07-23 11:01:45',''), +(381,'000000',2,'已驳回','2','apply_status','','danger','',100,1,'2026-07-23 11:01:45',NULL,'2026-07-23 11:01:45',''), +(382,'000000',1,'已通过','1','apply_status','','success','',100,1,'2026-07-23 11:01:46',NULL,'2026-07-23 11:01:46',''), +(383,'000000',0,'待审核','0','apply_status','','primary','',100,1,'2026-07-23 11:01:46',NULL,'2026-07-23 11:01:46',''), +(384,'000000',3,'账户通知','4','message_type','','primary','',100,1,'2026-07-27 13:10:16',NULL,'2026-07-27 13:10:16',''), +(385,'000000',2,'订单通知','3','message_type','','primary','',100,1,'2026-07-27 13:10:16',NULL,'2026-07-27 13:10:16',''), +(386,'000000',1,'活动通知','2','message_type','','primary','',100,1,'2026-07-27 13:10:16',NULL,'2026-07-27 13:10:16',''), +(387,'000000',0,'系统通知','1','message_type','','primary','',100,1,'2026-07-27 13:10:16',NULL,'2026-07-27 13:10:16',''), +(388,'000000',1,'终端用户','2','send_user_type','','warning','',100,1,'2026-07-27 13:14:23',NULL,'2026-07-27 13:14:23',''), +(389,'000000',0,'代理商','1','send_user_type','','primary','',100,1,'2026-07-27 13:14:23',NULL,'2026-07-27 13:14:23',''), +(390,'000000',1,'已撤回','1','is_recall','','danger','',100,1,'2026-07-27 13:17:24',NULL,'2026-07-27 13:17:24',''), +(391,'000000',0,'未撤回','0','is_recall','','primary','',100,1,'2026-07-27 13:17:24',NULL,'2026-07-27 13:17:24',''), +(392,'000000',40,'预警配置','40','batch_type','','primary','N',100,1,'2026-07-27 13:38:02',1,'2026-07-27 13:38:02','预警配置批次类型'), +(393,'000000',41,'达量断网配置','41','batch_type','','primary','',100,1,'2026-08-03 16:08:02',1,'2026-08-03 16:08:48','达量断网配置'), +(394,'000000',1,'流量阈值(MB)','1','t_warn_unit','','default','',100,1,'2026-08-06 13:04:52',NULL,'2026-08-06 13:04:52',''), +(395,'000000',2,'流量池百分比','2','t_warn_unit','','default','',100,1,'2026-08-06 13:05:01',NULL,'2026-08-06 13:05:01',''), +(396,'000000',1,'站内提醒','3','t_warn_method','','default','',100,1,'2026-08-06 13:05:24',NULL,'2026-08-06 13:05:24',''), +(397,'000000',2,'邮箱','1','t_warn_method','','default','',100,1,'2026-08-06 13:05:38',NULL,'2026-08-06 13:05:38',''), +(398,'000000',3,'短信','0','t_warn_method','','default','',100,1,'2026-08-06 13:05:47',NULL,'2026-08-06 13:05:47',''), +(399,'000000',1,'是','3','t_warn_auto_action','','default','',100,1,'2026-08-06 13:06:03',NULL,'2026-08-06 13:06:03',''), +(400,'000000',2,'否','0','t_warn_auto_action','','default','',100,1,'2026-08-06 13:06:15',NULL,'2026-08-06 13:06:15',''), +(401,'000000',1,'启用','1','t_warn_enabled','','default','',100,1,'2026-08-06 13:06:25',NULL,'2026-08-06 13:06:25',''), +(402,'000000',2,'停用','0','t_warn_enabled','','default','',100,1,'2026-08-06 13:06:33',NULL,'2026-08-06 13:06:33',''), +(403,'000000',3,'交易失败','3','transaction_status','','primary','',100,1,'2026-08-07 15:03:08',NULL,'2026-08-07 15:03:08',''), +(404,'000000',2,'已过期','2','transaction_status','','primary','',100,1,'2026-08-07 15:03:08',NULL,'2026-08-07 15:03:08',''), +(405,'000000',1,'已支付','1','transaction_status','','primary','',100,1,'2026-08-07 15:03:08',NULL,'2026-08-07 15:03:08',''), +(406,'000000',0,'待支付','0','transaction_status','','primary','',100,1,'2026-08-07 15:03:08',NULL,'2026-08-07 15:03:08',''); + +INSERT INTO `sys_dict_type` (`dict_id`, `tenant_id`, `dict_name`, `dict_type`, `is_sys`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `remark`) VALUES +(1,'000000','用户性别','sys_user_sex','0',103,1,'2025-02-13 11:56:36',1,'2026-05-24 22:42:49','用户性别列表'), +(2,'000000','菜单状态','sys_show_hide','0',103,1,'2025-02-13 11:56:36',1,'2026-05-24 22:42:57','菜单状态列表'), +(3,'000000','系统开关','sys_normal_disable','1',103,1,'2025-02-13 11:56:36',NULL,NULL,'系统开关列表'), +(4,'000000','系统是否','sys_yes_no','1',103,1,'2025-02-13 11:56:36',NULL,NULL,'系统是否列表'), +(5,'000000','通知类型','sys_notice_type','1',103,1,'2025-02-13 11:56:36',NULL,NULL,'通知类型列表'), +(6,'000000','通知状态','sys_notice_status','1',103,1,'2025-02-13 11:56:36',NULL,NULL,'通知状态列表'), +(7,'000000','操作类型','sys_oper_type','1',103,1,'2025-02-13 11:56:36',NULL,NULL,'操作类型列表'), +(8,'000000','系统状态','sys_common_status','1',103,1,'2025-02-13 11:56:36',NULL,NULL,'登录状态列表'), +(9,'000000','授权类型','sys_grant_type','1',103,1,'2025-02-13 11:56:36',NULL,NULL,'认证授权类型'), +(10,'000000','设备类型','sys_device_type','1',103,1,'2025-02-13 11:56:36',NULL,NULL,'客户端设备类型'), +(11,'000000','是否默认','sys_yes_no_num','1',103,1,'2025-03-05 12:32:12',1,'2025-03-13 16:41:48','是否默认 0是 1否'), +(12,'000000','oss权限桶类型','oss_access_policy','1',103,1,'2025-03-13 16:54:51',NULL,'2025-03-13 16:54:51',''), +(13,'000000','代码生成状态','sys_gen_status','1',103,1,'2025-03-18 14:27:03',NULL,'2025-03-18 14:27:03',''), +(14,'000000','任务分组','sys_job_group','1',101,11,'2025-03-19 17:36:37',1,'2025-03-26 09:47:20','任务分组(0 默认 1系统 2数据中心)'), +(15,'000000','任务计划执行策略','sys_missfire_policy','1',101,11,'2025-03-19 17:38:30',1,'2025-03-26 09:46:20','计划执行策略(1多次执行 2执行一次)'), +(16,'000000','任务是否并发执行','sys_job_concurrent','1',101,11,'2025-03-20 11:24:58',11,'2025-03-20 11:25:14','是否并发执行(0允许 1禁止)'), +(17,'000000','组织类型','sys_dept_type','0',103,1,'2026-05-24 22:42:39',NULL,'2026-05-24 22:42:39','0:部门\n1:公司'), +(18,'000000','套餐类型','t_package_type','0',103,1,'2026-06-04 09:09:40',NULL,'2026-06-04 09:09:40','101:卡套餐\n102:池套餐\n103:单卡加油包\n104:池卡加油包'), +(19,'000000','卡信息_时间类型','t_cardInfo_timeType','1',103,1,'2026-06-04 09:14:19',1,'2026-06-04 11:27:32','卡信息表'), +(20,'000000','计费方式','t_billing_method','0',103,1,'2026-06-04 09:16:36',NULL,'2026-06-04 09:16:36','1:月\n2:年'), +(21,'000000','渠道适用类型','t_agent_scope_type','0',103,1,'2026-06-04 09:18:15',1,'2026-06-04 09:18:19','0:所有客户\n1:指定客户'), +(22,'000000','运营商','t_operators','0',103,1,'2026-06-04 09:18:53',NULL,'2026-06-04 09:18:53','1:移动\n2:联通\n3:电信'), +(23,'000000','卡信息_查询条件','t_cardInfo_selectCondition','1',103,1,'2026-06-04 10:28:33',1,'2026-06-04 11:28:18','卡信息表'), +(24,'000000','卡信息_查询维度','t_cardInfo_dimension','1',103,1,'2026-06-04 10:41:15',1,'2026-06-04 14:25:38','卡信息表'), +(25,'000000','卡信息_维度状态','t_cardInfo_dimensionStatus','1',103,1,'2026-06-04 10:42:41',1,'2026-06-04 14:25:45','卡信息表'), +(26,'000000','卡信息_排序值','t_cardInfo_sortValue','1',103,1,'2026-06-04 12:26:16',1,'2026-06-04 14:25:59','卡信息表'), +(27,'000000','卡信息_排序类型','t_cardInfo_sortType','1',103,1,'2026-06-04 12:29:56',1,'2026-06-04 14:26:07','卡信息表'), +(28,'000000','网络类型','t_net_model','1',103,1,'2026-06-04 14:25:18',1,'2026-06-04 14:29:46','1 3G\n2 2G\n3 4G\n4 5G\n5 NB-IOT\n6 5G-SA\n7 5G-NSA\n8 2G/3G\n9 电信NB\n10 移动4G\n11 联通NB\n12 联通4G\n13 电信4G\n14 RedCap'), +(29,'000000','卡状态','t_boss_card_status','0',103,1,'2026-06-04 14:56:04',1,'2026-06-05 16:14:06','待激活:1\n已激活:2\n停机:4\n可测试:6\n库存:7\n预销户:8\n已销户:9\n未知:0'), +(30,'000000','流量池状态','t_pool_status','1',103,1,'2026-06-05 14:00:06',1,'2026-06-05 14:18:07','0:正常\n1:停用\n2:锁定'), +(31,'000000','全局-是否启用','global_enable','0',103,1,'2026-06-08 15:30:44',1,'2026-06-08 15:31:06','0:启用\n1:停用'), +(32,'000000','全局-是否','global_yes_or_no','0',103,1,'2026-06-08 15:31:34',NULL,'2026-06-08 15:31:34','0:是\n1:否'), +(33,'000000','下载状态','download_status','1',103,1,'2026-06-12 10:04:11',NULL,'2026-06-12 10:04:11','0:待生成 1:已生成 2:生成中 3:生成失败'), +(34,'000000','卡类型','t_card_type','0',103,1,'2026-06-12 13:12:11',1,'2026-08-10 13:07:21','1:通用插拔 SIM 卡\n2:贴片 M2M 卡 5×6mm\n3:贴片 M2M 卡 2×2mm\n4:MP1-消费级插拔物联卡\n5:MP2-工业级插拔物联卡\n6:MS0-消费级贴片物联卡\n7:MS1-工业级贴片物联卡'), +(35,'000000','套餐状态','t_package_status','0',103,1,'2026-06-12 13:14:52',NULL,'2026-06-12 13:14:52','0:无套餐\n1:待生效\n2:生效中\n3:已过期'), +(36,'000000','批次类型','batch_type','1',103,1,'2026-06-12 16:53:22',1,'2026-07-27 14:52:48','批次类型:1-3通用批次,101+卡业务专属'), +(37,'000000','资源类型','resource_type','1',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','t_resource_batch_download.resource_type'), +(38,'000000','资源导出场景','resource_export_scene','1',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','t_resource_batch_download.export_scene'), +(39,'000000','卡入库导入状态','sim_card_inbound_import_status','1',103,1,'2026-06-12 16:53:22',NULL,'2026-06-12 16:53:22','TSimCardInboundExcelImportRes.importStatus'), +(40,'000000','套餐定价-价格来源','t_package_price_source','1',100,26,'2026-06-22 14:15:37',1,'2026-06-22 14:32:05','system — 系统级\nagentDefault — 本级默认\ntarget — 下级专属'), +(41,'000000','批次来源方式','t_batch_source_type','0',100,1,'2026-06-24 09:07:53',NULL,'2026-06-24 09:07:53','0:批次选择\n1:连号\n2:批量输入\n3:文件'), +(42,'000000','通道状态','t_channels_status','1',100,1,'2026-06-25 09:30:53',1,'2026-06-25 09:32:35','0:启用\n1:停用\n2:未申请\n3:申请中\n4:接口信息不全'), +(43,'000000','套餐名称','pool_package_code','1',100,1,'2026-06-25 11:41:40',1,'2026-06-25 13:09:24','此处为流量池名称 每次新增流量池套餐需要进行配置'), +(44,'000000','批次异步状态','batch_async_status','1',NULL,1,'2026-06-29 13:22:34',NULL,NULL,'批次异步状态:0-已创建 1-待处理 2-处理中 3-成功 4-失败'), +(45,'000000','工单类型','wo_type','1',100,1,'2026-06-29 16:12:37',NULL,'2026-06-29 16:12:37','0:卡\n1:模组\n2:设备\n3:订单\n4:余额\n5:提现'), +(46,'000000','创建人类型','creator_type','1',100,1,'2026-06-29 16:28:26',NULL,'2026-06-29 16:28:26','1:终端用户\n2:代理商'), +(47,'000000','运行结果','run_result','0',NULL,1,'2026-06-30 17:08:27',NULL,NULL,'运行结果:0待运行 1运行中 2成功 3失败'), +(48,'000000','批次明细状态','detail_status','0',NULL,1,'2026-06-30 17:08:27',NULL,NULL,'批次明细状态:0待处理 1处理中 2成功 3失败'), +(49,'000000','当前处理状态','current_status','1',100,1,'2026-07-01 09:37:54',NULL,'2026-07-01 09:37:54','1:已分派\n2:处理中\n3:已解决\n4:已完结_关单\n5:已取消'), +(50,'000000','操作类型','operation_type','1',100,1,'2026-07-01 11:15:12',NULL,'2026-07-01 11:15:12','0:创建\n1:分派\n2:处理\n3:完成\n4:关单\n5:取消'), +(51,'000000','请求方法','method','1',100,1,'2026-07-03 10:51:30',NULL,'2026-07-03 10:51:30','1:POST\n2:PUT\n3:DELETE\n4:GET'), +(52,'000000','套餐启用状态','flow_package_enabled','0',100,1,'2026-07-08 13:43:37',1,'2026-07-08 13:43:37','套餐管理-是否启用,与global_enable方向相反(0=停用 1=启用)'), +(53,'000000','收支类型','income_expense_type','1',100,1,'2026-07-09 16:18:26',NULL,'2026-07-09 16:18:26','0:收入\n1:支出'), +(54,'000000','变动类型','change_type','1',100,1,'2026-07-09 16:19:52',NULL,'2026-07-09 16:19:52','0:分润\n1:提现\n2:转出\n3:转入\n4:还款'), +(55,'000000','订单类型','order_type','1',100,1,'2026-07-09 16:23:49',NULL,'2026-07-09 16:23:49','1:卡订购\n2: 卡续费\n3: 卡变更'), +(56,'000000','支付类型','pay_type','1',100,1,'2026-07-09 17:26:00',NULL,'2026-07-09 17:26:00','1:在线支付\n2:货到付款\n3:线下支付'), +(57,'000000','交易类型','transaction_type','1',100,1,'2026-07-09 17:28:15',NULL,'2026-07-09 17:28:15','0:充值 \n1:消费\n2:转可提现 \n3:可提现转入 \n4:人工调整'), +(58,'000000','交易渠道','transaction_channel','1',100,1,'2026-07-09 17:29:28',NULL,'2026-07-09 17:29:28','1:支付宝\n2:微信 \n3:可提现金额'), +(59,'000000','生效状态','effective_status','1',100,1,'2026-07-14 13:45:04',NULL,'2026-07-14 13:45:04','0:待生效\n1:生效中\n2:已过期\n3:已终止\n4:已作废'), +(60,'000000','审核结果','audit_result','1',100,1,'2026-07-23 09:31:13',NULL,'2026-07-23 09:31:13','0:通过\n1:驳回'), +(61,'000000','申请类型','apply_type','1',100,1,'2026-07-23 09:42:08',NULL,'2026-07-23 09:42:08','1:提现申请\n2:余额转提现'), +(62,'000000','审核类型','audit_type','1',100,1,'2026-07-23 09:43:51',NULL,'2026-07-23 09:43:51','1:初审\n2:复审'), +(63,'000000','提现账号类型','account_type','1',100,1,'2026-07-23 09:46:51',NULL,'2026-07-23 09:46:51','1:银行卡\n2:支付宝\n3:微信'), +(64,'000000','状态','apply_status','1',100,1,'2026-07-23 11:01:19',NULL,'2026-07-23 11:01:19','0:待审核\n1:已通过\n2:已驳回\n3:已打款\n4:已取消'), +(65,'000000','消息类型','message_type','1',100,1,'2026-07-27 13:10:06',NULL,'2026-07-27 13:10:06','1:系统通知 \n2:活动通知 \n3:订单通知 \n4:账户通知'), +(66,'000000','发送用户类型','send_user_type','1',100,1,'2026-07-27 13:14:14',NULL,'2026-07-27 13:14:14','1:代理商 \n2:终端用户'), +(67,'000000','是否撤回','is_recall','1',100,1,'2026-07-27 13:17:11',NULL,'2026-07-27 13:17:11','0:未撤回 \n1:已撤回'), +(68,'000000','客户类型','customer_type','1',100,1,'2026-08-06 11:21:35',NULL,'2026-08-06 11:21:35','1 渠道用户\n2 终端用户'), +(69,'000000','预警-预警单位','t_warn_unit','1',100,1,'2026-08-06 13:03:24',1,'2026-08-06 13:07:00','1:流量阈值(MB),2:流量池百分比'), +(70,'000000','预警-提醒方式','t_warn_method','1',100,1,'2026-08-06 13:03:42',1,'2026-08-06 13:07:13','3:站内提醒,1:邮箱,0:短信'), +(71,'000000','预警-第三次是否停机','t_warn_auto_action','1',100,1,'2026-08-06 13:04:07',1,'2026-08-06 13:07:26','0:否,3:是'), +(72,'000000','预警启停状态','t_warn_enabled','1',100,1,'2026-08-06 13:04:32',1,'2026-08-06 13:07:38','1:启用,0:停用'), +(73,'000000','订单状态','order_status','1',100,1,'2026-08-06 13:39:56',NULL,'2026-08-06 13:39:56','0 待确定,待支付 \n1 已确定,待发货 \n2处理中,已发货 \n3 已取消 \n4 无效 \n5 已完成'), +(74,'000000','退货状态','return_status','1',100,1,'2026-08-06 13:40:34',NULL,'2026-08-06 13:40:34','0未退款\n1待审核\n2执行中\n3部分退货\n4退货成功'), +(75,'000000','系统状态','sys_status','1',100,1,'2026-08-06 13:41:50',NULL,'2026-08-06 13:41:50','0 正常\n1 停用'), +(76,'000000','发货方式','shipping_method','1',100,1,'2026-08-06 13:42:12',NULL,'2026-08-06 13:42:12','1 物流\n2 商家自提\n3 无需配送'), +(77,'000000','支付状态','pay_status','1',100,1,'2026-08-06 13:46:13',NULL,'2026-08-06 13:46:13','0 未支付 \n1 支付中\n2 已支付\n3 退款中\n4 部分退款\n5 已退款'), +(78,'000000','交易状态','transaction_status','1',100,1,'2026-08-07 15:02:56',NULL,'2026-08-07 15:02:56','0:待支付\n1:已支付\n2:已过期\n3:交易失败'); + +INSERT INTO `sys_role_menu` (`tenant_id`, `role_id`, `menu_id`, `data_scope`) VALUES +('000000',2,4,'0'), +('000000',2,42,'0'), +('000000',2,92,'0'), +('000000',2,93,'0'), +('000000',2,94,'0'), +('000000',2,106,'0'), +('000000',2,107,'0'), +('000000',2,108,'0'), +('000000',2,109,'0'), +('000000',2,128,'0'), +('000000',2,129,'0'), +('000000',2,133,'0'), +('000000',2,135,'0'), +('000000',2,138,'0'), +('000000',2,153,'0'), +('000000',2,154,'0'), +('000000',2,157,'0'), +('000000',2,165,'0'), +('000000',2,166,'0'), +('000000',2,169,'0'), +('000000',2,176,'0'), +('000000',2,177,'0'), +('000000',2,178,'0'), +('000000',2,186,'0'), +('000000',2,187,'0'), +('000000',2,190,'0'), +('000000',2,191,'0'), +('000000',2,193,'7'), +('000000',2,195,'0'), +('000000',2,196,'0'), +('000000',2,197,'0'), +('000000',2,198,'0'), +('000000',2,201,'0'), +('000000',2,205,'0'), +('000000',2,206,'0'), +('000000',2,207,'0'), +('000000',2,208,'0'), +('000000',2,209,'0'), +('000000',2,210,'0'), +('000000',2,211,'0'), +('000000',2,212,'0'), +('000000',2,213,'0'), +('000000',2,214,'0'), +('000000',2,215,'0'), +('000000',2,216,'0'), +('000000',2,217,'0'), +('000000',2,218,'0'), +('000000',2,219,'0'), +('000000',2,220,'0'), +('000000',2,221,'0'), +('000000',2,222,'0'), +('000000',2,223,'0'), +('000000',2,224,'0'), +('000000',2,225,'0'), +('000000',2,226,'0'), +('000000',2,227,'0'), +('000000',2,228,'0'), +('000000',2,229,'0'), +('000000',2,230,'0'), +('000000',2,233,'0'), +('000000',2,234,'0'), +('000000',2,235,'0'), +('000000',2,236,'0'), +('000000',2,237,'0'), +('000000',2,238,'0'), +('000000',2,239,'0'), +('000000',2,240,'0'), +('000000',2,241,'0'), +('000000',2,244,'0'), +('000000',2,245,'0'), +('000000',2,246,'0'), +('000000',2,249,'0'), +('000000',2,250,'0'), +('000000',2,251,'0'), +('000000',2,252,'0'), +('000000',2,255,'0'), +('000000',2,256,'0'), +('000000',2,257,'0'), +('000000',2,258,'0'), +('000000',2,259,'0'), +('000000',2,260,'0'), +('000000',2,261,'0'), +('000000',2,265,'0'), +('000000',2,266,'0'), +('000000',2,267,'0'), +('000000',2,285,'0'), +('000000',2,286,'0'), +('000000',2,287,'0'), +('000000',2,288,'0'), +('000000',2,289,'0'), +('000000',2,290,'0'), +('000000',2,291,'0'), +('000000',2,292,'0'), +('000000',2,293,'0'), +('000000',2,294,'0'), +('000000',2,295,'0'), +('000000',2,296,'0'), +('000000',2,297,'0'), +('000000',2,298,'0'), +('000000',2,299,'0'), +('000000',2,300,'0'), +('000000',2,301,'0'), +('000000',2,302,'0'), +('000000',2,303,'0'), +('000000',2,304,'0'), +('000000',2,305,'0'), +('000000',2,306,'0'), +('000000',2,309,'0'), +('000000',2,310,'0'), +('000000',2,311,'0'), +('000000',2,312,'0'), +('000000',2,315,'0'), +('000000',2,316,'0'), +('000000',2,317,'0'), +('000000',2,320,'0'), +('000000',2,321,'0'), +('000000',2,322,'0'), +('000000',2,323,'0'), +('000000',2,324,'0'), +('000000',2,327,'0'), +('000000',2,328,'0'), +('000000',2,329,'0'), +('000000',2,332,'0'), +('000000',2,333,'0'), +('000000',2,335,'0'), +('000000',2,336,'0'), +('000000',2,337,'0'), +('000000',2,338,'0'), +('000000',2,339,'0'), +('000000',2,340,'0'), +('000000',2,341,'0'), +('000000',2,342,'0'), +('000000',2,343,'0'), +('000000',2,344,'0'), +('000000',2,345,'0'), +('000000',2,346,'0'), +('000000',2,347,'0'), +('000000',2,348,'0'), +('000000',2,361,'0'), +('000000',2,362,'0'), +('000000',2,363,'0'), +('000000',2,366,'0'), +('000000',2,367,'0'), +('000000',2,368,'0'), +('000000',2,371,'0'), +('000000',2,372,'0'), +('000000',2,373,'0'), +('000000',2,374,'0'), +('000000',2,375,'0'), +('000000',2,376,'0'), +('000000',2,377,'0'), +('000000',2,378,'0'), +('000000',2,379,'0'), +('000000',2,380,'0'), +('000000',2,381,'0'), +('000000',2,382,'0'), +('000000',2,383,'0'), +('000000',2,384,'0'), +('000000',2,385,'0'), +('000000',2,386,'0'), +('000000',2,387,'0'), +('000000',2,388,'0'), +('000000',2,389,'0'), +('000000',2,390,'0'), +('000000',2,391,'0'), +('000000',2,392,'0'), +('000000',2,393,'0'), +('000000',2,394,'0'), +('000000',2,395,'0'), +('000000',2,396,'0'), +('000000',2,397,'0'), +('000000',2,398,'0'), +('000000',2,401,'0'), +('000000',2,402,'0'), +('000000',2,403,'0'), +('000000',2,404,'0'), +('000000',2,405,'0'), +('000000',3,4,'0'), +('000000',3,19,'0'), +('000000',3,92,'0'), +('000000',3,93,'0'), +('000000',3,94,'0'), +('000000',3,95,'0'), +('000000',3,106,'0'), +('000000',3,107,'0'), +('000000',3,108,'0'), +('000000',3,109,'0'), +('000000',3,119,'0'), +('000000',3,153,'0'), +('000000',3,154,'0'), +('000000',3,157,'0'), +('000000',3,176,'0'), +('000000',3,191,'0'), +('000000',3,193,'0'), +('000000',3,195,'0'), +('000000',3,201,'0'), +('000000',3,237,'0'), +('000000',3,240,'0'), +('000000',3,241,'0'), +('000000',3,242,'0'), +('000000',3,244,'0'), +('000000',3,1865,'0'), +('000000',3,1866,'0'), +('000000',3,1869,'0'), +('000000',3,245,'0'), +('000000',3,246,'0'), +('000000',3,249,'0'), +('000000',3,250,'0'), +('000000',3,251,'0'), +('000000',3,252,'0'), +('000000',3,255,'0'), +('000000',3,256,'0'), +('000000',3,258,'0'), +('000000',3,259,'0'), +('000000',3,262,'0'), +('000000',3,263,'0'), +('000000',3,264,'0'), +('000000',3,265,'0'), +('000000',3,344,'0'), +('000000',3,345,'0'), +('000000',3,346,'0'), +('000000',4,4,'0'), +('000000',4,153,'0'), +('000000',4,154,'0'), +('000000',4,157,'0'), +('000000',4,176,'0'), +('000000',4,191,'0'), +('000000',4,195,'0'), +('000000',4,201,'0'), +('000000',4,237,'0'), +('000000',4,240,'0'), +('000000',4,241,'0'), +('000000',4,244,'0'), +('000000',4,245,'0'), +('000000',4,246,'0'), +('000000',4,249,'0'), +('000000',4,251,'0'), +('000000',4,252,'0'), +('000000',4,255,'0'), +('000000',4,256,'0'), +('000000',4,257,'0'), +('000000',4,258,'0'), +('000000',4,259,'0'), +('000000',4,262,'0'), +('000000',4,263,'0'), +('000000',4,264,'0'), +('000000',4,265,'0'), +('000000',4,285,'0'), +('000000',4,286,'0'), +('000000',4,287,'0'), +('000000',4,288,'0'), +('000000',4,289,'0'), +('000000',4,290,'0'), +('000000',4,291,'0'), +('000000',4,292,'0'), +('000000',4,293,'0'), +('000000',4,294,'0'), +('000000',4,295,'0'), +('000000',4,296,'0'), +('000000',4,297,'0'), +('000000',4,298,'0'), +('000000',4,299,'0'), +('000000',4,300,'0'), +('000000',4,301,'0'), +('000000',4,302,'0'), +('000000',4,303,'0'), +('000000',4,304,'0'), +('000000',4,335,'0'), +('000000',4,336,'0'), +('000000',4,337,'0'), +('000000',4,338,'0'), +('000000',4,339,'0'), +('000000',4,340,'0'), +('000000',4,344,'0'), +('000000',4,345,'0'), +('000000',4,346,'0'), +('000000',4,362,'0'), +('000000',4,363,'0'), +('000000',4,366,'0'), +('000000',4,367,'0'), +('000000',4,368,'0'), +('000000',4,371,'0'), +('000000',4,373,'0'), +('000000',4,374,'0'), +('000000',4,375,'0'), +('000000',4,376,'0'), +('000000',4,377,'0'), +('000000',4,378,'0'), +('000000',4,379,'0'), +('000000',4,380,'0'), +('000000',4,381,'0'), +('000000',4,382,'0'), +('000000',4,383,'0'), +('000000',4,384,'0'), +('000000',4,385,'0'), +('000000',4,386,'0'), +('000000',4,387,'0'); + +INSERT INTO `sys_user` (`user_id`, `tenant_id`, `dept_id`, `user_name`, `nick_name`, `user_type`, `email`, `phonenumber`, `sex`, `avatar`, `salt`, `password`, `status`, `login_ip`, `login_date`, `mfa_enabled`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`, `remark`) VALUES +(1,'000000',1,'admin','示例用户01','sys_user','user01@example.com','13800000001','0','','123456','5f1d7a84db00d2fce00b31a7fc73224f','0','','2026-08-10 09:30:44',0,103,1,'2025-02-13 11:56:36',1,'2026-08-10 09:30:44',NULL,NULL,'管理员'), +(2,'100006',2,'user02','示例用户02','sys_user','user02@example.com','13800000002','2','','5nyxW','68c6e105523f29f1a97607f6739cd245','0','',NULL,NULL,0,0,'2025-03-16 14:36:52',0,'2025-03-16 14:36:52',NULL,NULL,NULL), +(3,'000000',2,'2admin','示例用户03','sys_user','user03@example.com','13800000003','2','','5nyxW','68c6e105523f29f1a97607f6739cd245','0','','2026-08-10 09:28:19',NULL,103,1,'2026-05-30 22:39:09',1,'2026-08-10 09:28:19',NULL,NULL,''), +(4,'000000',2,'2user','示例用户04','','user04@example.com','13800000004','2','','VZ0wN','e6ad50a55c5cca432e58445500433943','0','','2026-07-21 09:44:52',NULL,103,1,'2026-06-10 17:04:02',1,'2026-07-21 09:44:52',NULL,NULL,''), +(5,'000000',4,'3admin','示例用户05','sys_user','user05@example.com','13800000005','2','','mLwlN','70824cefa9bc3da395ea16a48118e477','0','','2026-08-05 10:44:43',NULL,117,12,'2026-06-22 17:32:57',1,'2026-08-05 10:44:43',NULL,NULL,''), +(6,'000000',4,'3user','示例用户06','','user06@example.com','13800000006','2','','5nyxW','68c6e105523f29f1a97607f6739cd245','0','','2026-07-31 14:30:05',NULL,131,27,'2026-06-22 19:56:29',1,'2026-07-31 14:30:05',NULL,NULL,''), +(7,'000000',1,'admin1','示例用户07','','user07@example.com','13800000007','0','','mLwlN','70824cefa9bc3da395ea16a48118e477','0','','2026-08-05 09:20:19',NULL,100,1,'2026-06-30 16:53:41',1,'2026-08-05 09:20:19',NULL,NULL,''), +(8,'000000',6,'admin4','示例用户08','','user08@example.com','13800000008','0','','446lG','72f5e0fa52945f173262566183afd9e6','0','','2026-08-05 10:46:03',NULL,100,1,'2026-07-02 13:57:27',1,'2026-08-05 10:46:03',NULL,NULL,''), +(9,'000000',2,'4admin','示例用户09','','user09@example.com','13800000009','2','','5nyxW','8f2dd9b2f537dc0f3a4adf7238ab9939','0','',NULL,NULL,100,1,'2026-07-07 13:31:14',1,'2026-07-07 13:32:19',1,'2026-07-07 13:32:19',''), +(10,'000000',2,'admin5','示例用户10','','user10@example.com','13800000010','0','','mLwlN','3a87db29951e21633cc31f5af6c6c724','0','',NULL,NULL,100,1,'2026-07-07 13:32:53',1,'2026-07-07 13:34:45',1,'2026-07-07 13:34:45',''), +(11,'000000',4,'admin05','示例用户11','','user11@example.com','13800000011','0','','VZ0wN','8cd10b084f93ebe5f1a38b9143d44c90','0','',NULL,NULL,100,1,'2026-07-07 13:34:21',1,'2026-07-07 13:34:21',NULL,NULL,''), +(12,'000000',2,'admin06','示例用户12','','user12@example.com','13800000012','0','','47YVX','66d5cf5d32c90aecc4a0424423717fce','0','','2026-07-20 15:32:10',NULL,100,1,'2026-07-07 13:42:16',1,'2026-07-20 15:32:10',NULL,NULL,''), +(13,'000000',4,'admin06_01','示例用户13','','user13@example.com','13800000013','0','','qMXQa','4783c8a80550887fc7acf826cad3757e','0','',NULL,NULL,100,1,'2026-07-07 13:43:35',1,'2026-07-07 13:48:43',NULL,NULL,''), +(14,'000000',6,'admin_06_02','示例用户14','','user14@example.com','13800000014','0','','XKlFv','6713996e56e9dcbe69b5d097eaf3316a','0','',NULL,NULL,100,1,'2026-07-07 13:44:16',1,'2026-07-07 13:48:53',NULL,NULL,''), +(15,'000000',7,'agent2','示例用户15','sys_user','user15@example.com','13800000015','0','','mLwlN','70824cefa9bc3da395ea16a48118e477','0','','2026-07-17 09:33:02',NULL,100,1,'2026-07-17 09:30:51',1,'2026-07-17 09:33:02',NULL,NULL,''), +(16,'000000',3,'zhongduan01M','示例用户16','sys_user','user16@example.com','13800000016','0','','mLwlN','70824cefa9bc3da395ea16a48118e477','0','','2026-07-21 09:13:05',NULL,100,1,'2026-07-21 09:05:50',1,'2026-07-21 09:59:16',1,'2026-07-21 09:59:16',''), +(17,'000000',3,'zhongduanM01','示例用户17','app_user','user17@example.com','13800000017','0','','VZ0wN','e6ad50a55c5cca432e58445500433943','0','','2026-07-28 10:41:56',NULL,100,1,'2026-07-27 16:53:15',1,'2026-07-28 10:41:56',NULL,NULL,''), +(18,'000000',3,'enduser01','示例用户18','sys_user','user18@example.com','13800000018','0','','5nyxW','68c6e105523f29f1a97607f6739cd245','0','','2026-08-07 13:56:53',NULL,100,1,'2026-07-30 09:41:54',1,'2026-08-07 13:56:53',NULL,NULL,'') +; + +INSERT INTO `sys_user_role` (`tenant_id`, `user_id`, `role_id`) VALUES +('000000',1,1), +('000000',3,2), +('000000',4,3), +('000000',5,2), +('000000',6,3), +('000000',7,2), +('000000',8,2), +('000000',16,4), +('000000',17,4), +('000000',18,3); + +INSERT INTO `sys_role` (`role_id`, `tenant_id`, `dept_id`, `role_name`, `role_key`, `role_sort`, `data_scope`, `menu_check_strictly`, `dept_check_strictly`, `status`, `is_pass`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`, `remark`) VALUES +(1,'000000',0,'超级管理员','superadmin',1,'1',1,1,'0',0,103,1,'2025-02-13 11:56:36',NULL,NULL,NULL,NULL,'超级管理员'), +(2,'000000',1,'M管理员','MADMIN',0,'4',0,0,'0',1,100,1,'2026-06-30 16:58:35',1,'2026-08-07 09:38:09',NULL,NULL,''), +(3,'000000',1,'M用户','MUSER',1,'7',0,1,'0',0,100,1,'2026-06-30 16:59:58',1,'2026-08-05 13:54:52',NULL,NULL,''), +(4,'000000',3,'M终端用户','enduser',10,'3',0,1,'0',0,100,1,'2026-07-21 09:11:08',1,'2026-07-30 10:17:44',NULL,NULL,''); + +INSERT INTO `sys_role_dept` (`tenant_id`, `role_id`, `dept_id`) VALUES +('000000',2,1); + +INSERT INTO `sys_dept` (`dept_id`, `tenant_id`, `parent_id`, `ancestors`, `dept_key`, `dept_name`, `dept_type`, `dept_category`, `order_num`, `leader`, `phone`, `email`, `status`, `credit_code`, `area_code`, `address`, `dept_role`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`) VALUES +(1,'000000',0,'0,','CUS-202601-0001','示例企业',1,'',0,36,'13800000101','contact@example.com','0','098765432109876543','370100000000','历下区',66,100,1,'2025-02-13 11:56:36',111,'2026-07-29 16:06:31',NULL,NULL), +(2,'000000',1,'0,1,','CUS-202601-0002','示例企业',1,'',1,12,'','','0','123456789012345678','','高新区',67,NULL,0,'2025-03-16 14:36:52',12,'2026-07-29 16:14:12',NULL,NULL), +(3,'000000',1,'0,1,','','终端用户部门',1,'',20,0,'','','0','','','',0,100,1,'2026-07-08 15:30:23',1,'2026-07-08 15:34:57',NULL,NULL), +(4,'000000',2,'0,1,2,','','示例代理1',1,'',1,27,'','','0','','','',0,100,1,'2026-06-22 03:07:10',1,'2026-07-21 09:38:12',NULL,NULL), +(5,'000000',2,'0,1,2,','','示例代理2',1,'',2,0,'','','0','','','',0,100,12,'2026-06-22 14:18:35',12,'2026-06-22 14:18:35',NULL,NULL), +(6,'000000',2,'0,1,2,','','示例代理3',1,'',1,0,'','','0','','','',0,100,1,'2026-07-02 13:39:51',1,'2026-07-02 13:39:52',NULL,NULL), +(7,'000000',2,'0,1,2,','','示例代理4',1,'',5,0,'','','0','','','',0,100,1,'2026-07-17 09:29:09',1,'2026-07-17 09:29:16',NULL,NULL); + +INSERT INTO `sys_config` (`config_id`, `tenant_id`, `config_name`, `config_key`, `config_value`, `config_type`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `remark`) VALUES +(1,'000000','主框架页-默认皮肤样式名称','sys.index.skinName','skin-blue','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow'), +(2,'000000','用户管理-账号初始密码','sys.user.initPassword','123456','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'初始化密码 123456'), +(3,'000000','主框架页-侧边栏主题','sys.index.sideTheme','theme-dark','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'深色主题theme-dark,浅色主题theme-light'), +(4,'000000','账号自助-是否开启用户注册功能','sys.account.registerUser','false','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'是否开启注册用户功能(true开启,false关闭)'), +(5,'000000','OSS预览列表资源开关','sys.oss.previewListResource','true','Y',103,1,'2025-02-13 11:56:36',NULL,NULL,'true:开启, false:关闭'), +(6,'000000','上传文件类型','sys.oss.fileType','txt,md,doc,docx,pdf,xls,xlsx,ppt,pptx,txt,jpg,jpeg,png,gif,mp4,avi,mov,mp3,wav,m4a,csv','Y',103,1,'2025-03-14 11:28:54',1,'2025-03-14 11:29:11',''), +(7,'000000','上传图片类型','sys.oss.imgType','jpg,jpeg,png,gif,webp','Y',103,1,'2025-03-14 11:29:32',1,'2025-03-14 11:29:32',''), +(8,'000000','上传文件大小','sys.oss.fileSize','20M','Y',103,1,'2025-03-14 11:29:48',1,'2025-03-14 11:29:48',''), +(9,'000000','上传图片大小','sys.oss.imgSize','5M','Y',103,1,'2025-03-14 11:30:07',1,'2025-03-14 11:30:07',''), +(10,'000000','上传文件Url路径','sys.oss.urlPath','resource/upload|/upload','Y',103,1,'2025-03-14 12:48:44',1,'2025-03-14 12:48:44','\"http://ab.com/\" 或 \"/\" 或 \"resource/upload|http://ab.com/upload\"'), +(11,'000000','是否启动在线用户强制退出','sys.online.forceLogout','true','Y',103,1,'2025-03-26 20:07:24',1,'2025-03-26 20:08:33','true开启,false关闭'), +(12,'100007','主框架页-默认皮肤样式名称','sys.index.skinName','skin-blue','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,'蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow'), +(13,'100007','用户管理-账号初始密码','sys.user.initPassword','123456','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,'初始化密码 123456'), +(14,'100007','主框架页-侧边栏主题','sys.index.sideTheme','theme-dark','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,'深色主题theme-dark,浅色主题theme-light'), +(15,'100007','账号自助-是否开启用户注册功能','sys.account.registerUser','false','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,'是否开启注册用户功能(true开启,false关闭)'), +(16,'100007','OSS预览列表资源开关','sys.oss.previewListResource','true','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,'true:开启, false:关闭'), +(17,'100007','上传文件类型','sys.oss.fileType','txt,md,doc,docx,pdf,xls,xlsx,ppt,pptx,txt,jpg,jpeg,png,gif,mp4,avi,mov,mp3,wav,m4a,csv,json,application/json,bin,hex,fw,zip','Y',103,1,'2026-06-01 14:48:06',NULL,NULL,''), +(18,'100007','上传图片类型','sys.oss.imgType','jpg,jpeg,png,gif,webp','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,''), +(19,'100007','上传文件大小','sys.oss.fileSize','20M','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,''), +(20,'100007','上传图片大小','sys.oss.imgSize','5M','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,''), +(21,'100007','上传文件Url路径','sys.oss.urlPath','resource/upload|/upload','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,'\"http://ab.com/\" 或 \"/\" 或 \"resource/upload|http://ab.com/upload\"'), +(22,'100007','是否启动在线用户强制退出','sys.online.forceLogout','true','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,'true开启,false关闭'), +(23,'100007','系统启用的监控通道','iot.default.channel.gb28181','0','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,''), +(24,'100007','报警资源匹配时间','iot.alarm.image.timesec','10','N',120,14,'2026-06-01 14:48:06',NULL,NULL,NULL), +(25,'100007','自主注册组织ID','iot.register.dept','0','N',120,14,'2026-06-01 14:48:06',NULL,NULL,NULL), +(26,'100007','自主注册角色ID','iot.register.role','0','N',120,14,'2026-06-01 14:48:06',NULL,NULL,NULL), +(27,'100007','系统默认MQTT渠道','iot.default.channel.mqtt','0','N',120,14,'2026-06-01 14:48:06',NULL,NULL,NULL), +(28,'100007','系统默认TCP渠道','iot.default.channel.tcp','0','N',120,14,'2026-06-01 14:48:06',NULL,NULL,NULL), +(29,'100007','系统默认UDP渠道','iot.default.channel.udp','0','N',120,14,'2026-06-01 14:48:06',NULL,NULL,NULL), +(30,'100007','项目API默认地址','iot.project.api.default.addr','http://127.0.0.1:8510','Y',120,14,'2026-06-01 14:48:06',NULL,NULL,''), +(31,'000000','小程序自主注册组织ID','iot.register.app.dept','147','Y',100,1,'2026-07-14 11:18:39',1,'2026-07-14 11:18:39','小程序默认部门ID'), +(32,'000000','小程序自主注册角色ID','iot.register.app.role','54','Y',100,1,'2026-07-14 11:24:06',1,'2026-07-14 11:24:06','小程序默认角色ID'); + +INSERT INTO `sys_job` (`job_id`, `job_name`, `job_params`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `remark`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`) VALUES +(1,'test1','','1','test.abb','0 * * * ',1,1,'1','Lorem elit',101,11,'2025-03-19 12:00:33',11,'2025-03-20 11:28:07',11,'2025-03-20 11:28:07'), +(2,'韩成','Duis aute','0','0',' sss ',1,0,'0','0',101,11,'2025-03-19 13:13:29',11,'2025-03-20 11:28:13',11,'2025-03-20 11:28:13'), +(3,'test2','收拾收拾','0','test2','test2',2,0,'1','test2',101,11,'2025-03-20 10:29:48',11,'2025-03-20 11:28:13',11,'2025-03-20 11:28:13'), +(4,'test31','1','0','clear_data','3/10 * * * * ?',1,0,'1','test31',101,11,'2025-03-20 10:33:23',1,'2026-07-30 15:46:29',1,'2026-07-30 15:46:29'), +(5,'test11','','0','test','3/5 * * * 3/5 ?',1,0,'1','test11',101,11,'2025-03-20 11:28:57',1,'2026-07-30 15:46:27',1,'2026-07-30 15:46:27'), +(6,'test121','test121','0','test121','3/5 * 2,3 * * ? *',1,0,'1','test121',101,11,'2025-03-20 11:29:16',11,'2026-07-30 15:46:13',1,'2026-07-30 15:46:13'), +(7,'test2','1','1','test','3/5 * * * * ?',1,1,'1','test2',103,1,'2025-03-25 16:53:33',1,'2025-03-25 16:54:56',1,'2025-03-25 16:54:56'), +(8,'test1','2','2','test','* * * ? * 2/1',2,1,'1','test2',103,1,'2025-03-26 09:54:08',1,'2026-07-30 15:46:11',1,'2026-07-30 15:46:11'), +(9,'卡数据 - 当前用量同步','','1','syns_usage','0 0 0/6 * * ? ',1,0,'1','',103,1,NULL,1,'2026-07-30 16:14:13',NULL,NULL), +(10,' 卡数据 - 运营商状态同步','','0','syns_sim_status','0 0 0 1/1 * ? ',1,0,'1','',103,1,'2026-06-04 21:12:34',1,'2026-07-30 16:28:47',NULL,NULL), +(11,' 卡数据 - 月用量记录时序','','0','sync_traffic_usage_monthly','0 0 3 1 * ? ',1,0,'1','',103,1,'2026-06-21 11:53:03',1,'2026-07-30 16:16:11',NULL,NULL), +(12,'卡数据 - 日用量记录时序','','0','sync_traffic_usage_daily','0 0 3 * * ?',1,0,'1','',103,1,'2026-06-22 00:11:11',1,'2026-07-30 16:16:00',NULL,NULL), +(13,'测试 - 全量预警扫描','','0','scan_sim_warning','30 0 1 * * *',1,1,'1','单卡,流量池',100,1,'2026-07-24 10:18:00',1,'2026-08-05 09:42:06',NULL,NULL), +(14,' 预警 - SIM卡到期扫描','','0','notify_package_expiry','0 0 9 * * ?',1,1,'1','',100,1,'2026-07-27 14:35:16',1,'2026-07-31 17:54:32',1,'2026-07-31 17:54:32'), +(15,' 预警 - 流量池用量扫描','','0','check_flow_pool_warning','0 */15 * * * ?',1,1,'0','',100,1,'2026-07-27 14:37:34',1,'2026-07-30 16:10:14',NULL,NULL), +(16,'预警 - SIM卡用量扫描','','0','scan_sim_traffic_warning','0 */15 * * * ?',1,1,'0','',100,1,'2026-07-27 14:37:59',1,'2026-07-30 16:09:59',NULL,NULL), +(17,'卡管控 - 达量断网扫描','','0','check_traffic_cutoff','`0 */15 * * * ?`',1,1,'0','',100,1,'2026-07-27 15:37:08',1,'2026-07-30 16:09:31',NULL,NULL), +(18,' 套餐 - 生命周期流转','','0','sync_package_lifecycle','0 */15 * * * ?',1,1,'0','',100,1,'2026-07-28 16:00:00',1,'2026-07-30 16:08:45',NULL,NULL), +(19,'财务 - 可提现账户月账单','2026-07','0','settle_profit_account_month_bill','0 0 4 2 * ?',1,0,'0','',100,1,'2026-07-28 16:09:51',1,'2026-07-30 16:08:57',NULL,NULL), +(20,'财务 - 消费账户月账单','2026-07','0','settle_consume_account_month_bill','0 0 4 2 * ?',1,0,'0','',100,1,'2026-07-28 16:20:25',1,'2026-07-30 16:09:02',NULL,NULL), +(21,'财务 - 分润出账','2026-06|2025-07','0','settle_commission','0 0 4 * * ?',1,0,'0','',100,1,'2026-07-28 16:48:19',1,'2026-07-31 16:14:06',NULL,NULL), +(22,'流量池-卡信息数据同步流量池 ','117','0','sync_flow_pool_card','0 0 4 * * ?',1,0,'0','',100,1,'2026-07-31 16:16:32',1,'2026-07-31 16:21:56',NULL,NULL), +(23,'预警-到期预警全量预加载','','0','PreloadSimExpireWarning','0 30 23 28-31 * ?',1,1,'0','每月底扫描下下个月到期卡,写入 Redis 候选池',100,1,'2026-07-31 17:53:44',1,'2026-07-31 17:56:34',NULL,NULL), +(24,'预警-定时到期预警扫描','','0','ScanSimExpireCandidateWarning','0 0 9 * * ?',1,1,'0','',100,1,'2026-07-31 17:54:13',1,'2026-08-03 08:38:06',NULL,NULL); + +INSERT INTO `sys_oss_config` (`oss_config_id`, `tenant_id`, `config_key`, `access_key`, `secret_key`, `bucket_name`, `prefix`, `endpoint`, `domain`, `is_https`, `region`, `access_policy`, `status`, `ext1`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `remark`) VALUES +(1,'000000','minio','ruoyi','ruoyi123','ruoyi','','127.0.0.1:9000','','N','','1','0','',103,1,'2025-02-13 11:56:36',1,'2025-02-13 11:56:36',NULL), +(2,'000000','qiniu','XXXXXXXXXXXXXXX','XXXXXXXXXXXXXXX','ruoyi','','s3-cn-north-1.qiniucs.com','','N','','1','1','',103,1,'2025-02-13 11:56:36',1,'2025-02-13 11:56:36',NULL), +(3,'000000','aliyun','XXXXXXXXXXXXXXX','XXXXXXXXXXXXXXX','ruoyi','','oss-cn-beijing.aliyuncs.com','','N','','1','1','',103,1,'2025-02-13 11:56:36',1,'2025-02-13 11:56:36',NULL), +(4,'000000','qcloud','XXXXXXXXXXXXXXX','XXXXXXXXXXXXXXX','ruoyi-1240000000','','cos.ap-beijing.myqcloud.com','','N','ap-beijing','1','1','',103,1,'2025-02-13 11:56:36',1,'2025-02-13 11:56:36',NULL), +(5,'000000','image','ruoyi','ruoyi123','ruoyi','image','127.0.0.1:9000','','N','','1','1','',103,1,'2025-02-13 11:56:36',1,'2025-02-13 11:56:36',NULL), +(6,'000000','test','test222','test222','test222','stet','test22','222','Y','test','2','1','',103,1,'2025-03-13 17:11:44',1,'2025-03-13 17:17:53','sttt'); + +INSERT INTO `sys_client` (`id`, `client_id`, `client_key`, `client_secret`, `grant_type`, `device_type`, `active_timeout`, `timeout`, `status`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`) VALUES +(1,'e5cd7e4891bf95d1d19206ce24a7b32e','pc','pc123','password,social','pc',1800,604800,'0',103,1,'2025-02-13 11:56:36',1,'2025-03-14 14:51:44',NULL,NULL), +(2,'428a8310cd442757ae699df5d894f051','app','app123','password,sms,social','android',1800,604800,'0',103,1,'2025-02-13 11:56:36',1,'2025-02-13 11:56:36',NULL,NULL), +(3,'','dd','dd','sms,xcx','android',1800,604800,'0',103,1,'2025-03-14 14:24:31',1,'2025-03-14 14:33:54',1,'2025-03-14 14:33:54'), +(4,'1f6fxdu15xzd8fs32vh5ywwe004xwmqv','dd','dd','sms,email','ios',1800,604800,'0',103,1,'2025-03-14 14:34:09',NULL,'2025-03-14 14:52:59',1,'2025-03-14 14:52:59'); + +INSERT INTO `sys_notice` (`notice_id`, `tenant_id`, `notice_title`, `notice_type`, `notice_content`, `status`, `notice_range`, `dept_ids`, `user_ids`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `remark`) VALUES +(1,'000000','温馨提醒:2018-07-01 新版本发布啦','2',_binary '新版本内容','0',1,NULL,NULL,103,1,'2025-02-13 11:56:36',NULL,NULL,'管理员'), +(2,'000000','维护通知:2018-07-01 系统凌晨维护','1',_binary '维护内容','0',1,NULL,NULL,103,1,'2025-02-13 11:56:36',NULL,NULL,'管理员'); + +INSERT INTO `sys_tenant` (`id`, `tenant_id`, `contact_user_name`, `contact_phone`, `company_name`, `license_number`, `address`, `intro`, `domain`, `remark`, `package_id`, `admin_role_id`, `admin_dept_id`, `admin_user_id`, `expire_time`, `account_count`, `status`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`) VALUES +(1,'000000','管理组','13800000102','示例企业有限公司','','','多租户通用后台管理管理系统','','备注',0,1,103,1,'2027-05-28 00:00:00',-1,'0',103,1,'2025-02-13 11:56:36',1,'2026-05-28 15:22:57',NULL,NULL), +(6,'100006','李先生','13800000103','示例企业','3332233','地址','企业介绍','example.com','备注',9,117,10,1,'2026-03-16 00:00:00',-1,'0',103,1,'2025-03-16 14:36:52',1,'2026-05-28 15:23:12',1,'2026-05-28 15:23:12'); + +-- 表 sys_social 无种子数据 + +INSERT INTO `sys_tenant_package` (`package_id`, `package_name`, `menu_ids`, `remark`, `menu_check_strictly`, `status`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`) VALUES +(1,'test','100,1001,1002,1003,1004,1005,1006,1007','test',1,'0',0,0,'2025-03-16 11:56:06',1,'2026-06-01 14:55:50',0,NULL); + +INSERT INTO `sys_user_post` (`tenant_id`, `user_id`, `post_id`) VALUES +('000000',6,3); + +INSERT INTO `t_api` (`id`, `app_key`, `app_secret`, `rate_limit_period`, `rate_limit_count`, `dept_id`, `group_id`, `status`, `tenant_id`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`) VALUES +(1,'b96b84a4d70740c1bfe569a11ca62e219affe3a6','588035550bd35c0001fbcda2c4d812ebdebae9763127943f097758e029a0fdbc',100,100,2,2,0,'000000',117,1,'2026-05-28 09:15:19',NULL,'2026-07-06 14:17:23'), +(2,'a05df96b13285dea7abb1edbb7dadc5b02dda7fd','fa51b92ff866fb4e080fd5fcb42618249a6e1a2c87b7ead8006359980669bda9',3600,10000,2,2,0,'000000',117,1,'2026-06-15 16:32:47',1,'2026-07-24 14:18:12'); + +INSERT INTO `t_api_group` (`id`, `group_name`, `group_code`, `status`, `remark`, `tenant_id`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`) VALUES +(1,'管理者数据权限','managerAuth',0,'','000000',100,1,'2026-07-03 08:39:47',1,'2026-07-24 14:20:56'), +(2,'默认数据权限','defaultAuth',0,'','000000',100,1,'2026-07-03 08:40:23',1,'2026-07-24 14:20:46'); + +INSERT INTO `t_api_resource` (`id`, `api_name`, `api_code`, `method`, `path`, `status`, `version`, `remark`, `tenant_id`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`) VALUES +(1,'获取Token','auth:token',1,'/openapi/v3/query/token',0,'v3','','000000',100,1,'2026-07-02 18:00:15',NULL,'2026-07-03 10:49:32'), +(2,'查询SIM IMEI','auth:sim-imei',1,'/openapi/v3/query/sim-imei',0,'v3',NULL,'000000',100,1,'2026-07-03 08:34:20',NULL,'2026-07-03 10:49:33'), +(3,'查询SIM信息','auth:simInfo',1,'/openapi/v3/query/sim-info',0,'v3',NULL,'000000',100,1,'2026-07-03 08:35:47',NULL,'2026-07-03 10:49:34'), +(4,'查询SIM流量限制','auth:sim-limit',1,'/openapi/v3/query/sim-limit',0,'v3',NULL,'000000',100,1,'2026-07-03 08:37:11',NULL,'2026-07-03 10:49:36'), +(5,'查询SIM流量使用','auth:sim-usage',1,'/openapi/v3/query/sim-usage',0,'v3',NULL,'000000',100,1,'2026-07-03 08:38:11',NULL,'2026-07-03 10:49:39'); + +INSERT INTO `t_api_group_resource` (`group_id`, `api_id`) VALUES +(1,1), +(2,1), +(1,2), +(2,2), +(1,3), +(2,3), +(1,4), +(2,4), +(1,5), +(2,5); + +INSERT INTO `t_division_code` (`region_id`, `region_code`, `region_name`, `region_level`, `region_parent`, `region_type`) VALUES +(1,'110100000000','市辖区',2,'110000000000',''), +(2,'120100000000','市辖区',2,'120000000000',''), +(3,'130100000000','石家庄市',2,'130000000000',''), +(4,'130200000000','唐山市',2,'130000000000',''), +(5,'130300000000','秦皇岛市',2,'130000000000',''), +(6,'130400000000','邯郸市',2,'130000000000',''), +(7,'130500000000','邢台市',2,'130000000000',''), +(8,'130600000000','保定市',2,'130000000000',''), +(9,'130700000000','张家口市',2,'130000000000',''), +(10,'130800000000','承德市',2,'130000000000',''), +(11,'130900000000','沧州市',2,'130000000000',''), +(12,'131000000000','廊坊市',2,'130000000000',''), +(13,'131100000000','衡水市',2,'130000000000',''), +(14,'133100000000','雄安新区',2,'130000000000',''), +(15,'140100000000','太原市',2,'140000000000',''), +(16,'140200000000','大同市',2,'140000000000',''), +(17,'140300000000','阳泉市',2,'140000000000',''), +(18,'140400000000','长治市',2,'140000000000',''), +(19,'140500000000','晋城市',2,'140000000000',''), +(20,'140600000000','朔州市',2,'140000000000',''), +(21,'140700000000','晋中市',2,'140000000000',''), +(22,'140800000000','运城市',2,'140000000000',''), +(23,'140900000000','忻州市',2,'140000000000',''), +(24,'141000000000','临汾市',2,'140000000000',''), +(25,'141100000000','吕梁市',2,'140000000000',''), +(26,'150100000000','呼和浩特市',2,'150000000000',''), +(27,'150200000000','包头市',2,'150000000000',''), +(28,'150300000000','乌海市',2,'150000000000',''), +(29,'150400000000','赤峰市',2,'150000000000',''), +(30,'150500000000','通辽市',2,'150000000000',''), +(31,'150600000000','鄂尔多斯市',2,'150000000000',''), +(32,'150700000000','呼伦贝尔市',2,'150000000000',''), +(33,'150800000000','巴彦淖尔市',2,'150000000000',''), +(34,'150900000000','乌兰察布市',2,'150000000000',''), +(35,'152200000000','兴安盟',2,'150000000000',''), +(36,'152500000000','锡林郭勒盟',2,'150000000000',''), +(37,'152900000000','阿拉善盟',2,'150000000000',''), +(38,'210100000000','沈阳市',2,'210000000000',''), +(39,'210200000000','大连市',2,'210000000000',''), +(40,'210300000000','鞍山市',2,'210000000000',''), +(41,'210400000000','抚顺市',2,'210000000000',''), +(42,'210500000000','本溪市',2,'210000000000',''), +(43,'210600000000','丹东市',2,'210000000000',''), +(44,'210700000000','锦州市',2,'210000000000',''), +(45,'210800000000','营口市',2,'210000000000',''), +(46,'210900000000','阜新市',2,'210000000000',''), +(47,'211000000000','辽阳市',2,'210000000000',''), +(48,'211100000000','盘锦市',2,'210000000000',''), +(49,'211200000000','铁岭市',2,'210000000000',''), +(50,'211300000000','朝阳市',2,'210000000000',''), +(51,'211400000000','葫芦岛市',2,'210000000000',''), +(52,'220100000000','长春市',2,'220000000000',''), +(53,'220200000000','吉林市',2,'220000000000',''), +(54,'220300000000','四平市',2,'220000000000',''), +(55,'220400000000','辽源市',2,'220000000000',''), +(56,'220500000000','通化市',2,'220000000000',''), +(57,'220600000000','白山市',2,'220000000000',''), +(58,'220700000000','松原市',2,'220000000000',''), +(59,'220800000000','白城市',2,'220000000000',''), +(60,'222400000000','延边朝鲜族自治州',2,'220000000000',''), +(61,'230100000000','哈尔滨市',2,'230000000000',''), +(62,'230200000000','齐齐哈尔市',2,'230000000000',''), +(63,'230300000000','鸡西市',2,'230000000000',''), +(64,'230400000000','鹤岗市',2,'230000000000',''), +(65,'230500000000','双鸭山市',2,'230000000000',''), +(66,'230600000000','大庆市',2,'230000000000',''), +(67,'230700000000','伊春市',2,'230000000000',''), +(68,'230800000000','佳木斯市',2,'230000000000',''), +(69,'230900000000','七台河市',2,'230000000000',''), +(70,'231000000000','牡丹江市',2,'230000000000',''), +(71,'231100000000','黑河市',2,'230000000000',''), +(72,'231200000000','绥化市',2,'230000000000',''), +(73,'232700000000','大兴安岭地区',2,'230000000000',''), +(74,'310100000000','市辖区',2,'310000000000',''), +(75,'320100000000','南京市',2,'320000000000',''), +(76,'320200000000','无锡市',2,'320000000000',''), +(77,'320300000000','徐州市',2,'320000000000',''), +(78,'320400000000','常州市',2,'320000000000',''), +(79,'320500000000','苏州市',2,'320000000000',''), +(80,'320600000000','南通市',2,'320000000000',''), +(81,'320700000000','连云港市',2,'320000000000',''), +(82,'320800000000','淮安市',2,'320000000000',''), +(83,'320900000000','盐城市',2,'320000000000',''), +(84,'321000000000','扬州市',2,'320000000000',''), +(85,'321100000000','镇江市',2,'320000000000',''), +(86,'321200000000','泰州市',2,'320000000000',''), +(87,'321300000000','宿迁市',2,'320000000000',''), +(88,'330100000000','杭州市',2,'330000000000',''), +(89,'330200000000','宁波市',2,'330000000000',''), +(90,'330300000000','温州市',2,'330000000000',''), +(91,'330400000000','嘉兴市',2,'330000000000',''), +(92,'330500000000','湖州市',2,'330000000000',''), +(93,'330600000000','绍兴市',2,'330000000000',''), +(94,'330700000000','金华市',2,'330000000000',''), +(95,'330800000000','衢州市',2,'330000000000',''), +(96,'330900000000','舟山市',2,'330000000000',''), +(97,'331000000000','台州市',2,'330000000000',''), +(98,'331100000000','丽水市',2,'330000000000',''), +(99,'340100000000','合肥市',2,'340000000000',''), +(100,'340200000000','芜湖市',2,'340000000000',''), +(101,'340300000000','蚌埠市',2,'340000000000',''), +(102,'340400000000','淮南市',2,'340000000000',''), +(103,'340500000000','马鞍山市',2,'340000000000',''), +(104,'340600000000','淮北市',2,'340000000000',''), +(105,'340700000000','铜陵市',2,'340000000000',''), +(106,'340800000000','安庆市',2,'340000000000',''), +(107,'341000000000','黄山市',2,'340000000000',''), +(108,'341100000000','滁州市',2,'340000000000',''), +(109,'341200000000','阜阳市',2,'340000000000',''), +(110,'341300000000','宿州市',2,'340000000000',''), +(111,'341500000000','六安市',2,'340000000000',''), +(112,'341600000000','亳州市',2,'340000000000',''), +(113,'341700000000','池州市',2,'340000000000',''), +(114,'341800000000','宣城市',2,'340000000000',''), +(115,'350100000000','福州市',2,'350000000000',''), +(116,'350200000000','厦门市',2,'350000000000',''), +(117,'350300000000','莆田市',2,'350000000000',''), +(118,'350400000000','三明市',2,'350000000000',''), +(119,'350500000000','泉州市',2,'350000000000',''), +(120,'350600000000','漳州市',2,'350000000000',''), +(121,'350700000000','南平市',2,'350000000000',''), +(122,'350800000000','龙岩市',2,'350000000000',''), +(123,'350900000000','宁德市',2,'350000000000',''), +(124,'360100000000','南昌市',2,'360000000000',''), +(125,'360200000000','景德镇市',2,'360000000000',''), +(126,'360300000000','萍乡市',2,'360000000000',''), +(127,'360400000000','九江市',2,'360000000000',''), +(128,'360500000000','新余市',2,'360000000000',''), +(129,'360600000000','鹰潭市',2,'360000000000',''), +(130,'360700000000','赣州市',2,'360000000000',''), +(131,'360800000000','吉安市',2,'360000000000',''), +(132,'360900000000','宜春市',2,'360000000000',''), +(133,'361000000000','抚州市',2,'360000000000',''), +(134,'361100000000','上饶市',2,'360000000000',''), +(135,'370100000000','济南市',2,'370000000000',''), +(136,'370200000000','青岛市',2,'370000000000',''), +(137,'370300000000','淄博市',2,'370000000000',''), +(138,'370400000000','枣庄市',2,'370000000000',''), +(139,'370500000000','东营市',2,'370000000000',''), +(140,'370600000000','烟台市',2,'370000000000',''), +(141,'370700000000','潍坊市',2,'370000000000',''), +(142,'370800000000','济宁市',2,'370000000000',''), +(143,'370900000000','泰安市',2,'370000000000',''), +(144,'371000000000','威海市',2,'370000000000',''), +(145,'371100000000','日照市',2,'370000000000',''), +(146,'371300000000','临沂市',2,'370000000000',''), +(147,'371400000000','德州市',2,'370000000000',''), +(148,'371500000000','聊城市',2,'370000000000',''), +(149,'371600000000','滨州市',2,'370000000000',''), +(150,'371700000000','菏泽市',2,'370000000000',''), +(151,'410100000000','郑州市',2,'410000000000',''), +(152,'410200000000','开封市',2,'410000000000',''), +(153,'410300000000','洛阳市',2,'410000000000',''), +(154,'410400000000','平顶山市',2,'410000000000',''), +(155,'410500000000','安阳市',2,'410000000000',''), +(156,'410600000000','鹤壁市',2,'410000000000',''), +(157,'410700000000','新乡市',2,'410000000000',''), +(158,'410800000000','焦作市',2,'410000000000',''), +(159,'410900000000','濮阳市',2,'410000000000',''), +(160,'411000000000','许昌市',2,'410000000000',''), +(161,'411100000000','漯河市',2,'410000000000',''), +(162,'411200000000','三门峡市',2,'410000000000',''), +(163,'411300000000','南阳市',2,'410000000000',''), +(164,'411400000000','商丘市',2,'410000000000',''), +(165,'411500000000','信阳市',2,'410000000000',''), +(166,'411600000000','周口市',2,'410000000000',''), +(167,'411700000000','驻马店市',2,'410000000000',''), +(168,'419000000000','省直辖县级行政区划',2,'410000000000',''), +(169,'420100000000','武汉市',2,'420000000000',''), +(170,'420200000000','黄石市',2,'420000000000',''), +(171,'420300000000','十堰市',2,'420000000000',''), +(172,'420500000000','宜昌市',2,'420000000000',''), +(173,'420600000000','襄阳市',2,'420000000000',''), +(174,'420700000000','鄂州市',2,'420000000000',''), +(175,'420800000000','荆门市',2,'420000000000',''), +(176,'420900000000','孝感市',2,'420000000000',''), +(177,'421000000000','荆州市',2,'420000000000',''), +(178,'421100000000','黄冈市',2,'420000000000',''), +(179,'421200000000','咸宁市',2,'420000000000',''), +(180,'421300000000','随州市',2,'420000000000',''), +(181,'422800000000','恩施土家族苗族自治州',2,'420000000000',''), +(182,'429000000000','省直辖县级行政区划',2,'420000000000',''), +(183,'430100000000','长沙市',2,'430000000000',''), +(184,'430200000000','株洲市',2,'430000000000',''), +(185,'430300000000','湘潭市',2,'430000000000',''), +(186,'430400000000','衡阳市',2,'430000000000',''), +(187,'430500000000','邵阳市',2,'430000000000',''), +(188,'430600000000','岳阳市',2,'430000000000',''), +(189,'430700000000','常德市',2,'430000000000',''), +(190,'430800000000','张家界市',2,'430000000000',''), +(191,'430900000000','益阳市',2,'430000000000',''), +(192,'431000000000','郴州市',2,'430000000000',''), +(193,'431100000000','永州市',2,'430000000000',''), +(194,'431200000000','怀化市',2,'430000000000',''), +(195,'431300000000','娄底市',2,'430000000000',''), +(196,'433100000000','湘西土家族苗族自治州',2,'430000000000',''), +(197,'440100000000','广州市',2,'440000000000',''), +(198,'440200000000','韶关市',2,'440000000000',''), +(199,'440300000000','深圳市',2,'440000000000',''), +(200,'440400000000','珠海市',2,'440000000000',''), +(201,'440500000000','汕头市',2,'440000000000',''), +(202,'440600000000','佛山市',2,'440000000000',''), +(203,'440700000000','江门市',2,'440000000000',''), +(204,'440800000000','湛江市',2,'440000000000',''), +(205,'440900000000','茂名市',2,'440000000000',''), +(206,'441200000000','肇庆市',2,'440000000000',''), +(207,'441300000000','惠州市',2,'440000000000',''), +(208,'441400000000','梅州市',2,'440000000000',''), +(209,'441500000000','汕尾市',2,'440000000000',''), +(210,'441600000000','河源市',2,'440000000000',''), +(211,'441700000000','阳江市',2,'440000000000',''), +(212,'441800000000','清远市',2,'440000000000',''), +(213,'441900000000','东莞市',2,'440000000000',''), +(214,'442000000000','中山市',2,'440000000000',''), +(215,'445100000000','潮州市',2,'440000000000',''), +(216,'445200000000','揭阳市',2,'440000000000',''), +(217,'445300000000','云浮市',2,'440000000000',''), +(218,'450100000000','南宁市',2,'450000000000',''), +(219,'450200000000','柳州市',2,'450000000000',''), +(220,'450300000000','桂林市',2,'450000000000',''), +(221,'450400000000','梧州市',2,'450000000000',''), +(222,'450500000000','北海市',2,'450000000000',''), +(223,'450600000000','防城港市',2,'450000000000',''), +(224,'450700000000','钦州市',2,'450000000000',''), +(225,'450800000000','贵港市',2,'450000000000',''), +(226,'450900000000','玉林市',2,'450000000000',''), +(227,'451000000000','百色市',2,'450000000000',''), +(228,'451100000000','贺州市',2,'450000000000',''), +(229,'451200000000','河池市',2,'450000000000',''), +(230,'451300000000','来宾市',2,'450000000000',''), +(231,'451400000000','崇左市',2,'450000000000',''), +(232,'460100000000','海口市',2,'460000000000',''), +(233,'460200000000','三亚市',2,'460000000000',''), +(234,'460300000000','三沙市',2,'460000000000',''), +(235,'460400000000','儋州市',2,'460000000000',''), +(236,'469000000000','省直辖县级行政区划',2,'460000000000',''), +(237,'500100000000','市辖区',2,'500000000000',''), +(238,'500200000000','县',2,'500000000000',''), +(239,'510100000000','成都市',2,'510000000000',''), +(240,'510300000000','自贡市',2,'510000000000',''), +(241,'510400000000','攀枝花市',2,'510000000000',''), +(242,'510500000000','泸州市',2,'510000000000',''), +(243,'510600000000','德阳市',2,'510000000000',''), +(244,'510700000000','绵阳市',2,'510000000000',''), +(245,'510800000000','广元市',2,'510000000000',''), +(246,'510900000000','遂宁市',2,'510000000000',''), +(247,'511000000000','内江市',2,'510000000000',''), +(248,'511100000000','乐山市',2,'510000000000',''), +(249,'511300000000','南充市',2,'510000000000',''), +(250,'511400000000','眉山市',2,'510000000000',''), +(251,'511500000000','宜宾市',2,'510000000000',''), +(252,'511600000000','广安市',2,'510000000000',''), +(253,'511700000000','达州市',2,'510000000000',''), +(254,'511800000000','雅安市',2,'510000000000',''), +(255,'511900000000','巴中市',2,'510000000000',''), +(256,'512000000000','资阳市',2,'510000000000',''), +(257,'513200000000','阿坝藏族羌族自治州',2,'510000000000',''), +(258,'513300000000','甘孜藏族自治州',2,'510000000000',''), +(259,'513400000000','凉山彝族自治州',2,'510000000000',''), +(260,'520100000000','贵阳市',2,'520000000000',''), +(261,'520200000000','六盘水市',2,'520000000000',''), +(262,'520300000000','遵义市',2,'520000000000',''), +(263,'520400000000','安顺市',2,'520000000000',''), +(264,'520500000000','毕节市',2,'520000000000',''), +(265,'520600000000','铜仁市',2,'520000000000',''), +(266,'522300000000','黔西南布依族苗族自治州',2,'520000000000',''), +(267,'522600000000','黔东南苗族侗族自治州',2,'520000000000',''), +(268,'522700000000','黔南布依族苗族自治州',2,'520000000000',''), +(269,'530100000000','昆明市',2,'530000000000',''), +(270,'530300000000','曲靖市',2,'530000000000',''), +(271,'530400000000','玉溪市',2,'530000000000',''), +(272,'530500000000','保山市',2,'530000000000',''), +(273,'530600000000','昭通市',2,'530000000000',''), +(274,'530700000000','丽江市',2,'530000000000',''), +(275,'530800000000','普洱市',2,'530000000000',''), +(276,'530900000000','临沧市',2,'530000000000',''), +(277,'532300000000','楚雄彝族自治州',2,'530000000000',''), +(278,'532500000000','红河哈尼族彝族自治州',2,'530000000000',''), +(279,'532600000000','文山壮族苗族自治州',2,'530000000000',''), +(280,'532800000000','西双版纳傣族自治州',2,'530000000000',''), +(281,'532900000000','大理白族自治州',2,'530000000000',''), +(282,'533100000000','德宏傣族景颇族自治州',2,'530000000000',''), +(283,'533300000000','怒江傈僳族自治州',2,'530000000000',''), +(284,'533400000000','迪庆藏族自治州',2,'530000000000',''), +(285,'540100000000','拉萨市',2,'540000000000',''), +(286,'540200000000','日喀则市',2,'540000000000',''), +(287,'540300000000','昌都市',2,'540000000000',''), +(288,'540400000000','林芝市',2,'540000000000',''), +(289,'540500000000','山南市',2,'540000000000',''), +(290,'540600000000','那曲市',2,'540000000000',''), +(291,'542500000000','阿里地区',2,'540000000000',''), +(292,'610100000000','西安市',2,'610000000000',''), +(293,'610200000000','铜川市',2,'610000000000',''), +(294,'610300000000','宝鸡市',2,'610000000000',''), +(295,'610400000000','咸阳市',2,'610000000000',''), +(296,'610500000000','渭南市',2,'610000000000',''), +(297,'610600000000','延安市',2,'610000000000',''), +(298,'610700000000','汉中市',2,'610000000000',''), +(299,'610800000000','榆林市',2,'610000000000',''), +(300,'610900000000','安康市',2,'610000000000',''), +(301,'611000000000','商洛市',2,'610000000000',''), +(302,'620100000000','兰州市',2,'620000000000',''), +(303,'620200000000','嘉峪关市',2,'620000000000',''), +(304,'620300000000','金昌市',2,'620000000000',''), +(305,'620400000000','白银市',2,'620000000000',''), +(306,'620500000000','天水市',2,'620000000000',''), +(307,'620600000000','武威市',2,'620000000000',''), +(308,'620700000000','张掖市',2,'620000000000',''), +(309,'620800000000','平凉市',2,'620000000000',''), +(310,'620900000000','酒泉市',2,'620000000000',''), +(311,'621000000000','庆阳市',2,'620000000000',''), +(312,'621100000000','定西市',2,'620000000000',''), +(313,'621200000000','陇南市',2,'620000000000',''), +(314,'622900000000','临夏回族自治州',2,'620000000000',''), +(315,'623000000000','甘南藏族自治州',2,'620000000000',''), +(316,'630100000000','西宁市',2,'630000000000',''), +(317,'630200000000','海东市',2,'630000000000',''), +(318,'632200000000','海北藏族自治州',2,'630000000000',''), +(319,'632300000000','黄南藏族自治州',2,'630000000000',''), +(320,'632500000000','海南藏族自治州',2,'630000000000',''), +(321,'632600000000','果洛藏族自治州',2,'630000000000',''), +(322,'632700000000','玉树藏族自治州',2,'630000000000',''), +(323,'632800000000','海西蒙古族藏族自治州',2,'630000000000',''), +(324,'640100000000','银川市',2,'640000000000',''), +(325,'640200000000','石嘴山市',2,'640000000000',''), +(326,'640300000000','吴忠市',2,'640000000000',''), +(327,'640400000000','固原市',2,'640000000000',''), +(328,'640500000000','中卫市',2,'640000000000',''), +(329,'650100000000','乌鲁木齐市',2,'650000000000',''), +(330,'650200000000','克拉玛依市',2,'650000000000',''), +(331,'650400000000','吐鲁番市',2,'650000000000',''), +(332,'650500000000','哈密市',2,'650000000000',''), +(333,'652300000000','昌吉回族自治州',2,'650000000000',''), +(334,'652700000000','博尔塔拉蒙古自治州',2,'650000000000',''), +(335,'652800000000','巴音郭楞蒙古自治州',2,'650000000000',''), +(336,'652900000000','阿克苏地区',2,'650000000000',''), +(337,'653000000000','克孜勒苏柯尔克孜自治州',2,'650000000000',''), +(338,'653100000000','喀什地区',2,'650000000000',''), +(339,'653200000000','和田地区',2,'650000000000',''), +(340,'654000000000','伊犁哈萨克自治州',2,'650000000000',''), +(341,'654200000000','塔城地区',2,'650000000000',''), +(342,'654300000000','阿勒泰地区',2,'650000000000',''), +(343,'659000000000','自治区直辖县级行政区划',2,'650000000000',''), +(344,'110000000000','北京市',1,'000000000000',''), +(345,'120000000000','天津市',1,'000000000000',''), +(346,'130000000000','河北省',1,'000000000000',''), +(347,'140000000000','山西省',1,'000000000000',''), +(348,'150000000000','内蒙古自治区',1,'000000000000',''), +(349,'210000000000','辽宁省',1,'000000000000',''), +(350,'220000000000','吉林省',1,'000000000000',''), +(351,'230000000000','黑龙江省',1,'000000000000',''), +(352,'310000000000','上海市',1,'000000000000',''), +(353,'320000000000','江苏省',1,'000000000000',''), +(354,'330000000000','浙江省',1,'000000000000',''), +(355,'340000000000','安徽省',1,'000000000000',''), +(356,'350000000000','福建省',1,'000000000000',''), +(357,'360000000000','江西省',1,'000000000000',''), +(358,'370000000000','山东省',1,'000000000000',''), +(359,'410000000000','河南省',1,'000000000000',''), +(360,'420000000000','湖北省',1,'000000000000',''), +(361,'430000000000','湖南省',1,'000000000000',''), +(362,'440000000000','广东省',1,'000000000000',''), +(363,'450000000000','广西壮族自治区',1,'000000000000',''), +(364,'460000000000','海南省',1,'000000000000',''), +(365,'500000000000','重庆市',1,'000000000000',''), +(366,'510000000000','四川省',1,'000000000000',''), +(367,'520000000000','贵州省',1,'000000000000',''), +(368,'530000000000','云南省',1,'000000000000',''), +(369,'540000000000','西藏自治区',1,'000000000000',''), +(370,'610000000000','陕西省',1,'000000000000',''), +(371,'620000000000','甘肃省',1,'000000000000',''), +(372,'630000000000','青海省',1,'000000000000',''), +(373,'640000000000','宁夏回族自治区',1,'000000000000',''), +(374,'650000000000','新疆维吾尔自治区',1,'000000000000',''), +(375,'710000000000','台湾省',1,'000000000000',''), +(376,'810000000000','香港特别行政区',1,'000000000000',''), +(377,'820000000000','澳门特别行政区',1,'000000000000',''); + + +SET FOREIGN_KEY_CHECKS = 1; + + +-- ============================================================ +-- 结构补齐:card_channel_assoc 表与 27 个列 +-- ============================================================ + +-- ---------- 1. 缺失的表:card_channel_assoc(卡号段-通道关联)---------- +CREATE TABLE IF NOT EXISTS `card_channel_assoc` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `channel_id` int NOT NULL COMMENT '通道ID', + `match_type` tinyint NOT NULL COMMENT '匹配类型', + `iccid` varchar(32) DEFAULT NULL COMMENT '单卡ICCID', + `iccid_start` varchar(32) DEFAULT NULL COMMENT '卡号段起始', + `iccid_end` varchar(32) DEFAULT NULL COMMENT '卡号段结束', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态', + `remark` varchar(255) DEFAULT NULL COMMENT '备注', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_channel_id` (`channel_id`), + KEY `idx_iccid` (`iccid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='卡号段与通道关联'; + +-- ---------- 2. 幂等补列辅助过程 ---------- +DROP PROCEDURE IF EXISTS `sp_add_column_if_missing`; +DELIMITER $$ +CREATE PROCEDURE `sp_add_column_if_missing`( + IN p_table VARCHAR(64), + IN p_column VARCHAR(64), + IN p_ddl TEXT +) +BEGIN + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = DATABASE() + AND table_name = p_table + AND column_name = p_column + ) THEN + SET @s = CONCAT('ALTER TABLE `', p_table, '` ADD COLUMN ', p_ddl); + PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt; + SELECT CONCAT('added ', p_table, '.', p_column) AS action; + ELSE + SELECT CONCAT('exists ', p_table, '.', p_column) AS action; + END IF; +END$$ +DELIMITER ; + +-- ---------- 3. batch_main:补 2 列 ---------- +CALL sp_add_column_if_missing('batch_main', 'source_channel', + "`source_channel` varchar(24) NOT NULL DEFAULT 'legacy' COMMENT '发起渠道:console/mini_program/api/system/legacy'"); +CALL sp_add_column_if_missing('batch_main', 'execution_mode', + "`execution_mode` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '执行模式'"); + +-- ---------- 4. sys_user:补 1 列 ---------- +CALL sp_add_column_if_missing('sys_user', 'is_init_password', + "`is_init_password` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否为初始密码'"); + +-- ---------- 5. t_sim_card_info:补 4 列 ---------- +CALL sp_add_column_if_missing('t_sim_card_info', 'imei_sync_time', + "`imei_sync_time` datetime DEFAULT NULL COMMENT 'IMEI 同步时间'"); +CALL sp_add_column_if_missing('t_sim_card_info', 'imei_update_time', + "`imei_update_time` datetime DEFAULT NULL COMMENT 'IMEI 更新时间'"); +CALL sp_add_column_if_missing('t_sim_card_info', 'traffic_cutoff_triggered_at', + "`traffic_cutoff_triggered_at` datetime DEFAULT NULL COMMENT '流量停机触发时间'"); +CALL sp_add_column_if_missing('t_sim_card_info', 'traffic_cutoff_cross_month_hold', + "`traffic_cutoff_cross_month_hold` tinyint(1) NOT NULL DEFAULT 0 COMMENT '流量停机跨月保持'"); + +-- ---------- 6. t_sim_channels:补 9 列 ---------- +CALL sp_add_column_if_missing('t_sim_channels', 'app_key', + "`app_key` varchar(64) DEFAULT NULL COMMENT '运营商 app_key'"); +CALL sp_add_column_if_missing('t_sim_channels', 'app_secret', + "`app_secret` varchar(64) DEFAULT NULL COMMENT '运营商 app_secret'"); +CALL sp_add_column_if_missing('t_sim_channels', 'operator', + "`operator` tinyint unsigned DEFAULT NULL COMMENT '运营商'"); +CALL sp_add_column_if_missing('t_sim_channels', 'is_normal', + "`is_normal` tinyint(1) DEFAULT NULL COMMENT '是否正常'"); +CALL sp_add_column_if_missing('t_sim_channels', 'docking_status', + "`docking_status` tinyint(1) DEFAULT NULL COMMENT '对接状态'"); +CALL sp_add_column_if_missing('t_sim_channels', 'sync_enabled', + "`sync_enabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否启用全量同步'"); +CALL sp_add_column_if_missing('t_sim_channels', 'card_info_count', + "`card_info_count` bigint NOT NULL DEFAULT 0 COMMENT '卡信息数量'"); +CALL sp_add_column_if_missing('t_sim_channels', 'stock_card_count', + "`stock_card_count` bigint NOT NULL DEFAULT 0 COMMENT '库存卡数量'"); +CALL sp_add_column_if_missing('t_sim_channels', 'cancellation_card_count', + "`cancellation_card_count` bigint NOT NULL DEFAULT 0 COMMENT '销户卡数量'"); + +-- ---------- 7. 两张套餐绑定表:补 batch_no ---------- +CALL sp_add_column_if_missing('t_sim_pool_bind_package', 'batch_no', + "`batch_no` varchar(64) NOT NULL DEFAULT '' COMMENT '批次号'"); +CALL sp_add_column_if_missing('t_sim_pool_bind_pkg_logs', 'batch_no', + "`batch_no` varchar(64) NOT NULL DEFAULT '' COMMENT '批次号'"); + +-- ---------- 8. 清理辅助过程 ---------- +DROP PROCEDURE IF EXISTS `sp_add_column_if_missing`; + +-- ---------- 9. 校验 ---------- +SELECT 'tables' AS check_item, COUNT(*) AS n FROM information_schema.tables + WHERE table_schema='db_iotlcm' +UNION ALL SELECT 'columns', COUNT(*) FROM information_schema.columns + WHERE table_schema='db_iotlcm' +UNION ALL SELECT 'has_source_channel', COUNT(*) FROM information_schema.columns + WHERE table_schema='db_iotlcm' AND table_name='batch_main' AND column_name='source_channel' +UNION ALL SELECT 'has_card_channel_assoc', COUNT(*) FROM information_schema.tables + WHERE table_schema='db_iotlcm' AND table_name='card_channel_assoc'; + + +-- ============================================================ +-- 结构对齐生产:t_sms_template_config 表、batch_no 默认值 +-- ============================================================ + +-- ---------- 1. 缺表:t_sms_template_config ---------- +CREATE TABLE IF NOT EXISTS `t_sms_template_config` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `scene` varchar(64) NOT NULL COMMENT '业务场景码,全局唯一,如 bind_phone', + `scene_name` varchar(128) NOT NULL DEFAULT '' COMMENT '场景名称(可读)', + `service_type` varchar(8) NOT NULL DEFAULT '' COMMENT '短信供应商:空=用服务默认,1=阿里云,2=腾讯云', + `sign_name` varchar(64) NOT NULL DEFAULT '' COMMENT '短信签名:空=用服务默认', + `template_id` varchar(64) NOT NULL COMMENT '短信模板ID', + `msg_content_template` varchar(512) NOT NULL DEFAULT '' COMMENT '内容参数模板,支持 {content}/{contentJson} 占位;空=直接使用调用方 msgContent', + `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0停用,1启用', + `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_scene` (`scene`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='短信业务场景模板配置'; + +-- ---------- 2. batch_no 默认值对齐生产(去掉 '' 默认) ---------- +-- 生产:`batch_no` varchar(64) NOT NULL (无 DEFAULT) +-- 种子:`batch_no` varchar(64) NOT NULL DEFAULT '' +ALTER TABLE `t_sim_pool_bind_package` MODIFY COLUMN `batch_no` varchar(64) NOT NULL COMMENT '批次号'; +ALTER TABLE `t_sim_pool_bind_pkg_logs` MODIFY COLUMN `batch_no` varchar(64) NOT NULL COMMENT '批次号'; + + +-- ============================================================ +-- 通道模板种子(真实上游密钥已置空) +-- ============================================================ + +-- 重置为基线:只保留 移动 / 电信 / 移动Mock +DELETE FROM `t_sim_channel_template` + WHERE `temp_key` NOT IN ('sim_dx_v1', 'sim_yd_v5', 'sim_yd_mock_v5'); + +INSERT INTO `t_sim_channel_template` + (`id`,`temp_key`,`temp_name`,`temp_model`,`temp_config`,`temp_status`,`remark`,`tenant_id`,`created_dept`,`created_by`,`created_at`,`updated_by`,`updated_at`) +VALUES +(1,'sim_dx_v1','电信BOSS卡API','direct','{"api":{"baseUrl":"https://cmp-api.ctwing.cn:20164"}}',0,'','000000',1,1,'2026-06-12 10:16:22',NULL,'2026-09-08 20:31:54'), +(2,'sim_yd_v5','中国移动V5模板','direct','{"api":{"baseUrl":"https://api.iot.10086.cn/v5/"},"token":{"path":"/ec/get/token"}}',0,NULL,'000000',1,1,'2026-06-12 10:17:03',NULL,'2026-09-08 20:31:54'), +(4,'sim_yd_mock_v5','移动Mock','direct','{"api":{"baseUrl":"http://onelink-mock:8080/v5/"}}',0,NULL,'000000',1,1,'2026-08-14 11:00:53',NULL,'2026-09-08 20:31:54') +ON DUPLICATE KEY UPDATE + `temp_name` = VALUES(`temp_name`), + `temp_model` = VALUES(`temp_model`), + `temp_config` = VALUES(`temp_config`), + `temp_status` = VALUES(`temp_status`), + `remark` = VALUES(`remark`), + `updated_at` = VALUES(`updated_at`); + +-- 自检:应恰好 3 条 +SELECT COUNT(*) AS template_count, + GROUP_CONCAT(`temp_key` ORDER BY `id`) AS temp_keys + FROM `t_sim_channel_template`; + + +-- ============================================================ +-- 数据字典种子(86 类 / 435 条) +-- ============================================================ + +-- 清空后全量导入(字典为纯参照数据,无业务含义,可安全替换) +DELETE FROM `sys_dict_data`; +DELETE FROM `sys_dict_type`; + +INSERT INTO `sys_dict_type` (`dict_name`,`dict_type`,`is_sys`,`tenant_id`,`created_dept`,`created_by`,`remark`) VALUES +('提现账号类型','account_type',1,'000000',100,1,'1:银行卡 +2:支付宝 +3:微信'), +('状态','apply_status',1,'000000',100,1,'0:待审核 +1:已通过 +2:已驳回 +3:已打款 +4:已取消'), +('申请类型','apply_type',1,'000000',100,1,'1:提现申请 +2:余额转提现'), +('审核结果','audit_result',1,'000000',100,1,'0:通过 +1:驳回'), +('审核类型','audit_type',1,'000000',100,1,'1:初审 +2:复审'), +('批次异步状态','batch_async_status',1,'000000',NULL,1,'批次异步状态:0-已创建 1-待处理 2-处理中 3-成功 4-失败'), +('批次类型','batch_type',1,'000000',103,1,'批次类型:1-3通用批次,101+卡业务专属'), +('卡状态','boss_card_status',0,'000000',103,1,'待激活:1 +已激活:2 +停机:4 +可测试:6 +库存:7 +预销户:8 +已销户:9 +未知:0'), +('变动类型','change_type',1,'000000',100,1,'0:分润 +1:提现 +2:转出 +3:转入 +4:还款'), +('创建人类型','creator_type',1,'000000',100,1,'1:终端用户 +2:代理商'), +('当前处理状态','current_status',1,'000000',100,1,'1:已分派 +2:处理中 +3:已解决 +4:已完结_关单 +5:已取消'), +('客户类型','customer_type',1,'000000',100,1,'1 渠道用户 +2 终端用户'), +('批次明细状态','detail_status',0,'000000',NULL,1,'批次明细状态:0待处理 1处理中 2成功 3失败'), +('分销分成状态','distribution_status',1,'000000',117,1,'0:未分成 +1:已分成'), +('下载状态','download_status',1,'000000',103,1,'0:待生成 1:已生成 2:生成中 3:生成失败'), +('生效状态','effective_status',1,'000000',100,1,'0:待生效 +1:生效中 +2:已过期 +3:已终止 +4:已作废'), +('套餐启用状态','flow_package_enabled',0,'000000',100,1,'套餐管理-是否启用,与global_enable方向相反(0=停用 1=启用)'), +('全局-是否启用','global_enable',0,'000000',103,1,'0:启用 +1:停用'), +('全局-是否','global_yes_or_no',0,'000000',103,1,'0:是 +1:否'), +('收支类型','income_expense_type',1,'000000',100,1,'0:收入 +1:支出'), +('是否需要分佣','is_need_commission',1,'000000',117,1,'0:分佣 +1:不分佣 '), +('是否撤回','is_recall',1,'000000',100,1,'0:未撤回 +1:已撤回'), +('消息类型','message_type',1,'000000',100,1,'1:系统通知 +2:活动通知 +3:订单通知 +4:账户通知'), +('请求方法','method',1,'000000',100,1,'1:POST +2:PUT +3:DELETE +4:GET'), +('操作类型','operation_type',1,'000000',100,1,'0:创建 +1:分派 +2:处理 +3:完成 +4:关单 +5:取消'), +('订单状态','order_status',1,'000000',100,1,'0 待确定,待支付 +1 已确定,待发货 +2处理中,已发货 +3 已取消 +4 无效 +5 已完成'), +('订单类型','order_type',1,'000000',100,1,'1:卡订购 +2: 卡续费 +3: 卡变更'), +('oss权限桶类型','oss_access_policy',1,'000000',103,1,''), +('支付状态','pay_status',1,'000000',100,1,'0 未支付 +1 支付中 +2 已支付 +3 退款中 +4 部分退款 +5 已退款'), +('支付类型','pay_type',1,'000000',100,1,'1:在线支付 +2:货到付款 +3:线下支付'), +('套餐名称','pool_package_code',1,'000000',100,1,'此处为流量池名称 每次新增流量池套餐需要进行配置'), +('资源导出场景','resource_export_scene',1,'000000',103,1,'t_resource_batch_download.export_scene'), +('资源类型','resource_type',1,'000000',103,1,'t_resource_batch_download.resource_type'), +('退货状态','return_status',1,'000000',100,1,'0未退款 +1待审核 +2执行中 +3部分退货 +4退货成功'), +('运行结果','run_result',0,'000000',NULL,1,'运行结果:0待运行 1运行中 2成功 3失败'), +('发送用户类型','send_user_type',1,'000000',100,1,'1:代理商 +2:终端用户'), +('共享token','share_enabled',1,'000000',100,1,'0:否 +1:是'), +('发货方式','shipping_method',1,'000000',100,1,'1 物流 +2 商家自提 +3 无需配送'), +('配送状态','shipping_status',1,'000000',117,1,'0:未发货 +1:已发货 +2:已收货 +4:退货'), +('卡入库导入状态','sim_card_inbound_import_status',1,'000000',103,1,'TSimCardInboundExcelImportRes.importStatus'), +('系统状态','sys_common_status',1,'000000',103,1,'登录状态列表'), +('组织类型','sys_dept_type',0,'000000',103,1,'0:部门 +1:公司'), +('设备类型','sys_device_type',1,'000000',103,1,'客户端设备类型'), +('代码生成状态','sys_gen_status',1,'000000',103,1,''), +('授权类型','sys_grant_type',1,'000000',103,1,'认证授权类型'), +('任务是否并发执行','sys_job_concurrent',1,'000000',101,11,'是否并发执行(0允许 1禁止)'), +('任务分组','sys_job_group',1,'000000',101,11,'任务分组(0 默认 1系统 2数据中心)'), +('任务计划执行策略','sys_missfire_policy',1,'000000',101,11,'计划执行策略(1多次执行 2执行一次)'), +('系统开关','sys_normal_disable',1,'000000',103,1,'系统开关列表'), +('通知状态','sys_notice_status',1,'000000',103,1,'通知状态列表'), +('通知类型','sys_notice_type',1,'000000',103,1,'通知类型列表'), +('操作类型','sys_oper_type',1,'000000',103,1,'操作类型列表'), +('菜单状态','sys_show_hide',0,'000000',103,1,'菜单状态列表'), +('系统状态','sys_status',1,'000000',100,1,'0 正常 +1 停用'), +('用户性别','sys_user_sex',0,'000000',103,1,'用户性别列表'), +('系统是否','sys_yes_no',1,'000000',103,1,'系统是否列表'), +('是否默认','sys_yes_no_num',1,'000000',103,1,'是否默认 0是 1否'), +('交易渠道','transaction_channel',1,'000000',100,1,'1:支付宝 +2:微信 +3:可提现金额'), +('交易状态','transaction_status',1,'000000',100,1,'0:待支付 +1:已支付 +2:已过期 +3:交易失败'), +('交易类型','transaction_type',1,'000000',100,1,'0:充值 +1:消费 +2:转可提现 +3:可提现转入 +4:人工调整'), +('渠道适用类型','t_agent_scope_type',0,'000000',103,1,'0:所有客户 +1:指定客户'), +('批次操作规模','t_batch_execution_mode',1,'000000',100,1,'未知 0 单卡 1 批量 2'), +('批次发起渠道','t_batch_source_channel',1,'000000',100,1,'批次创建入口:console 管理控制台,app 小程序,api API请求调用'), +('批次来源方式','t_batch_source_type',0,'000000',100,1,'0:批次选择 +1:连号 +2:批量输入 +3:文件'), +('计费方式','t_billing_method',0,'000000',103,1,'1:月 +2:年'), +('卡信息_查询维度','t_cardInfo_dimension',1,'000000',103,1,'卡信息表'), +('卡信息_维度状态','t_cardInfo_dimensionStatus',1,'000000',103,1,'卡信息表'), +('卡信息_查询条件','t_cardInfo_selectCondition',1,'000000',103,1,'卡信息表'), +('卡信息_排序类型','t_cardInfo_sortType',1,'000000',103,1,'卡信息表'), +('卡信息_排序值','t_cardInfo_sortValue',1,'000000',103,1,'卡信息表'), +('卡信息_时间类型','t_cardInfo_timeType',1,'000000',103,1,'卡信息表'), +('卡类型','t_card_type',0,'000000',103,1,'1:通用插拔 SIM 卡 +2:贴片 M2M 卡 5×6mm +3:贴片 M2M 卡 2×2mm +4:MP1-消费级插拔物联卡 +5:MP2-工业级插拔物联卡 +6:MS0-消费级贴片物联卡 +7:MS1-工业级贴片物联卡'), +('通道状态','t_channels_status',1,'000000',100,1,'0:启用 +1:停用 +2:未申请 +3:申请中 +4:接口信息不全'), +('通道对接信息','t_channel_docking_status',1,'000000',NULL,NULL,'通道对接信息状态'), +('通道是否轮询','t_channel_sync_enabled',1,'000000',NULL,1,NULL), +('网络类型','t_net_model',1,'000000',103,1,'1 3G +2 2G +3 4G +4 5G +5 NB-IOT +6 5G-SA +7 5G-NSA +8 2G/3G +9 电信NB +10 移动4G +11 联通NB +12 联通4G +13 电信4G +14 RedCap'), +('运营商','t_operators',0,'000000',103,1,'1:移动 +2:联通 +3:电信'), +('套餐定价-价格来源','t_package_price_source',1,'000000',100,26,'system — 系统级 +agentDefault — 本级默认 +target — 下级专属'), +('套餐状态','t_package_status',0,'000000',103,1,'0:无套餐 +1:待生效 +2:生效中 +3:已过期'), +('套餐类型','t_package_type',0,'000000',103,1,'101:卡套餐 +102:池套餐 +103:单卡加油包 +104:池卡加油包'), +('流量池状态','t_pool_status',1,'000000',103,1,'0:正常 +1:停用 +2:锁定'), +('预警-第三次是否停机','t_warn_auto_action',1,'000000',100,1,'0:否,3:是'), +('预警启停状态','t_warn_enabled',1,'000000',100,1,'1:启用,0:停用'), +('预警-提醒方式','t_warn_method',1,'000000',100,1,'3:站内提醒,1:邮箱,0:短信'), +('预警-预警单位','t_warn_unit',1,'000000',100,1,'1:流量阈值(MB),2:流量池百分比'), +('工单类型','wo_type',1,'000000',100,1,'0:卡 +1:模组 +2:设备 +3:订单 +4:余额 +5:提现'); + +INSERT INTO `sys_dict_data` (`dict_type`,`dict_value`,`dict_label`,`dict_sort`,`list_class`,`css_class`,`is_default`,`tenant_id`,`created_dept`,`created_by`,`remark`) VALUES +('account_type','1','银行卡',0,'primary','','','000000',103,1,''), +('account_type','2','支付宝',1,'primary','','','000000',103,1,''), +('account_type','3','微信',2,'primary','','','000000',103,1,''), +('addd','33','22',55,'22','44','','000000',103,1,'44'), +('agent_scope_type','0','所有客户',1,'','','','000000',103,1,''), +('agent_scope_type','1','指定客户',2,'','','','000000',103,1,''), +('apply_status','0','待审核',0,'primary','','','000000',103,1,''), +('apply_status','1','已通过',1,'success','','','000000',103,1,''), +('apply_status','2','已驳回',2,'danger','','','000000',103,1,''), +('apply_status','3','已打款',3,'primary','','','000000',103,1,''), +('apply_status','4','已取消',4,'default','','','000000',103,1,''), +('apply_type','1','提现申请',0,'default','','','000000',103,1,''), +('apply_type','2','余额转提现',1,'default','','','000000',103,1,''), +('audit_result','0','通过',0,'primary','','','000000',103,1,''), +('audit_result','1','驳回',1,'danger','','','000000',103,1,''), +('audit_type','1','初审',0,'primary','','','000000',103,1,''), +('audit_type','2','复审',1,'warning','','','000000',103,1,''), +('batch_async_status','0','已创建',0,'primary',NULL,'N','000000',103,1,''), +('batch_async_status','1','待处理',1,'primary',NULL,'N','000000',103,1,''), +('batch_async_status','2','处理中',2,'primary',NULL,'N','000000',103,1,''), +('batch_async_status','3','成功',3,'primary',NULL,'N','000000',103,1,''), +('batch_async_status','4','失败',4,'primary',NULL,'N','000000',103,1,''), +('batch_async_status','5','部分成功',5,'warning',NULL,'N','000000',103,1,''), +('batch_operation_source','console','管理控制台',1,'primary','','','000000',103,1,'未标记来源的历史批次默认归为管理控制台'), +('batch_status','0','正常',0,NULL,NULL,'Y','000000',103,1,NULL), +('batch_status','1','废弃',1,NULL,NULL,'N','000000',103,1,NULL), +('batch_type','1','入库',1,'primary',NULL,'N','000000',103,1,''), +('batch_type','2','出库',2,'primary',NULL,'N','000000',103,1,''), +('batch_type','3','划拨',3,'primary',NULL,'N','000000',103,1,''), +('batch_type','4','预处理',4,'warning','','','000000',103,1,''), +('batch_type','11','卡订购加油包',11,'primary','','N','000000',103,1,'批次类型:单卡加油包订购'), +('batch_type','12','流量池订购加油包',12,'primary','','N','000000',103,1,'批次类型:流量池加油包订购'), +('batch_type','40','预警配置',40,'primary','','N','000000',103,1,'预警配置批次类型'), +('batch_type','41','达量断网配置',41,'primary','','','000000',103,1,'达量断网配置'), +('batch_type','101','卡续费',101,'primary',NULL,'N','000000',103,1,'卡业务专属'), +('batch_type','102','卡变更',102,'primary',NULL,'N','000000',103,1,'卡业务专属'), +('batch_type','103','卡开机',103,'primary',NULL,'N','000000',103,1,'卡业务专属'), +('batch_type','104','卡停机',104,'primary',NULL,'N','000000',103,1,'卡业务专属'), +('batch_type','105','卡停复机',105,'primary',NULL,'N','000000',103,1,'卡业务专属'), +('batch_type','106','卡销户',106,'primary',NULL,'N','000000',103,1,'卡业务专属'), +('batch_type','107','卡达量断网执行',107,'primary','','','000000',103,1,'卡业务专属'), +('batch_type','108','卡退订',108,'primary',NULL,'N','000000',103,1,'卡业务专属'), +('batch_type','109','卡APN开启',109,'primary','','','000000',103,1,'卡业务专属'), +('batch_type','110','卡APN关停',110,'primary','','','000000',103,1,'卡业务专属'), +('billing_method','1','月',1,'','','','000000',103,1,''), +('billing_method','2','年',2,'','','','000000',103,1,''), +('boss_card_status','0','未知 ',1,'','','','000000',103,1,''), +('boss_card_status','1','待激活 ',1,'primary','','','000000',103,1,''), +('boss_card_status','2','已激活 ',1,'','','','000000',103,1,''), +('boss_card_status','4','停机 ',1,'danger','','','000000',103,1,''), +('boss_card_status','6','可测试',1,'','','','000000',103,1,''), +('boss_card_status','7','库存 ',1,'','','','000000',103,1,''), +('boss_card_status','8','预销户 ',1,'','','','000000',103,1,''), +('boss_card_status','9','已销户 ',1,'','','','000000',103,1,''), +('business_type','0','订购',0,NULL,NULL,'Y','000000',103,1,NULL), +('business_type','1','变更',1,NULL,NULL,'N','000000',103,1,NULL), +('business_type','2','续费',2,NULL,NULL,'N','000000',103,1,NULL), +('cardInfo_dimension','1','使用流量',1,'','','','000000',103,1,''), +('cardInfo_dimension','2','剩余流量',1,'','','','000000',103,1,''), +('cardInfo_dimensionStatus','!=','!=',1,'','','','000000',103,1,''), +('cardInfo_dimensionStatus','<','<',1,'','','','000000',103,1,''), +('cardInfo_dimensionStatus','<=','<=',1,'','','','000000',103,1,''), +('cardInfo_dimensionStatus','=','=',1,'','','','000000',103,1,''), +('cardInfo_dimensionStatus','>','>',1,'','','','000000',103,1,''), +('cardInfo_dimensionStatus','>=','>=',1,'','','','000000',103,1,''), +('cardInfo_selectCondition','iccid','ICCID',1,'','','','000000',103,1,''), +('cardInfo_selectCondition','imei','IMEI',1,'','','','000000',103,1,''), +('cardInfo_selectCondition','imis','IMSI',1,'','','','000000',103,1,''), +('cardInfo_selectCondition','msisdn','MSISDN',1,'','','','000000',103,1,''), +('cardInfo_timeType','0','开卡时间',1,'','','','000000',103,1,''), +('cardInfo_timeType','1','激活时间',1,'','','','000000',103,1,''), +('cardInfo_timeType','2','入库时间',1,'','','','000000',103,1,''), +('cardInfo_timeType','3','出库时间',1,'','','','000000',103,1,''), +('cardInfo_timeType','4','到期时间',1,'','','','000000',103,1,''), +('cardInfo_timeType','5','创建时间',1,'','','','000000',103,1,''), +('cardInfo_timeType','6','流量同步时间',1,'','','','000000',103,1,''), +('cardInfo_timeType','7','状态同步时间',1,'','','','000000',103,1,''), +('change_type','0','分润',0,'primary','','','000000',103,1,''), +('change_type','1','提现',1,'primary','','','000000',103,1,''), +('change_type','2','转出',2,'primary','','','000000',103,1,''), +('change_type','3','转入',3,'primary','','','000000',103,1,''), +('change_type','4','还款',4,'primary','','','000000',103,1,''), +('check_status','0','待审核',0,NULL,NULL,'Y','000000',103,1,NULL), +('check_status','1','审核通过',1,NULL,NULL,'N','000000',103,1,NULL), +('check_status','2','审核未通过',2,NULL,NULL,'N','000000',103,1,NULL), +('creator_type','1','终端用户',0,'primary','','','000000',103,1,''), +('creator_type','2','代理商',1,'primary','','','000000',103,1,''), +('current_status','1','已分派',0,'primary','','','000000',103,1,''), +('current_status','2','处理中',1,'success','','','000000',103,1,''), +('current_status','3','已解决',2,'warning','','','000000',103,1,''), +('current_status','4','已完结',3,'success','','','000000',103,1,''), +('current_status','5','已取消',4,'primary','','','000000',103,1,''), +('customer_type','1','渠道用户',1,NULL,NULL,'Y','000000',103,1,NULL), +('customer_type','2','终端用户',2,NULL,NULL,'N','000000',103,1,NULL), +('detail_status','0','待处理',0,'info','','N','000000',103,1,NULL), +('detail_status','1','处理中',1,'primary','','N','000000',103,1,NULL), +('detail_status','2','成功',2,'success','','N','000000',103,1,NULL), +('detail_status','3','失败',3,'danger','','N','000000',103,1,NULL), +('distribution_status','0','未分成',0,NULL,NULL,'Y','000000',103,1,NULL), +('distribution_status','1','已分成',1,NULL,NULL,'N','000000',103,1,NULL), +('download_status','2','生成中',0,'primary','','N','000000',103,1,'结果文件生成中'), +('download_status','0','待生成',1,'default','','','000000',103,1,''), +('download_status','1','已生成',2,'default','','','000000',103,1,''), +('download_status','3','生成失败',3,'default','','','000000',103,1,''), +('effective_status','0','待生效',0,'default','','','000000',103,1,''), +('effective_status','1','生效中',1,'primary','','','000000',103,1,''), +('effective_status','2','已过期',2,'danger','','','000000',103,1,''), +('effective_status','3','已终止',3,NULL,NULL,'N','000000',103,1,NULL), +('effective_status','4','已作废',4,NULL,NULL,'N','000000',103,1,NULL), +('enabled','0','启用',0,NULL,NULL,'Y','000000',103,1,NULL), +('enabled','1','停用',1,NULL,NULL,'N','000000',103,1,NULL), +('export_scene','1','list_export',1,NULL,NULL,'Y','000000',103,1,NULL), +('export_scene','2','report_export',2,NULL,NULL,'N','000000',103,1,NULL), +('export_scene','3','settlement_export',3,NULL,NULL,'N','000000',103,1,NULL), +('fixed_shipping_type','1','固定运费',1,NULL,NULL,'Y','000000',103,1,NULL), +('fixed_shipping_type','2','手动填写运费',2,NULL,NULL,'N','000000',103,1,NULL), +('flow_package_enabled','1','启用',0,'success','','N','000000',103,1,''), +('flow_package_enabled','0','停用',1,'danger','','N','000000',103,1,''), +('global_enable','0','启用',0,'success','','','000000',103,1,''), +('global_enable','1','停用',1,'danger','','','000000',103,1,''), +('global_yes_or_no','0','是',0,'success','','','000000',103,1,''), +('global_yes_or_no','1','否',1,'danger','','','000000',103,1,''), +('income_expense_type','0','收入',0,'warning','','','000000',103,1,''), +('income_expense_type','1','支出',1,'primary','','','000000',103,1,''), +('is_need_commission','0','分佣',0,'primary','','','000000',103,1,''), +('is_need_commission','1','不分佣',1,'primary','','','000000',103,1,''), +('is_recall','0','未撤回',0,'primary','','','000000',103,1,''), +('is_recall','1','已撤回',1,'danger','','','000000',103,1,''), +('is_show','1','显示',0,NULL,NULL,'Y','000000',103,1,NULL), +('is_show','0','不显示',1,NULL,NULL,'N','000000',103,1,NULL), +('message_type','1','系统通知',0,'primary','','','000000',103,1,''), +('message_type','2','活动通知',1,'primary','','','000000',103,1,''), +('message_type','3','订单通知',2,'primary','','','000000',103,1,''), +('message_type','4','账户通知',3,'primary','','','000000',103,1,''), +('method','1','POST',0,'primary','','','000000',103,1,''), +('method','2','PUT',1,'primary','','','000000',103,1,''), +('method','3','DELETE',2,'primary','','','000000',103,1,''), +('method','4','GET',3,'primary','','','000000',103,1,''), +('operation_type','0','创建',0,'primary','','','000000',103,1,''), +('operation_type','1','分派',1,'primary','','','000000',103,1,''), +('operation_type','2','处理',2,'primary','','','000000',103,1,''), +('operation_type','3','完成',3,'primary','','','000000',103,1,''), +('operation_type','4','关单',4,'primary','','','000000',103,1,''), +('operation_type','5','取消',5,'primary','','','000000',103,1,''), +('operators','1','移动',1,'','','','000000',103,1,''), +('operators','2','联通',2,'','','','000000',103,1,''), +('operators','3','电信',3,'','','','000000',103,1,''), +('order_status','0','待确定,待支付',0,NULL,NULL,'Y','000000',103,1,NULL), +('order_status','1','已确定,待发货',1,NULL,NULL,'N','000000',103,1,NULL), +('order_status','2','处理中,已发货',2,NULL,NULL,'N','000000',103,1,NULL), +('order_status','3','已取消',3,NULL,NULL,'N','000000',103,1,NULL), +('order_status','4','无效',4,NULL,NULL,'N','000000',103,1,NULL), +('order_status','5','已完成',5,NULL,NULL,'N','000000',103,1,NULL), +('order_type','1','卡订购',1,'primary','','','000000',103,1,''), +('order_type','2','卡续费',2,'primary','','','000000',103,1,''), +('order_type','3','卡变更',3,'primary','','','000000',103,1,''), +('oss_access_policy','0','私有',1,'orange','','','000000',103,1,''), +('oss_access_policy','1','公开',2,'primary','','','000000',103,1,''), +('oss_access_policy','2','自定义',3,'','','','000000',103,1,''), +('package_codes','400','池套餐001',1,'default','','','000000',103,1,''), +('package_codes','["dx-300m-3y"]','池套餐002',2,'default','','','000000',103,1,''), +('package_type','101','单卡流量套餐',1,'','','','000000',103,1,''), +('package_type','102','池卡流量套餐',2,'','','','000000',103,1,''), +('package_type','103','单卡流量加油包',3,'','','','000000',103,1,''), +('package_type','104','池卡流量加油包',4,'','','','000000',103,1,''), +('package_type','201','单卡短信套餐',5,'','','','000000',103,1,''), +('package_type','203','单卡短信加油包',6,'','','','000000',103,1,''), +('package_type','301','单卡语音套餐',7,'','','','000000',103,1,''), +('package_type','303','单卡语音加油包',8,'','','','000000',103,1,''), +('package_type','401','单卡国漫套餐',8,'','','','000000',103,1,''), +('package_type','403','单卡国漫加油包',9,'','','','000000',103,1,''), +('pay_mode','0','一次性购买',0,NULL,NULL,'Y','000000',103,1,NULL), +('pay_mode','1','包年包月',1,NULL,NULL,'N','000000',103,1,NULL), +('pay_mode','2','按量付费',2,NULL,NULL,'N','000000',103,1,NULL), +('pay_status','0','未支付',0,NULL,NULL,'Y','000000',103,1,NULL), +('pay_status','1','支付中',1,NULL,NULL,'N','000000',103,1,NULL), +('pay_status','2','已支付',2,NULL,NULL,'N','000000',103,1,NULL), +('pay_status','3','退款中',3,NULL,NULL,'N','000000',103,1,NULL), +('pay_status','4','部分退款',4,NULL,NULL,'N','000000',103,1,NULL), +('pay_status','5','已退款',5,NULL,NULL,'N','000000',103,1,NULL), +('pay_type','1','在线支付',1,'primary','','','000000',103,1,''), +('pay_type','2','货到付款',2,'primary','','','000000',103,1,''), +('pay_type','3','线下支付',3,'primary','','','000000',103,1,''), +('pool_package_code','100','套餐100',1,'default','','','000000',103,1,''), +('pool_package_code','400','套餐400',1,'default','','','000000',103,1,''), +('process_status','0','待处理',0,NULL,NULL,'Y','000000',103,1,NULL), +('process_status','1','处理汇总',1,NULL,NULL,'N','000000',103,1,NULL), +('process_status','2','成功',2,NULL,NULL,'N','000000',103,1,NULL), +('process_status','3','失败',3,NULL,NULL,'N','000000',103,1,NULL), +('product_status','0','下架',0,NULL,NULL,'N','000000',103,1,NULL), +('product_status','1','上架',1,NULL,NULL,'Y','000000',103,1,NULL), +('product_type','1','卡',1,NULL,NULL,'Y','000000',103,1,NULL), +('product_type','2','模组',2,NULL,NULL,'N','000000',103,1,NULL), +('product_type','3','设备',3,NULL,NULL,'N','000000',103,1,NULL), +('product_type','4','普通商品',4,NULL,NULL,'N','000000',103,1,NULL), +('product_type','5','虚拟商品',5,NULL,NULL,'N','000000',103,1,NULL), +('product_type','6','卡密商品',6,NULL,NULL,'N','000000',103,1,NULL), +('product_type','7','付费内容',7,NULL,NULL,'N','000000',103,1,NULL), +('repayment_method','0','余额',0,NULL,NULL,'Y','000000',103,1,NULL), +('repayment_method','1','银行卡',1,NULL,NULL,'N','000000',103,1,NULL), +('repayment_method','2','支付宝',2,NULL,NULL,'N','000000',103,1,NULL), +('repayment_method','3','微信',3,NULL,NULL,'N','000000',103,1,NULL), +('resource_export_scene','1','卡入库结果',0,'primary','','N','000000',103,1,'Excel 批量卡入库结果文件'), +('resource_export_scene','2','卡出库结果',0,'primary','','N','000000',103,1,'Excel 批量卡出库结果文件(预留)'), +('resource_export_scene','3','卡划拨结果',0,'primary','','N','000000',103,1,'Excel 批量卡划拨结果文件(预留)'), +('resource_type','1','Card',0,'primary','','N','000000',103,1,'批量结果 Excel 文件'), +('resource_type','2','Customer',2,NULL,NULL,'N','000000',103,1,NULL), +('resource_type','3','Package',3,NULL,NULL,'N','000000',103,1,NULL), +('resource_type','4','recharge_record',4,NULL,NULL,'N','000000',103,1,NULL), +('resource_type','5','profit_record',5,NULL,NULL,'N','000000',103,1,NULL), +('resource_type','6','settlement_report',6,NULL,NULL,'N','000000',103,1,NULL), +('return_status','0','未退款',0,NULL,NULL,'Y','000000',103,1,NULL), +('return_status','1','待审核',1,NULL,NULL,'N','000000',103,1,NULL), +('return_status','2','执行中',2,NULL,NULL,'N','000000',103,1,NULL), +('return_status','3','部分退货',3,NULL,NULL,'N','000000',103,1,NULL), +('return_status','4','退货成功',4,NULL,NULL,'N','000000',103,1,NULL), +('run_result','0','待运行',0,'info','','N','000000',103,1,NULL), +('run_result','1','运行中',1,'primary','','N','000000',103,1,NULL), +('run_result','2','成功',2,'success','','N','000000',103,1,NULL), +('run_result','3','失败',3,'danger','','N','000000',103,1,NULL), +('run_result','4','部分成功',4,'warning','','N','000000',103,1,NULL), +('send_user_type','1','代理商',0,'primary','','','000000',103,1,''), +('send_user_type','2','终端用户',1,'warning','','','000000',103,1,''), +('share_enabled','0','否',0,'danger','','','000000',103,1,''), +('share_enabled','1','是',1,'primary','','','000000',103,1,''), +('shipping_method','1','物流',1,NULL,NULL,'Y','000000',103,1,NULL), +('shipping_method','2','商家自提',2,NULL,NULL,'N','000000',103,1,NULL), +('shipping_method','3','无需配送',3,NULL,NULL,'N','000000',103,1,NULL), +('shipping_status','0','未发货',0,NULL,NULL,'Y','000000',103,1,NULL), +('shipping_status','1','已发货',1,NULL,NULL,'N','000000',103,1,NULL), +('shipping_status','2','已收货',2,NULL,NULL,'N','000000',103,1,NULL), +('shipping_status','4','退货',4,NULL,NULL,'N','000000',103,1,NULL), +('sim_card_inbound_import_status','failed','失败',0,'danger','','N','000000',103,1,'文件、校验或业务处理失败'), +('sim_card_inbound_import_status','success','成功',0,'success','','N','000000',103,1,'整批导入成功'), +('system_enabled_status','0','未启用',1,'warning','','','000000',103,1,''), +('system_enabled_status','1','启用',2,'primary','','','000000',103,1,''), +('sys_common_status','0','成功',1,'primary','','N','000000',103,1,'正常状态'), +('sys_common_status','1','失败',2,'danger','','N','000000',103,1,'停用状态'), +('sys_dept_type','0','部门',0,'','','','000000',103,1,''), +('sys_dept_type','1','公司',1,'green','','','000000',103,1,''), +('sys_device_type','android','安卓',0,'default','','N','000000',103,1,'安卓'), +('sys_device_type','ios','iOS',0,'default','','N','000000',103,1,'iOS'), +('sys_device_type','pc','PC',0,'default','','N','000000',103,1,'PC'), +('sys_device_type','xcx','小程序',0,'default','','N','000000',103,1,'小程序'), +('sys_gen_status','0','生成成功',1,'success','','','000000',103,1,''), +('sys_gen_status','1','未生成',2,'','','','000000',103,1,''), +('sys_gen_status','2','生成失败',3,'danger','','','000000',103,1,''), +('sys_grant_type','email','邮件认证',0,'default','el-check-tag','N','000000',103,1,'邮件认证'), +('sys_grant_type','password','密码认证',0,'default','el-check-tag','N','000000',103,1,'密码认证'), +('sys_grant_type','sms','短信认证',0,'default','el-check-tag','N','000000',103,1,'短信认证'), +('sys_grant_type','social','三方登录认证',0,'default','el-check-tag','N','000000',103,1,'三方登录认证'), +('sys_grant_type','xcx','小程序认证',0,'default','el-check-tag','N','000000',103,1,'小程序认证'), +('sys_job_concurrent','0','允许',1,'','','','000000',103,1,''), +('sys_job_concurrent','1','禁止',2,'','','','000000',103,1,''), +('sys_job_group','0','默认',1,'','','','000000',103,1,''), +('sys_job_group','1','系统',1,'','','','000000',103,1,''), +('sys_job_group','2','数据中心',2,'','','','000000',103,1,''), +('sys_job_group','3','预警',3,'','','','000000',103,1,''), +('sys_job_group','4','卡数据',4,'','','','000000',103,1,''), +('sys_job_group','5','财务',5,'','','','000000',103,1,''), +('sys_job_group','6','流量池',6,'','','','000000',103,1,''), +('sys_job_group','7','卡管控',7,'','','','000000',103,1,''), +('sys_job_group','8','套餐',8,'','','','000000',103,1,''), +('sys_job_group','9','测试',9,'','','','000000',103,1,''), +('sys_missfire_policy','1','多次执行',1,'','','','000000',103,1,''), +('sys_missfire_policy','2','执行一次',2,'','','','000000',103,1,''), +('sys_normal_disable','0','正常',1,'primary','','','000000',103,1,'正常状态'), +('sys_normal_disable','1','停用',2,'danger','','','000000',103,1,'停用状态'), +('sys_notice_status','0','正常',1,'primary','','Y','000000',103,1,'正常状态'), +('sys_notice_status','1','关闭',2,'danger','','N','000000',103,1,'关闭状态'), +('sys_notice_type','1','通知',1,'warning','','Y','000000',103,1,'通知'), +('sys_notice_type','2','公告',2,'success','','N','000000',103,1,'公告'), +('sys_oper_type','1','新增',1,'info','','N','000000',103,1,'新增操作'), +('sys_oper_type','2','修改',2,'info','','N','000000',103,1,'修改操作'), +('sys_oper_type','3','删除',3,'danger','','N','000000',103,1,'删除操作'), +('sys_oper_type','4','授权',4,'primary','','N','000000',103,1,'授权操作'), +('sys_oper_type','5','导出',5,'warning','','N','000000',103,1,'导出操作'), +('sys_oper_type','6','导入',6,'warning','','N','000000',103,1,'导入操作'), +('sys_oper_type','7','强退',7,'danger','','N','000000',103,1,'强退操作'), +('sys_oper_type','8','生成代码',8,'warning','','N','000000',103,1,'生成操作'), +('sys_oper_type','9','清空数据',9,'danger','','N','000000',103,1,'清空操作'), +('sys_oper_type','0','其他',99,'info','','N','000000',103,1,'其他操作'), +('sys_show_hide','0','显示',1,'primary','','Y','000000',103,1,'显示菜单'), +('sys_show_hide','1','隐藏',2,'danger','','N','000000',103,1,'隐藏菜单'), +('sys_status','0','正常',0,NULL,NULL,'Y','000000',103,1,NULL), +('sys_status','1','停用',1,NULL,NULL,'N','000000',103,1,NULL), +('sys_user_sex','0','男',1,'','','Y','000000',103,1,'性别男'), +('sys_user_sex','1','女',2,'','','N','000000',103,1,'性别女'), +('sys_user_sex','2','未知',3,'','','N','000000',103,1,'性别未知'), +('sys_yes_no','Y','是',1,'primary','','Y','000000',103,1,'系统默认是'), +('sys_yes_no','N','否',2,'danger','','N','000000',103,1,'系统默认否'), +('sys_yes_no_num','0','是',1,'primary','','','000000',103,1,''), +('sys_yes_no_num','1','否',2,'danger','','','000000',103,1,''), +('transaction_channel','1','支付宝',0,'primary','','','000000',103,1,''), +('transaction_channel','2','微信',1,'primary','','','000000',103,1,''), +('transaction_channel','3','余额',2,'primary','','','000000',103,1,''), +('transaction_status','0','待支付',0,'warning','','','000000',103,1,''), +('transaction_status','1','已支付',1,'primary','','','000000',103,1,''), +('transaction_status','2','已过期',2,'danger','','','000000',103,1,''), +('transaction_status','3','交易失败',3,'danger','','','000000',103,1,''), +('transaction_type','0','充值',0,'primary','','','000000',103,1,''), +('transaction_type','1','消费',1,'warning','','','000000',103,1,''), +('transaction_type','2','转可提现',2,'primary','','','000000',103,1,''), +('transaction_type','3','可提现转入',3,'primary','','','000000',103,1,''), +('transaction_type','4','人工调整',4,'primary','','','000000',103,1,''), +('t_agent_scope_type','0','所有客户',0,'primary','','','000000',103,1,''), +('t_agent_scope_type','1','指定客户',1,'primary','','','000000',103,1,''), +('t_batch_execution_mode','0','未知',0,'primary','','','000000',103,1,''), +('t_batch_execution_mode','1','单卡',10,'primary','','','000000',103,1,''), +('t_batch_execution_mode','2','批量',20,'primary','','','000000',103,1,''), +('t_batch_source_channel','console','控制台',10,'primary','','','000000',103,1,'控制台认证入口创建的批次'), +('t_batch_source_channel','mini_program','小程序',20,'primary','','','000000',103,1,'小程序及其 H5 用户端入口创建的批次'), +('t_batch_source_channel','api','API',30,'primary','','','000000',103,1,'开放 API 验签或认证入口创建的批次'), +('t_batch_source_channel','system','系统任务',40,'primary','','','000000',103,1,'独立调度或自动业务任务创建的批次'), +('t_batch_source_channel','legacy','历史未知',90,'primary','','','000000',103,1,'历史记录或无法确认真实来源的批次,不代表实际发起入口'), +('t_batch_source_type','0','批次选择',0,'primary','','','000000',103,1,''), +('t_batch_source_type','1','连号',1,'primary','','','000000',103,1,''), +('t_batch_source_type','2','批量输入',2,'primary','','','000000',103,1,''), +('t_batch_source_type','3','文件',3,'primary','','','000000',103,1,''), +('t_batch_source_type','4','定时任务',4,'primary','','','000000',103,1,''), +('t_billing_method','1','月',0,'primary','','','000000',103,1,''), +('t_billing_method','2','年',1,'primary','','','000000',103,1,''), +('t_boss_card_status','7','库存',1,'default','','','000000',103,1,''), +('t_boss_card_status','1','待激活',2,'warning','','','000000',103,1,''), +('t_boss_card_status','6','可测试',3,'info','','','000000',103,1,''), +('t_boss_card_status','2','已激活',4,'success','','','000000',103,1,''), +('t_boss_card_status','4','停机',5,'danger','','','000000',103,1,''), +('t_boss_card_status','8','预销户',6,'warning','','','000000',103,1,''), +('t_boss_card_status','9','已销户',7,'info','','','000000',103,1,''), +('t_boss_card_status','0','未知',99,'default','','','000000',103,1,''), +('t_cardInfo_dimension','1','使用流量',1,'default','','','000000',103,1,''), +('t_cardInfo_dimension','2','剩余流量',1,'default','','','000000',103,1,''), +('t_cardInfo_dimensionStatus','!=','!=',1,'default','','','000000',103,1,''), +('t_cardInfo_dimensionStatus','<','<',1,'default','','','000000',103,1,''), +('t_cardInfo_dimensionStatus','<=','<=',1,'default','','','000000',103,1,''), +('t_cardInfo_dimensionStatus','=','=',1,'default','','','000000',103,1,''), +('t_cardInfo_dimensionStatus','>','>',1,'default','','','000000',103,1,''), +('t_cardInfo_dimensionStatus','>=','>=',1,'default','','','000000',103,1,''), +('t_cardInfo_selectCondition','iccid','ICCID',1,'default','','','000000',103,1,''), +('t_cardInfo_selectCondition','imei','IMEI',1,'default','','','000000',103,1,''), +('t_cardInfo_selectCondition','imsi','IMSI',1,'default','','','000000',103,1,''), +('t_cardInfo_selectCondition','msisdn','MSISDN',1,'default','','','000000',103,1,''), +('t_cardInfo_sortType','0','升序',1,'default','','','000000',103,1,''), +('t_cardInfo_sortType','1','降序',1,'default','','','000000',103,1,''), +('t_cardInfo_sortValue','1','iccid',1,'default','','','000000',103,1,''), +('t_cardInfo_sortValue','2','msisdn',1,'default','','','000000',103,1,''), +('t_cardInfo_sortValue','3','imsi',1,'default','','','000000',103,1,''), +('t_cardInfo_sortValue','4','流量用量',1,'default','','','000000',103,1,''), +('t_cardInfo_sortValue','5','激活日期',1,'default','','','000000',103,1,''), +('t_cardInfo_sortValue','6','流量到期日期',1,'default','','','000000',103,1,''), +('t_cardInfo_sortValue','7','状态同步日期',1,'default','','','000000',103,1,''), +('t_cardInfo_sortValue','8','出库时间',1,'default','','','000000',103,1,''), +('t_cardInfo_timeType','0','开卡时间',1,'default','','','000000',103,1,''), +('t_cardInfo_timeType','1','激活时间',1,'default','','','000000',103,1,''), +('t_cardInfo_timeType','2','入库时间',1,'default','','','000000',103,1,''), +('t_cardInfo_timeType','3','出库时间',3,'default','','','000000',103,1,''), +('t_cardInfo_timeType','4','到期时间',4,'default','','','000000',103,1,''), +('t_cardInfo_timeType','5','创建时间',5,'default','','','000000',103,1,''), +('t_cardInfo_timeType','6','流量同步时间',6,'default','','','000000',103,1,''), +('t_cardInfo_timeType','7','状态同步时间',7,'default','','','000000',103,1,''), +('t_card_type','1','通用插拔 SIM 卡',0,'primary','','','000000',103,1,''), +('t_card_type','2','贴片卡 5×6mm',1,'primary','','','000000',103,1,''), +('t_card_type','3','贴片卡 2×2mm',2,'primary','','','000000',103,1,''), +('t_card_type','4','消费级插拔物联卡',3,'primary','','','000000',103,1,''), +('t_card_type','5','工业级插拔物联卡',4,'primary','','','000000',103,1,''), +('t_card_type','6','消费级贴片物联卡',5,'primary','','','000000',103,1,''), +('t_card_type','7','工业级贴片物联卡',6,'primary','','','000000',103,1,''), +('t_channels_status','0','启用',0,'primary','','','000000',103,1,''), +('t_channels_status','1','停用',1,'danger','','','000000',103,1,''), +('t_channel_docking_status','1','接口申请中',1,'default','','','000000',103,1,''), +('t_channel_docking_status','2','不需要对接',2,'danger','','','000000',103,1,''), +('t_channel_docking_status','6','对接中',3,'warning','','','000000',103,1,''), +('t_channel_docking_status','3','测试中',4,'primary','','','000000',103,1,''), +('t_channel_docking_status','4','已对接',5,'success','','','000000',103,1,''), +('t_channel_docking_status','5','接口订阅不全',6,'warning','','','000000',103,1,''), +('t_channel_sync_enabled','0','是',0,'success','','','000000',103,1,''), +('t_channel_sync_enabled','1','否',1,'danger','','','000000',103,1,''), +('t_net_model','1','3G',1,'default','','','000000',103,1,''), +('t_net_model','10','移动4G',1,'default','','','000000',103,1,''), +('t_net_model','11','联通NB',1,'default','','','000000',103,1,''), +('t_net_model','12','联通4G',1,'default','','','000000',103,1,''), +('t_net_model','13','电信4G',1,'default','','','000000',103,1,''), +('t_net_model','14','RedCap',1,'default','','','000000',103,1,''), +('t_net_model','2','2G',1,'default','','','000000',103,1,''), +('t_net_model','3','4G',1,'default','','','000000',103,1,''), +('t_net_model','4','5G',1,'default','','','000000',103,1,''), +('t_net_model','5','NB-IOT',1,'default','','','000000',103,1,''), +('t_net_model','6','5G-SA',1,'default','','','000000',103,1,''), +('t_net_model','7','5G-NSA',1,'default','','','000000',103,1,''), +('t_net_model','8','2G/3G',1,'default','','','000000',103,1,''), +('t_net_model','9','电信NB',1,'default','','','000000',103,1,''), +('t_operators','1','移动',0,'primary','','','000000',103,1,''), +('t_operators','2','联通',1,'primary','','','000000',103,1,''), +('t_operators','3','电信',2,'primary','','','000000',103,1,''), +('t_package_price_source','system','系统级',0,'primary','','','000000',103,1,''), +('t_package_price_source','agentDefault','本级默认',1,'primary','','','000000',103,1,''), +('t_package_price_source','target','下级专属',3,'primary','','','000000',103,1,''), +('t_package_status','0','无套餐',0,'primary','','','000000',103,1,''), +('t_package_status','1','待生效',1,'primary','','','000000',103,1,''), +('t_package_status','2','生效中',2,'primary','','','000000',103,1,''), +('t_package_status','3','已过期',3,'primary','','','000000',103,1,''), +('t_package_type','101','卡套餐',101,NULL,NULL,'N','000000',103,1,'卡套餐'), +('t_package_type','102','池套餐',102,NULL,NULL,'N','000000',103,1,'池套餐'), +('t_package_type','103','单卡加油包',103,NULL,NULL,'N','000000',103,1,'单卡加油包'), +('t_package_type','104','池卡加油包',104,NULL,NULL,'N','000000',103,1,'池卡加油包'), +('t_pool_status','0','正常',0,'primary','','','000000',103,1,''), +('t_pool_status','1','停用',1,'primary','','','000000',103,1,''), +('t_pool_status','2','锁定',2,'primary','','','000000',103,1,''), +('t_sim_flow_package_info','101','卡套餐',1,'','','','000000',103,1,''), +('t_sim_flow_package_info','102','池套餐',2,'','','','000000',103,1,''), +('t_sim_flow_package_info','103','单卡加油包',3,'','','','000000',103,1,''), +('t_sim_flow_package_info','104','池卡加油包',4,'','','','000000',103,1,''), +('t_warn_auto_action','3','是',1,'default','','','000000',103,1,''), +('t_warn_auto_action','0','否',2,'default','','','000000',103,1,''), +('t_warn_enabled','1','启用',1,'default','','','000000',103,1,''), +('t_warn_enabled','0','停用',2,'default','','','000000',103,1,''), +('t_warn_method','3','站内提醒',1,'default','','','000000',103,1,''), +('t_warn_method','1','邮箱',2,'default','','','000000',103,1,''), +('t_warn_method','0','短信',3,'default','','','000000',103,1,''), +('t_warn_unit','1','流量阈值(MB)',1,'default','','','000000',103,1,''), +('t_warn_unit','2','流量池百分比',2,'default','','','000000',103,1,''), +('warn_methods','0','短信',0,NULL,NULL,'Y','000000',103,1,NULL), +('warn_methods','1','邮箱',1,NULL,NULL,'N','000000',103,1,NULL), +('warn_methods','2','电话',2,NULL,NULL,'N','000000',103,1,NULL), +('warn_methods','3','平台消息',3,NULL,NULL,'N','000000',103,1,NULL), +('withdraw_amount_status','0','正常',0,NULL,NULL,'Y','000000',103,1,NULL), +('withdraw_amount_status','1','冻结',1,NULL,NULL,'N','000000',103,1,NULL), +('wo_type','0','卡',6,'primary','','','000000',103,1,''), +('wo_type','1','模组',7,'primary','','','000000',103,1,''), +('wo_type','2','设备',8,'primary','','','000000',103,1,''), +('wo_type','3','订单',9,'primary','','','000000',103,1,''), +('wo_type','4','余额',10,'primary','','','000000',103,1,''), +('wo_type','5','提现',11,'primary','','','000000',103,1,''), +('yesno_enum','1','是',0,NULL,NULL,'Y','000000',103,1,NULL), +('yesno_enum','0','否',1,NULL,NULL,'N','000000',103,1,NULL); + + +-- ============================================================ +-- Mock 通道(演示卡全部挂在此通道,缺则卡片管理异常) +-- +-- 注意 is_normal:0=正常、1=异常(见 chan 侧 model.SimChannelConfigItemCache.CanCreateInstance, +-- 只有 *IsNormal == 0 才会创建通道实例)。写成 1 会导致「通道未实例化」。 +-- 这里的取值与内网演示环境种子不同(那边是 1),属开源版修正。 +-- ============================================================ + +INSERT INTO `t_sim_channels` ( + `id`,`temp_key`,`chan_key`,`chan_name`,`chan_config`,`chan_status`,`share_enabled`, + `chan_alias`,`region_code`,`app_key`,`app_secret`,`access_token`, + `access_token_created`,`access_token_expire`,`refresh_token`, + `login_user`,`login_password`,`login_url`,`remark`,`tenant_id`, + `created_dept`,`created_by`,`created_at`,`updated_by`,`updated_at`, + `operator`,`is_normal`,`docking_status`,`sync_enabled`, + `card_info_count`,`stock_card_count`,`cancellation_card_count` +) VALUES ( + 34,'sim_yd_mock_v5','channel_yd_mock','移动模拟通道','{}',0,0, + '中国移动00',NULL,'100059999270000006','password123',NULL, + NULL,NULL,'', + NULL,NULL,'http://onelink-mock:8080/',NULL,'000000', + 1,1,'2026-10-19 15:35:03',NULL,NOW(), + 1,0,NULL,0, + 100,50100,0 +) +ON DUPLICATE KEY UPDATE + `temp_key` = VALUES(`temp_key`), + `chan_name` = VALUES(`chan_name`), + `chan_config` = VALUES(`chan_config`), + `chan_status` = VALUES(`chan_status`), + `chan_alias` = VALUES(`chan_alias`), + `app_key` = VALUES(`app_key`), + `app_secret` = VALUES(`app_secret`), + `login_url` = VALUES(`login_url`), + `operator` = VALUES(`operator`), + `is_normal` = VALUES(`is_normal`), + `sync_enabled` = VALUES(`sync_enabled`), + `updated_at` = VALUES(`updated_at`), + `card_info_count` = VALUES(`card_info_count`), + `stock_card_count` = VALUES(`stock_card_count`), + `cancellation_card_count` = VALUES(`cancellation_card_count`); + + +-- ============================================================ +-- 代理下发模板参数与角色下发标记 +-- ============================================================ + +START TRANSACTION; + +-- 模板校验同时要求:启用、非超管、is_pass=1、data_scope=4、机构有效, +-- created_dept 为 0/NULL 或等于 dept_id,且菜单不能使用全部/自定义范围。 +UPDATE `sys_role` + SET `created_dept` = `dept_id`, `status` = '0', `is_pass` = 1, `data_scope` = '4' + WHERE `tenant_id` = '000000' AND `role_id` = 2 AND `dept_id` = 1 + AND `deleted_at` IS NULL; + +DELETE FROM `sys_config` + WHERE `tenant_id` = '000000' AND `config_key` = 'agent.role.template.role_id'; +INSERT INTO `sys_config` + (`tenant_id`,`config_name`,`config_key`,`config_value`,`config_type`,`created_dept`,`created_by`,`remark`) +VALUES + ('000000','代理角色下发-平台模板角色ID','agent.role.template.role_id','2','Y',1,1, + '演示模板:dept 1 的现有 role 2;生产 cad19df 中代理机构仍需本级唯一 is_pass=1 角色'); + +-- 只处理已存在、已绑定的演示一级代理角色;不恢复或新建已删除的角色。 +UPDATE `sys_role` r +JOIN `sys_dept` d ON d.`tenant_id` = r.`tenant_id` + AND d.`dept_id` = r.`dept_id` AND d.`dept_role` = r.`role_id` + SET r.`is_pass` = 1 + WHERE r.`tenant_id` = '000000' AND r.`role_id` = 82 AND r.`dept_id` = 172 + AND r.`deleted_at` IS NULL AND r.`status` = '0' + AND d.`deleted_at` IS NULL AND d.`status` = '0' + AND 0 = ( + SELECT other_roles.n FROM ( + SELECT COUNT(*) AS n FROM `sys_role` + WHERE `tenant_id` = '000000' AND `dept_id` = 172 AND `role_id` <> 82 + AND `is_pass` = 1 AND `deleted_at` IS NULL + ) other_roles + ); +COMMIT; + +-- 自检输出仅反映配置条件,不能代替页面创建下级的端到端验收。 +SELECT COUNT(*) AS template_parameter_rows + FROM `sys_config` + WHERE `tenant_id` = '000000' AND `config_key` = 'agent.role.template.role_id'; +SELECT `role_id`, `dept_id`, `status`, `is_pass`, `data_scope`, `created_dept` + FROM `sys_role` WHERE `tenant_id` = '000000' AND `role_id` IN (2,82) + AND `deleted_at` IS NULL; +SELECT d.`dept_id`, d.`dept_role`, COUNT(r.`role_id`) AS enabled_distribution_roles + FROM `sys_dept` d + LEFT JOIN `sys_role` r ON r.`tenant_id` = d.`tenant_id` AND r.`dept_id` = d.`dept_id` + AND r.`status` = '0' AND r.`is_pass` = 1 AND r.`deleted_at` IS NULL + WHERE d.`tenant_id` = '000000' AND d.`dept_id` = 172 AND d.`deleted_at` IS NULL + GROUP BY d.`dept_id`, d.`dept_role`; + + +-- ============================================================ +-- 定时任务(默认全部停用,避免自动全量同步打满机器) +-- ============================================================ + +-- 1-8 为 RuoYi 上游演示垃圾数据(生产亦为软删除),演示环境直接物理删除。 +DELETE FROM `sys_job` WHERE `job_id` BETWEEN 1 AND 8; + +-- 9-25/41/42 按生产当前配置整体重建(含 job 14:生产可见,演示此前被软删除)。 +DELETE FROM `sys_job` WHERE `job_id` BETWEEN 9 AND 42; + +INSERT INTO `sys_job` + (`job_id`, `job_name`, `job_params`, `job_group`, `invoke_target`, `cron_expression`, + `misfire_policy`, `concurrent`, `status`, `remark`, + `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`) +VALUES +(9, '同步卡用量', '', 1, 'syns_usage', '0 0 2 * * ?', 1, 0, '1', '', 100, 1, '2026-06-04 21:12:34', 1, '2026-10-27 00:00:00', NULL, NULL), +(10, '同步卡运营商状态', '', 0, 'syns_sim_status', '0 0 2 * * ?', 1, 0, '1', '', 100, 1, '2026-06-04 21:12:34', 1, '2026-10-27 00:00:00', NULL, NULL), +(11, '月用量记录时序', '', 4, 'sync_traffic_usage_monthly', '0 40 8 1 * ?', 1, 0, '1', '', 100, 1, '2026-06-21 11:53:03', 1, '2026-10-27 00:00:00', NULL, NULL), +(12, '日用量记录时序', '', 4, 'sync_traffic_usage_daily', '0 25 6 * * ?', 1, 0, '1', '', 100, 1, '2026-06-22 00:11:11', 1, '2026-10-27 00:00:00', NULL, NULL), +(13, '全量预警扫描', '', 9, 'scan_sim_warning', '30 0 1 * * *', 1, 1, '1', '单卡,流量池', 100, 1, '2026-07-24 10:18:00', 1, '2026-10-27 00:00:00', NULL, NULL), +(14, ' 预警 - SIM卡到期扫描','', 0, 'notify_package_expiry', '0 0 9 * * ?', 1, 1, '1', '', 100, 1, '2026-07-27 14:35:16', 1, '2026-10-27 00:00:00', NULL, NULL), +(15, '流量池用量扫描', '', 3, 'check_flow_pool_warning', '0 */15 * * * ?', 1, 1, '1', '', 100, 1, '2026-07-27 14:37:34', 1, '2026-10-27 00:00:00', NULL, NULL), +(16, 'SIM卡用量扫描', '', 3, 'scan_sim_traffic_warning', '0 */15 * * * ?', 1, 1, '1', '', 100, 1, '2026-07-27 14:37:59', 1, '2026-10-27 00:00:00', NULL, NULL), +(17, '达量断网扫描', '', 7, 'check_traffic_cutoff', '0 */15 * * * ?', 1, 1, '1', '', 100, 1, '2026-07-27 15:37:08', 1, '2026-10-27 00:00:00', NULL, NULL), +(18, '生命周期流转', '', 8, 'sync_package_lifecycle', '0 */15 * * * ?', 1, 1, '1', '', 100, 1, '2026-07-28 16:00:00', 1, '2026-10-27 00:00:00', NULL, NULL), +(19, '可提现账户月账单', '', 5, 'settle_profit_account_month_bill','0 0 4 2 * ?', 1, 0, '1', '', 100, 1, '2026-07-28 16:09:51', 1, '2026-10-27 00:00:00', NULL, NULL), +(20, '消费账户月账单', '', 5, 'settle_consume_account_month_bill','0 0 4 2 * ?', 1, 0, '1', '', 100, 1, '2026-07-28 16:20:25', 1, '2026-10-27 00:00:00', NULL, NULL), +(21, '分润出账', '', 5, 'settle_commission', '0 0 4 * * ?', 1, 0, '1', '', 100, 1, '2026-07-28 16:48:19', 1, '2026-10-27 00:00:00', NULL, NULL), +(22, '卡信息数据同步流量池', '', 6, 'sync_flow_pool_card', '0 0 4 * * ?', 1, 0, '1', '', 100, 1, '2026-07-31 16:16:32', 1, '2026-10-27 00:00:00', NULL, NULL), +(23, '到期预警全量预加载', '', 3, 'PreloadSimExpireWarning', '0 30 23 28-31 * ?', 1, 1, '1', '每月底扫描下下个月到期卡,写入 Redis 候选池', 100, 1, '2026-07-31 17:53:44', 1, '2026-10-27 00:00:00', NULL, NULL), +(24, '定时到期预警扫描', '', 3, 'ScanSimExpireCandidateWarning', '0 0 9 * * ?', 1, 1, '1', '', 100, 1, '2026-07-31 17:54:13', 1, '2026-10-27 00:00:00', NULL, NULL), +(25, '队列-用量同步', '', 4, 'start_traffic_usage_full_sync', '0 30 0 * * ?', 1, 1, '1', '', 100, 1, '2026-10-23 00:00:00', 1, '2026-10-27 00:00:00', NULL, NULL), +(41, '队列-状态同步', '', 4, 'syns_sim_status_queue', '0 30 18 * * ?', 1, 0, '1', '', 100, 1, '2026-10-23 00:00:00', 1, '2026-10-27 00:00:00', NULL, NULL), +(42, '队列-IMEI 同步', '', 4, 'syns_imei_queue', '0 10 20 1/3 * ?', 1, 0, '1', '', 100, 1, '2026-10-23 00:00:00', 1, '2026-10-27 00:00:00', NULL, NULL); + +-- 自检:应与生产一致(可见 19 条、全部停用、分组分布如下) +SELECT COUNT(*) AS visible_total, + SUM(`status` = 0) AS enabled_total, + SUM(`job_group` = 4) AS group_kadata, + SUM(`job_group` = 3) AS group_warning, + SUM(`job_group` = 5) AS group_finance + FROM `sys_job` WHERE `deleted_at` IS NULL; + +SELECT `job_id`, `job_name`, `job_group`, `cron_expression`, `status` + FROM `sys_job` WHERE `deleted_at` IS NULL ORDER BY `job_id`; + + +-- ============================================================ +-- 菜单增量(达量断网按钮权限、全量同步页) +-- ============================================================ + +DELETE FROM `sys_menu` WHERE `menu_id` BETWEEN 421 AND 447; +INSERT INTO `sys_menu` (`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`created_dept`,`created_by`,`created_at`,`remark`) VALUES +(421,'全量同步',2,7,'full-sync','monitor/full-sync/index','1','0','C','0','0','cpm:iot:fullSyncRuns:view','lucide:refresh-cw',100,1,NOW(),'全量同步结果与手动启动'), +(422,'查看失败明细',421,1,'',NULL,'1','0','F','0','0','cpm:iot:fullSyncRuns:failures','#',100,1,NOW(),NULL), +(423,'手动启动同步',421,2,'',NULL,'1','0','F','0','0','cpm:iot:fullSyncRuns:start','#',100,1,NOW(),NULL), +(424,'重投失败卡',421,3,'',NULL,'1','0','F','0','0','cpm:iot:fullSyncRuns:replay','#',100,1,NOW(),NULL), +(425,'查看重投状态',421,4,'',NULL,'1','0','F','0','0','cpm:iot:fullSyncRuns:replay:view','#',100,1,NOW(),NULL), +(426,'订单',196,10,'TOrder',NULL,'1','0','M','0','0',NULL,NULL,100,1,NOW(),NULL), +(427,'管理员订单',426,11,'indexTwo','iotlcm/tOrder/indexTwo','1','0','C','0','0',NULL,'ant-design:appstore-outlined',100,1,NOW(),NULL), +(428,'获取财务审核记录表列表',354,10,'',NULL,'1','0','F','0','0','gen:tFinanceAuditRecord:list',NULL,100,1,NOW(),NULL), +(429,'获取财务申请表列表',349,10,'',NULL,'1','0','F','0','0','gen:tFinanceApply:list',NULL,100,1,NOW(),NULL), +(430,'获取分层分润概览',334,10,'',NULL,'1','0','F','0','0','common:tFinCommissionDetail:getCommissionOverview',NULL,100,1,NOW(),NULL), +(431,'获取SIM流量池套餐配置表列表',411,10,'',NULL,'1','0','F','0','0','iot:tFlowPackageConfig:list',NULL,100,1,NOW(),NULL), +(432,'敏感定价查看',135,15,'',NULL,'1','0','F','0','0','iot:tSimFlowPackagePrice:sensitive:view',NULL,100,1,NOW(),NULL), +(433,'敏感定价维护',135,15,'',NULL,'1','0','F','0','0','iot:tSimFlowPackagePrice:sensitive:edit',NULL,100,1,NOW(),NULL), +(434,'下载批量卡销户Excel模板',257,10,'',NULL,'1','0','F','0','0','iot:tSimCardCancel:excel:template',NULL,100,1,NOW(),NULL), +(435,'提交Excel批量卡销户',257,10,'',NULL,'1','0','F','0','0','iot:tSimCardCancel:excel:submit',NULL,100,1,NOW(),NULL), +(436,'通道测试',119,10,'',NULL,'1','0','F','0','0','iot:tSimChannels:test',NULL,100,1,NOW(),NULL), +(437,'提交批量输入达量断网配置',257,10,'',NULL,'1','0','F','0','0','iot:tSimCardTrafficCutoff:input:submit',NULL,100,1,NOW(),NULL), +(438,'单卡加油包',257,10,'',NULL,'1','0','F','0','0','iot:tSimCardBindPkg:addPackage',NULL,100,1,NOW(),NULL), +(439,'流量池加油包',257,10,'',NULL,'1','0','F','0','0','iot:tSimPoolBindPackage:addPackage',NULL,100,1,NOW(),NULL), +(440,'看订购表/套餐详情',257,10,'',NULL,'1','0','F','0','0','iot:tSimCardBindPkg:view',NULL,100,1,NOW(),NULL), +(441,'下载达量断网配置Excel模板',416,1,'',NULL,'1','0','F','0','0','iot:tSimCardTrafficCutoff:excel:template',NULL,100,1,NOW(),NULL), +(442,'提交Excel批量达量断网配置',416,1,'',NULL,'1','0','F','0','0','iot:tSimCardTrafficCutoff:excel:submit',NULL,100,1,NOW(),NULL), +(443,'提交连号达量断网配置',416,1,'',NULL,'1','0','F','0','0','iot:tSimCardTrafficCutoff:range:submit',NULL,100,1,NOW(),NULL), +(444,'文档中心',0,33,'docs','','1','0','C','0','0',NULL,NULL,100,1,NOW(),NULL), +(445,'Web 使用手册',444,1,'/docs/manual/web/',NULL,'0','0','C','0','0',NULL,NULL,100,1,NOW(),NULL), +(446,'OpenAPI 文档',444,2,'/docs/openapi/v3/',NULL,'0','0','C','0','0',NULL,NULL,100,1,NOW(),NULL), +(447,'获取销售订单列表',427,10,'',NULL,'1','0','F','0','0','iot:tOrder:sellList',NULL,100,1,NOW(),NULL); + +DELETE FROM sys_role_menu WHERE menu_id BETWEEN 421 AND 447; +INSERT INTO sys_role_menu (tenant_id, role_id, menu_id, data_scope) +SELECT '000000', r.role_id, m.menu_id, '0' +FROM (SELECT 2 AS role_id UNION ALL SELECT 82 UNION ALL SELECT 88) r +CROSS JOIN (SELECT menu_id FROM sys_menu WHERE menu_id BETWEEN 421 AND 447) m; + +-- 自检:菜单总数应为 447,新增绑定 81 条 +SELECT COUNT(*) AS menu_total FROM `sys_menu`; +SELECT role_id, COUNT(*) AS menus FROM `sys_role_menu` GROUP BY role_id ORDER BY role_id; + + +-- ============================================================ +-- v1.0.4 前置:导出中心表、通知已读表、channel_id 扩宽、菜单权限 +-- ============================================================ + +-- ------------------------------------------------------------ +-- 1) 导出任务表 +-- ------------------------------------------------------------ +CREATE TABLE IF NOT EXISTS `t_export_task` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `task_no` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务编号(= 执行日志批次编号 = 文件名主体)', + `biz_key` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务标识,如 tSimCardInfo', + `biz_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务名称,如 卡信息', + `perm_code` varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '导出权限码快照,K1业务过滤用', + `query_params` json DEFAULT NULL COMMENT '筛选条件快照', + `identity_snapshot` json DEFAULT NULL COMMENT '提交时用户身份与角色范围快照,异步执行还原上下文用', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态 0排队 2生成中 1已完成 3失败', + `total_count` int NOT NULL DEFAULT '0' COMMENT '导出总行数', + `oss_id` bigint NOT NULL DEFAULT '0' COMMENT 'OSS文件ID', + `file_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文件名,= task_no + .xlsx', + `file_size` bigint NOT NULL DEFAULT '0' COMMENT '文件大小(字节)', + `file_md5` varchar(64) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文件MD5', + `download_count` int NOT NULL DEFAULT '0' COMMENT '下载次数', + `last_download_time` datetime DEFAULT NULL COMMENT '最后下载时间', + `error_message` varchar(2000) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '失败原因', + `owner_user_id` bigint NOT NULL DEFAULT '0' COMMENT '发起用户ID,K2归属过滤用', + `dept_id` bigint NOT NULL DEFAULT '0' COMMENT '机构ID', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '000000' COMMENT '租户ID', + `created_dept` bigint NOT NULL DEFAULT '0' COMMENT '创建部门ID', + `created_by` bigint NOT NULL DEFAULT '0' COMMENT '创建者ID', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `start_time` datetime DEFAULT NULL COMMENT '开始生成时间', + `finish_time` datetime DEFAULT NULL COMMENT '完成/失败时间', + `expire_time` datetime DEFAULT NULL COMMENT '文件过期时间', + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted_time` datetime DEFAULT NULL COMMENT '文件清理时间,NULL表示未清理', + `delete_reason` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文件清理原因:user手动删除,expired到期清理', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_task_no` (`task_no`), + KEY `idx_owner_user_id` (`owner_user_id`,`id`), + KEY `idx_dept_id` (`dept_id`), + KEY `idx_status` (`status`), + KEY `idx_perm_code` (`perm_code`), + KEY `idx_expire_time` (`expire_time`), + KEY `idx_export_cleanup` (`deleted_time`,`status`,`expire_time`,`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='导出任务表'; + +-- ------------------------------------------------------------ +-- 2) 通知已读表 +-- ------------------------------------------------------------ +CREATE TABLE IF NOT EXISTS `sys_notice_user` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `notice_id` bigint NOT NULL DEFAULT '0', + `tenant_id` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '000000', + `notice_title` varchar(50) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '', + `notice_type` char(1) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1', + `notice_content` longblob, + `status` char(1) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0', + `user_id` bigint NOT NULL DEFAULT '0', + `is_read` tinyint NOT NULL DEFAULT '0', + `created_dept` bigint NOT NULL DEFAULT '0', + `created_by` bigint NOT NULL DEFAULT '0', + `created_at` datetime DEFAULT CURRENT_TIMESTAMP, + `updated_by` bigint DEFAULT NULL, + `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `remark` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_notice_user_unread` (`tenant_id`,`user_id`,`status`,`is_read`), + KEY `idx_notice_id` (`notice_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- ------------------------------------------------------------ +-- 3) 通道关联列改 varchar(64)(迁移 20260920;只改类型不改数据) +-- ------------------------------------------------------------ +ALTER TABLE `card_channel_assoc` + MODIFY COLUMN `channel_id` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '通道编号'; + +-- ------------------------------------------------------------ +-- 4) 菜单 / 权限(先删后插,幂等) +-- 4.1 流量池预警配置独立权限 4 条(admin-svr storage/data/pool_warn_config_permission.sql 的等价物,固定 id) +-- ------------------------------------------------------------ +DELETE FROM `sys_role_menu` WHERE `menu_id` BETWEEN 2115 AND 2123; +DELETE FROM `sys_menu` WHERE `menu_id` BETWEEN 2115 AND 2123; + +INSERT INTO `sys_menu` + (`menu_id`, `menu_name`, `parent_id`, `level`, `tree`, `order_num`, `path`, `component`, + `query_param`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, + `created_dept`, `created_by`, `created_at`, `remark`) +VALUES + (2115, '连号流量池预警配置', 257, 2, 'tr_257', 23, '', '', NULL, 1, 0, 'F', '0', '0', 'iot:tSimPoolWarnConfig:range:submit', '#', 100, 1, NOW(), '流量池预警配置(独立权限)'), + (2116, '批量输入流量池预警配置', 257, 2, 'tr_257', 22, '', '', NULL, 1, 0, 'F', '0', '0', 'iot:tSimPoolWarnConfig:input:submit', '#', 100, 1, NOW(), '流量池预警配置(独立权限)'), + (2117, '提交流量池预警配置Excel', 257, 2, 'tr_257', 21, '', '', NULL, 1, 0, 'F', '0', '0', 'iot:tSimPoolWarnConfig:excel:submit', '#', 100, 1, NOW(), '流量池预警配置(独立权限)'), + (2118, '下载流量池预警配置Excel模板', 257, 2, 'tr_257', 20, '', '', NULL, 1, 0, 'F', '0', '0', 'iot:tSimPoolWarnConfig:excel:template', '#', 100, 1, NOW(), '流量池预警配置(独立权限)'), + (2119, '下载中心', 0, 1, NULL, 34, 'downloadCenter', 'iotlcm/downloadCenter/index', NULL, 1, 0, 'C', '0', '0', 'common:downloadCenter:list', '#', 100, 1, NOW(), '导出任务与文件下载'), + (2120, '下载文件', 2119, 2, 'tr_2119', 1, '', '', NULL, 1, 0, 'F', '0', '0', 'common:downloadCenter:download', '#', 100, 1, NOW(), '下载导出文件'), + (2121, '删除任务', 2119, 2, 'tr_2119', 2, '', '', NULL, 1, 0, 'F', '0', '0', 'common:downloadCenter:remove', '#', 100, 1, NOW(), '删除导出任务与文件'), + (2122, '卡基础信息查询', 257, 2, 'tr_257', 1, '', '', NULL, 1, 0, 'F', '0', '0', 'iot:tSimCardBaseQuery:view', '#', 100, 1, NOW(), '卡基础信息查询与导出'), + (2123, '月历史用量查询', 257, 2, 'tr_257', 3, '', '', NULL, 1, 0, 'F', '0', '0', 'iot:tSimCardUsageHistory:view', '#', 100, 1, NOW(), '月历史用量查询与导出'); + +-- 4.2 授权 +-- 下载中心 3 条 → 全部角色 +INSERT INTO `sys_role_menu` (`tenant_id`, `role_id`, `menu_id`, `data_scope`) +SELECT '000000', r.`role_id`, m.`menu_id`, 0 +FROM `sys_role` r +JOIN `sys_menu` m ON m.`perms` IN ('common:downloadCenter:list','common:downloadCenter:download','common:downloadCenter:remove') +WHERE r.`status` = '0' AND r.`deleted_at` IS NULL; + +-- 卡基础信息查询 / 月历史用量查询 → dl(代理商)+ enduser +INSERT INTO `sys_role_menu` (`tenant_id`, `role_id`, `menu_id`, `data_scope`) +SELECT '000000', r.`role_id`, m.`menu_id`, 0 +FROM `sys_role` r +JOIN `sys_menu` m ON m.`perms` IN ('iot:tSimCardBaseQuery:view','iot:tSimCardUsageHistory:view') +WHERE r.`status` = '0' AND r.`deleted_at` IS NULL AND r.`role_key` IN ('dl','enduser'); + +-- 流量池预警 4 条 → 拥有对应旧权限项(tSimWarningConfig:*)的角色自动补授 +INSERT INTO `sys_role_menu` (`tenant_id`, `role_id`, `menu_id`, `data_scope`) +SELECT old.`tenant_id`, old.`role_id`, new.`menu_id`, old.`data_scope` +FROM `sys_role_menu` old +JOIN `sys_menu` old_menu ON old_menu.`menu_id` = old.`menu_id` +JOIN `sys_menu` new + ON new.`parent_id` = old_menu.`parent_id` + AND new.`perms` = REPLACE(old_menu.`perms`, 'iot:tSimWarningConfig:', 'iot:tSimPoolWarnConfig:') +WHERE old_menu.`perms` IN ( + 'iot:tSimWarningConfig:excel:template', + 'iot:tSimWarningConfig:excel:submit', + 'iot:tSimWarningConfig:input:submit', + 'iot:tSimWarningConfig:range:submit' + ); + +-- ------------------------------------------------------------ +-- 5) 字典 detail_status = 5「未执行」(迁移 20261021) +-- ------------------------------------------------------------ +INSERT INTO `sys_dict_data` ( + `tenant_id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, + `is_default`, `created_dept`, `created_by`, `created_at`, `remark`) +SELECT '000000', 5, '未执行', '5', 'detail_status', '', 'warning', + 'N', 100, 1, NOW(), '本卡校验通过,本批存在校验失败卡,整批未执行' +FROM `sys_dict_type` AS dict_type +WHERE dict_type.`tenant_id` = '000000' + AND dict_type.`dict_type` = 'detail_status' + AND NOT EXISTS ( + SELECT 1 FROM `sys_dict_data` AS dict_data + WHERE dict_data.`tenant_id` = '000000' + AND dict_data.`dict_type` = 'detail_status' + AND dict_data.`dict_value` = '5' + ); + +-- ------------------------------------------------------------ +-- 6) 套餐到期提醒(企业月度汇总)—— 默认暂停(迁移 20261014) +-- 启用/改调度需在任务管理页操作(直接改库不刷新进程内调度) +-- ------------------------------------------------------------ +INSERT INTO sys_job (job_name, job_params, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, remark, created_at, updated_at) +SELECT '套餐到期提醒(企业月度汇总)', '', '3', 'NotifyMonthlyPackageExpiry', + '0 0 9 15 * ?', 1, 1, '1', '独立月度到期通知任务;默认暂停', NOW(), NOW() +WHERE NOT EXISTS ( + SELECT 1 FROM sys_job WHERE invoke_target = 'NotifyMonthlyPackageExpiry' +); + + +-- ============================================================ +-- 数据修复:sys_dept.ancestors 尾逗号归一化(全新库为空操作) +-- ============================================================ + +DROP TABLE IF EXISTS `_tmp_dept_ancestors_fix`; +CREATE TABLE `_tmp_dept_ancestors_fix` ( + `dept_id` BIGINT NOT NULL, + `ancestors_calc` VARCHAR(255) NOT NULL, + PRIMARY KEY (`dept_id`) +); + +INSERT INTO `_tmp_dept_ancestors_fix` (`dept_id`, `ancestors_calc`) +WITH RECURSIVE `dept_tree` (`dept_id`, `tenant_id`, `ancestors_calc`, `depth`) AS ( + SELECT `dept_id`, `tenant_id`, CAST('0,' AS CHAR(255)), 1 + FROM `sys_dept` + WHERE `parent_id` = 0 + UNION ALL + SELECT d.`dept_id`, d.`tenant_id`, CONCAT(t.`ancestors_calc`, d.`parent_id`, ','), t.`depth` + 1 + FROM `sys_dept` d + JOIN `dept_tree` t ON d.`parent_id` = t.`dept_id` AND d.`tenant_id` = t.`tenant_id` + WHERE t.`depth` < 32 +) +SELECT `dept_id`, `ancestors_calc` FROM `dept_tree`; + +UPDATE `sys_dept` d + JOIN `_tmp_dept_ancestors_fix` t ON t.`dept_id` = d.`dept_id` + SET d.`ancestors` = t.`ancestors_calc` + WHERE d.`ancestors` <> t.`ancestors_calc`; + +DROP TABLE `_tmp_dept_ancestors_fix`; + +-- 自检 1:不应再有非空且不以逗号结尾的 ancestors +SELECT COUNT(*) AS still_missing_trailing_comma + FROM `sys_dept` + WHERE `ancestors` IS NOT NULL AND `ancestors` <> '' AND `ancestors` <> '0,' + AND RIGHT(`ancestors`, 1) <> ','; + +-- 自检 2:复现划拨接口的取数条件(parent_id = 一级代理 + 数据权限展开结果) +SELECT `dept_id`, `dept_name`, `parent_id`, `ancestors` + FROM `sys_dept` + WHERE `deleted_at` IS NULL AND `status` = '0' AND `parent_id` = 172 + AND (`ancestors` LIKE '%,172,%' OR `ancestors` LIKE '%,172') + ORDER BY `dept_id`; + + +-- ============================================================ +-- 业务账号与种子账号口令 +-- ============================================================ + +-- 口令为字面值(不使用环境变量)。改口令须同步修改: +-- docker-compose.yml 的 MYSQL_ROOT_PASSWORD +-- config/*/config.yaml 各服务 database link 的口令 +-- 口令算法:MD5(CONCAT(MD5(明文), salt));前端先 MD5 明文,后端再将该值与原始 salt 拼接后 MD5。 + +CREATE USER IF NOT EXISTS 'u_iotlcm'@'%' + IDENTIFIED WITH mysql_native_password BY 'Iotlcm2026Default'; +GRANT ALL PRIVILEGES ON `db_iotlcm`.* TO 'u_iotlcm'@'%'; + +CREATE DATABASE IF NOT EXISTS `iotdb` + DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +GRANT ALL PRIVILEGES ON `iotdb`.* TO 'u_iotlcm'@'%'; + +FLUSH PRIVILEGES; + +-- 种子账号口令统一重置为部署口令(登录后请逐个修改) +UPDATE `sys_user` SET `password` = MD5(CONCAT(MD5('Iotlcm2026Default'), `salt`)); + + + +-- ============================================================ +-- worker-svr v1.0.4 的 APN 异步办理恢复表(来源:iotlcm-database +-- feat/data-operation-reconcile-20261015:SQL/20261015_data_operation_sub_batch.sql,bf5f7fd) +-- 新库初始化阶段先建表,后启动 worker;旧库单独执行原迁移,不覆盖已有记录。 +-- ============================================================ +-- APN异步任务:先执行迁移,再部署配套chan/proxy/worker;禁止混版直接发送办理请求。 +-- apnAsyncProtocolVersion=0仅阻断网络办理请求,worker恢复器仍会访问本脚本创建的四张表;故必须先迁移。 +-- 升级前排空旧路由与在途请求、逐批核实旧同步processing批次:可能已送上游却无operationId者不得自动重投。 +-- 所有chan/proxy/worker实例均升级且旧实例退出后才显式开启门禁;能力probe成功不证明下一次办理必达同一实例。 +-- 本脚本只创建全新四表,不负责升级此前未部署的试验版表结构;若已存在同名表须先核对列与排序规则。 +-- 仅适用于首次创建四表;CREATE IF NOT EXISTS不升级未部署的旧试验结构。 +-- 若发现同名旧表,须停止启用并单独核验冻结请求/明细/active归属,禁止清空或重置jobId和补查次数。 +-- worker数据库连接须保持写入与读取一致的loc/parseTime约定(与现有生产配置一致)。 +CREATE TABLE IF NOT EXISTS `data_operation_parent` ( + `batch_no` varchar(64) NOT NULL, + `ready` tinyint NOT NULL DEFAULT 0, + `finalize_token` varchar(64) DEFAULT NULL, + `finalize_until` datetime(3) DEFAULT NULL, + `recovery_attempt_at` datetime(3) DEFAULT NULL, + `last_reason` varchar(1024) DEFAULT NULL, + `updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + PRIMARY KEY (`batch_no`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='APN父批准备屏障及可恢复汇总租约'; + +CREATE TABLE IF NOT EXISTS `data_operation_sub_batch` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `batch_no` varchar(64) NOT NULL, + `batch_type` int NOT NULL, + `chan_key` varchar(128) NOT NULL, + `operation_id` varchar(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, + `detail_ids` json NOT NULL, + `request_data` json NOT NULL COMMENT '首发前冻结请求,恢复不能重新构建', + `job_id` varchar(128) DEFAULT NULL, + `status` varchar(24) NOT NULL DEFAULT 'prepared' COMMENT 'prepared/submitting/accepted/uncertain/review/done', + `poll_count` tinyint unsigned NOT NULL DEFAULT 0, + `next_check_at` datetime(3) DEFAULT NULL, + `submitted_at` datetime(3) DEFAULT NULL, + `lease_token` varchar(64) DEFAULT NULL, + `lease_until` datetime(3) DEFAULT NULL, + `last_reason` varchar(1024) DEFAULT NULL, + `created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + PRIMARY KEY (`id`), + UNIQUE KEY `uk_data_operation_id` (`operation_id`), + KEY `idx_data_sub_due` (`status`,`next_check_at`,`lease_until`), + KEY `idx_data_sub_batch` (`batch_no`,`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='APN异步子批及恢复状态'; + +CREATE TABLE IF NOT EXISTS `data_operation_sub_detail` ( + `detail_id` bigint NOT NULL, + `operation_id` varchar(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, + `batch_no` varchar(64) NOT NULL, + `iccid` varchar(64) NOT NULL, + PRIMARY KEY (`detail_id`), + UNIQUE KEY `uk_data_sub_batch_card` (`batch_no`,`iccid`), + KEY `idx_data_sub_detail_operation` (`operation_id`), + KEY `idx_data_sub_detail_batch` (`batch_no`), + KEY `idx_data_sub_detail_card` (`iccid`,`batch_no`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='明细唯一提交意图映射'; + +-- queued与active分离:新准备意图不抢已提交请求的owner,未知active不能自动释放。 +CREATE TABLE IF NOT EXISTS `data_operation_card_claim` ( + `tenant_id` varchar(64) NOT NULL, + `iccid` varchar(64) NOT NULL, + `batch_id` bigint NOT NULL DEFAULT 0 COMMENT '最新queued批次序', + `operation_id` varchar(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL DEFAULT '' COMMENT '最新queued意图', + `active_batch_id` bigint NOT NULL DEFAULT 0, + `active_operation_id` varchar(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL DEFAULT '', + `updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + PRIMARY KEY (`tenant_id`,`iccid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='APN卡持久化提交顺序屏障'; diff --git a/deploy/tdengine-init/init.sql b/deploy/tdengine-init/init.sql new file mode 100644 index 0000000..a4033e3 --- /dev/null +++ b/deploy/tdengine-init/init.sql @@ -0,0 +1,17 @@ +-- ============================================================ +-- TDengine 初始化:流量历史库与超级表 +-- +-- 结构取自生产环境(SHOW CREATE STABLE 导出),仅结构、无数据。 +-- 由 compose 的 tdengine-init 服务在 tdengine 健康后执行。 +-- +-- 注意:`taos -f` 是**按行**执行语句的,每条 SQL 必须写在一行内, +-- 跨行会被判为 "Incomplete SQL statement"。改本文件时务必保持单行。 +-- +-- 业务代码(worker-svr / admin-svr)只连接读写,不负责建库建表, +-- 因此这一步必须在首次启动时完成,否则单卡流量重试写入会报库表不存在。 +-- ============================================================ + +CREATE DATABASE IF NOT EXISTS iotlcm_daily PRECISION 'ms' KEEP 1095d DURATION 7d; +CREATE DATABASE IF NOT EXISTS iotlcm_monthly PRECISION 'ms' KEEP 1095d DURATION 30d; +CREATE STABLE IF NOT EXISTS iotlcm_daily.t_sim_card_usage_daily (ts TIMESTAMP, usage_mb DOUBLE, package_code VARCHAR(128)) TAGS (iccid VARCHAR(64)); +CREATE STABLE IF NOT EXISTS iotlcm_monthly.t_sim_card_usage_monthly (ts TIMESTAMP, usage_mb DOUBLE, package_code VARCHAR(128)) TAGS (iccid VARCHAR(64)); diff --git a/deploy/tdengine-init/run.sh b/deploy/tdengine-init/run.sh new file mode 100755 index 0000000..d20aadf --- /dev/null +++ b/deploy/tdengine-init/run.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# ============================================================ +# TDengine 初始化执行脚本 +# +# 由 compose 的 tdengine-init 服务调用,在 tdengine 健康后执行一次。 +# 做三件事: +# 1. 过滤掉 init.sql 里的注释与空行(taos -f 会逐行执行, +# 注释行会被当成不完整 SQL 报错) +# 2. 执行建库建表 +# 3. 校验超级表确实存在,缺表则以非零码退出(让 compose 暴露失败) +# ============================================================ +set -eu + +echo "[tdengine-init] 准备 SQL(过滤注释与空行)" +grep -vE '^[[:space:]]*(--|$)' /init/init.sql > /tmp/init.sql +echo "[tdengine-init] 待执行语句数:$(wc -l < /tmp/init.sql)" + +echo "[tdengine-init] 执行建库建表" +taos -h tdengine -f /tmp/init.sql + +echo "[tdengine-init] 校验超级表" +missing=0 +for pair in "iotlcm_daily:t_sim_card_usage_daily" "iotlcm_monthly:t_sim_card_usage_monthly"; do + db=${pair%%:*} + stable=${pair##*:} + if taos -h tdengine -s "show ${db}.stables;" 2>/dev/null | grep -q "$stable"; then + echo " OK ${db}.${stable}" + else + echo " MISS ${db}.${stable}" + missing=1 + fi +done + +if [ "$missing" -ne 0 ]; then + echo "[tdengine-init] 失败:超级表缺失,请检查 taos 输出" + exit 1 +fi + +echo "[tdengine-init] 完成"