From bc2c7bcc6b327b430e9d816910980034396dd9ec Mon Sep 17 00:00:00 2001 From: MiFaZhan Date: Wed, 28 Oct 2026 13:40:12 +0800 Subject: [PATCH] =?UTF-8?q?init:=20IotLCM=20=E5=BC=80=E6=BA=90=E7=89=88?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E4=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 内容: - docker-compose.yml:14 个基础/业务服务 + 3 个可选 profile(with-mock 挡板、with-bot、with-nginx) - .env.example:集中管理镜像仓库、口令、端口;必填项缺失时 compose 直接报错退出 - config.example/:10 份配置模板,全部为占位值与注释说明 - schema/:12 个初始化脚本,按文件名顺序由 MySQL initdb 自动执行 脱敏处理: - 生产/内网 IP、镜像仓库地址、公司名、真实域名全部清除 - 演示账号保留 18 个(出库与划拨依赖账号与部门树的关联), 昵称/邮箱/手机号/登录IP/头像改为占位或编造值 - 数据库账号与 admin 口令改为初始化时按 .env 注入计算 - 通道模板与 Mock 通道的上游密钥置空 - Mock 通道地址指向 compose 内 onelink-mock 服务 部署时用 --profile with-mock 启动运营商接口挡板,即可在无真实运营商环境时跑通全链路。 --- .env.example | 95 + .gitignore | 14 + config.example/admin-svr/config.example.yaml | 228 + config.example/admin-ui/default.conf | 61 + config.example/app-server/config.example.yaml | 263 ++ config.example/bot/config.example.yaml | 26 + config.example/nginx/iotlcm.conf | 141 + config.example/openapi/config.example.yaml | 91 + config.example/sms/config.example.yaml | 29 + .../upstream-chan/config.example.yaml | 108 + .../upstream-proxy/config.example.yaml | 110 + config.example/worker-svr/config.example.yaml | 139 + docker-compose.yml | 397 ++ schema/01-schema.sql | 4155 +++++++++++++++++ schema/02-schema-fix-preview1.sql | 116 + schema/03-schema-align-prod.sql | 42 + schema/04-users.sh | 33 + schema/05-reset-passwords.sh | 56 + schema/06-seed-channel-templates.sql | 45 + schema/07-seed-dict.sql | 677 +++ schema/08-seed-mock-channel.sql | 52 + schema/09-seed-role-chain.sql | 77 + schema/10-seed-jobs.sql | 73 + schema/11-seed-menu-align-prod.sql | 72 + schema/12-repair-dept-ancestors.sql | 70 + schema/README.md | 94 + 26 files changed, 7264 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 config.example/admin-svr/config.example.yaml create mode 100644 config.example/admin-ui/default.conf create mode 100644 config.example/app-server/config.example.yaml create mode 100644 config.example/bot/config.example.yaml create mode 100644 config.example/nginx/iotlcm.conf create mode 100644 config.example/openapi/config.example.yaml create mode 100644 config.example/sms/config.example.yaml create mode 100644 config.example/upstream-chan/config.example.yaml create mode 100644 config.example/upstream-proxy/config.example.yaml create mode 100644 config.example/worker-svr/config.example.yaml create mode 100644 docker-compose.yml create mode 100644 schema/01-schema.sql create mode 100644 schema/02-schema-fix-preview1.sql create mode 100644 schema/03-schema-align-prod.sql create mode 100755 schema/04-users.sh create mode 100755 schema/05-reset-passwords.sh create mode 100644 schema/06-seed-channel-templates.sql create mode 100644 schema/07-seed-dict.sql create mode 100644 schema/08-seed-mock-channel.sql create mode 100644 schema/09-seed-role-chain.sql create mode 100644 schema/10-seed-jobs.sql create mode 100644 schema/11-seed-menu-align-prod.sql create mode 100644 schema/12-repair-dept-ancestors.sql create mode 100644 schema/README.md diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..abb24d3 --- /dev/null +++ b/.env.example @@ -0,0 +1,95 @@ +# ============================================================ +# IotLCM 部署环境变量 +# +# cp .env.example .env +# +# 标注「必填」的变量未设置时 docker compose 会直接报错退出, +# 避免用弱口令启动。口令建议用 openssl rand -base64 24 生成。 +# ============================================================ + +# ---------- 镜像 ---------- +# 镜像仓库地址(不含末尾斜杠)。 +# 基础组件从 /library/ 拉取,业务镜像从 /iotlcm/ 拉取。 +REGISTRY=your-registry.example.com + +# 镜像标签。生产建议用不可变标签(版本号或 commit sha),不要用 latest。 +TAG=latest + +# ---------- 时区 ---------- +TZ=Asia/Shanghai + +# ---------- 必填:数据库 ---------- +# MySQL root 口令 +MYSQL_ROOT_PASSWORD=change-me-strong-password + +# 数据库名 +MYSQL_DATABASE=db_iotlcm + +# 应用连接账号 u_iotlcm 的口令(首次启动时创建) +MYSQL_APP_PASSWORD=change-me-strong-password + +# admin 初始登录口令(首次启动时写入数据库) +# 登录后请立即在「个人中心」修改 +MYSQL_ADMIN_PASSWORD=change-me-admin-password + +# ---------- 必填:Redis ---------- +REDIS_PASSWORD=change-me-strong-password + +# ---------- 必填:RabbitMQ ---------- +RABBITMQ_USER=iotlcm +RABBITMQ_PASSWORD=change-me-strong-password + +# ---------- 必填:JWT 签名密钥 ---------- +# admin-svr / openapi / app-server 必须使用同一个值,否则令牌跨服务不通用。 +# 生成:openssl rand -hex 32 +# 注意:更换此值会使已签发的所有登录态与接口令牌立即失效。 +JWT_SIGNING_KEY=change-me-run-openssl-rand-hex-32 + +# ---------- 可选:智能诊断内部凭据 ---------- +# admin-svr 与 upstream-proxy 必须一致。留空则该功能不可用。 +DIAGNOSIS_INTERNAL_TOKEN= + +# ---------- 可选:短信服务商 ---------- +# 不启用短信时保持空值,并把配置里的 warning.sms.enabled 改为 false +SMS_ACCESS_KEY_ID= +SMS_ACCESS_KEY_SECRET= + +# ---------- 可选:飞书通知(bot 服务) ---------- +# 不启用 bot 时不填,且不启动该容器 +FEISHU_APP_ID= +FEISHU_APP_SECRET= +FEISHU_CHAT_ID= + +# ---------- 端口(宿主机侧) ---------- +# 仅监听 127.0.0.1 的服务需通过反向代理对外 +ADMIN_SVR_PORT=8008 +ADMIN_UI_PORT=8009 +OPENAPI_PORT=8000 +APP_SERVER_PORT=8010 +APP_WEB_PORT=8018 +DOCS_PORT=8019 +MOCK_PORT=8080 + +# 以下服务监听所有网卡(容器间互访也走这些端口) +MYSQL_PORT=3306 +REDIS_PORT=6379 +RABBITMQ_PORT=5672 +RABBITMQ_MGMT_PORT=15672 +CONSUL_PORT=8500 +CHAN_HTTP_PORT=8110 +CHAN_GRPC_PORT=8310 +PROXY_PORT=8510 +SMS_HTTP_PORT=11190 +SMS_GRPC_PORT=11200 + +# nginx 对外端口(仅 --profile with-nginx) +NGINX_HTTP_PORT=80 + +# ---------- 可选:TDengine(流量历史) ---------- +# 不启用时序库时全部留空,相关历史流量查询功能不可用,不影响主流程。 +TDENGINE_HOST= +TDENGINE_PORT=6041 +TDENGINE_USER=root +TDENGINE_PASSWORD= +TDENGINE_DAILY_DB=iotlcm_daily +TDENGINE_MONTHLY_DB=iotlcm_monthly diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..82d5639 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# 运行时数据(含数据库文件、日志、上传件) +data/ + +# 实际配置(由 config.example 复制而来,含真实凭据) +config/ + +# 环境变量文件 +.env + +# 编辑器与系统文件 +.DS_Store +*.swp +.idea/ +.vscode/ diff --git a/config.example/admin-svr/config.example.yaml b/config.example/admin-svr/config.example.yaml new file mode 100644 index 0000000..ba51502 --- /dev/null +++ b/config.example/admin-svr/config.example.yaml @@ -0,0 +1,228 @@ +# ============================================================ +# iotlcm-admin-svr 配置示例 +# +# cp config.example.yaml config.yaml +# +# 标注「必改」的项需要按实际环境填写; +# 其余为可运行默认值,按需调整。 +# 支持 ${VAR} 与 ${VAR:default} 环境变量占位(由 compose 注入)。 +# ============================================================ + +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: "${JWT_SIGNING_KEY}" + 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: + # 必改:连接串格式为 mysql:用户名:口令 再接 tcp(主机:端口)/库名?参数 + link: "mysql:u_iotlcm:${MYSQL_APP_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?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: "${REDIS_PASSWORD}" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "SystemCache" + +# ---------- RabbitMQ ---------- +rabbitmq: + enabled: true + dsn: "amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@rabbitmq:5672/" + +# ---------- TDengine(流量历史) ---------- +# 需要 TDengine 3.x 的 WebSocket 接口(6041)。 +# 不启用时序库时 link 留空,历史流量相关功能不可用。 +tsdb: + database: "TdEngine" + tdengine: + type: "taosWS" + dsn: "${TDENGINE_USER}:${TDENGINE_PASSWORD}@ws(${TDENGINE_HOST}:${TDENGINE_PORT})/" + dbName: "${TDENGINE_DAILY_DB}" + dailyDbName: "${TDENGINE_DAILY_DB}" + monthlyDbName: "${TDENGINE_MONTHLY_DB}" + 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: "${DIAGNOSIS_INTERNAL_TOKEN}" + proxy: + address: "upstream-proxy:8510" + timeout: 10s + gateway: + address: "upstream-chan:8110" + timeout: 10s diff --git a/config.example/admin-ui/default.conf b/config.example/admin-ui/default.conf new file mode 100644 index 0000000..8ccfa24 --- /dev/null +++ b/config.example/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/config.example/app-server/config.example.yaml b/config.example/app-server/config.example.yaml new file mode 100644 index 0000000..8fab95f --- /dev/null +++ b/config.example/app-server/config.example.yaml @@ -0,0 +1,263 @@ +# ============================================================ +# iotlcm-app-server 配置示例 +# +# cp config.example.yaml config.yaml +# +# 小程序 / H5 端的后端服务。 +# ============================================================ + +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: "${JWT_SIGNING_KEY}" + 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:${MYSQL_APP_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?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: "${REDIS_PASSWORD}" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "AppServerCache" + +# ---------- RabbitMQ ---------- +rabbitmq: + enabled: true + dsn: "amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@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" + dsn: "${TDENGINE_USER}:${TDENGINE_PASSWORD}@ws(${TDENGINE_HOST}:${TDENGINE_PORT})/" + dbName: "${TDENGINE_DAILY_DB}" + dailyDbName: "${TDENGINE_DAILY_DB}" + monthlyDbName: "${TDENGINE_MONTHLY_DB}" + 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: "${DIAGNOSIS_INTERNAL_TOKEN}" + 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/config.example/bot/config.example.yaml b/config.example/bot/config.example.yaml new file mode 100644 index 0000000..aaca7da --- /dev/null +++ b/config.example/bot/config.example.yaml @@ -0,0 +1,26 @@ +# ============================================================ +# iotlcm-bot 配置示例 +# +# cp config.example.yaml config.yaml +# +# 本服务把全量同步等运维事件推送到飞书群。 +# 不使用飞书通知时不要启动该容器(默认走 with-bot profile)。 +# ============================================================ + +environment: prod + +# 全量同步归档目录与状态目录(容器内路径,compose 已挂载) +archiveDir: /data/full-sync +stateDir: /data/state + +# 轮询间隔 +pollInterval: 10s + +# ---------- 飞书 ---------- +# 在飞书开放平台创建自建应用后获取: +# appId / appSecret:应用凭证 +# chatId:目标群会话 ID +feishu: + appId: "${FEISHU_APP_ID}" + appSecret: "${FEISHU_APP_SECRET}" + chatId: "${FEISHU_CHAT_ID}" diff --git a/config.example/nginx/iotlcm.conf b/config.example/nginx/iotlcm.conf new file mode 100644 index 0000000..5c3e1d3 --- /dev/null +++ b/config.example/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/config.example/openapi/config.example.yaml b/config.example/openapi/config.example.yaml new file mode 100644 index 0000000..33e65b5 --- /dev/null +++ b/config.example/openapi/config.example.yaml @@ -0,0 +1,91 @@ +# ============================================================ +# iotlcm-openapi 配置示例 +# +# cp config.example.yaml config.yaml +# ============================================================ + +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: "${JWT_SIGNING_KEY}" + expiresTime: "7d" + bufferTime: "1d" + issuer: "iotlcm" + +# ---------- 数据库 ---------- +# 建议为 OpenAPI 单独建只读账号,与 admin 的账号隔离。 +database: + logger: + path: "/app/logs/sql" + level: "all" + stdout: true + default: + # 必改:连接串 + link: "mysql:u_iotlcm:${MYSQL_APP_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?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: "${REDIS_PASSWORD}" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "OpenAPICache" + +# ---------- RabbitMQ ---------- +rabbitmq: + enabled: true + dsn: "amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@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/config.example/sms/config.example.yaml b/config.example/sms/config.example.yaml new file mode 100644 index 0000000..161ea7e --- /dev/null +++ b/config.example/sms/config.example.yaml @@ -0,0 +1,29 @@ +# ============================================================ +# iotlcm-sms 配置示例 +# +# cp config.example.yaml config.yaml +# +# 短信服务商的全局凭证与签名由本服务持有, +# 调用方(admin-svr / app-server)只传模板 ID 与短信内容。 +# ============================================================ + +# 服务商:1=阿里云,2=腾讯云 +serviceType: "1" + +# ---------- 必改:服务商凭据 ---------- +regionId: cn-hangzhou +accessKeyId: "${SMS_ACCESS_KEY_ID}" +accessKeySecret: "${SMS_ACCESS_KEY_SECRET}" + +# 短信签名,需已在服务商侧审核通过 +signName: "示例签名" + +# 仅腾讯云需要: +# sdkAppId: "" + +# ---------- 场景模板库(可选) ---------- +# 配置后按 scene 从 t_sms_template_config 表读取模板与签名, +# 改库即生效(短 TTL 缓存)。 +# 不配置则 scene 功能关闭,调用方必须自带 templateId。 +sceneDbDsn: "u_iotlcm:${MYSQL_APP_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?charset=utf8mb4&parseTime=true&loc=Local" +sceneDbCacheTtl: 60s diff --git a/config.example/upstream-chan/config.example.yaml b/config.example/upstream-chan/config.example.yaml new file mode 100644 index 0000000..37fa987 --- /dev/null +++ b/config.example/upstream-chan/config.example.yaml @@ -0,0 +1,108 @@ +# ============================================================ +# iotlcm-upstream-chan 配置示例 +# +# cp config.example.yaml config.yaml +# +# 本服务负责具体运营商协议对接(移动 OneLink / 电信 CMP / +# 联通 10646 / 各类三方渠道)。 +# +# 注意:接入运营商需要在数据库中配置通道(t_sim_channels 等), +# 本文件只配置服务自身参数。 +# ============================================================ + +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:${MYSQL_APP_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?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: "${REDIS_PASSWORD}" + 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/config.example/upstream-proxy/config.example.yaml b/config.example/upstream-proxy/config.example.yaml new file mode 100644 index 0000000..eda616d --- /dev/null +++ b/config.example/upstream-proxy/config.example.yaml @@ -0,0 +1,110 @@ +# ============================================================ +# iotlcm-upstream-proxy 配置示例 +# +# cp config.example.yaml config.yaml +# +# 本服务是通道侧的缓存与转发层,通常不需要改业务参数。 +# ============================================================ + +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: "${DIAGNOSIS_INTERNAL_TOKEN}" + +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:${MYSQL_APP_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?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: "${REDIS_PASSWORD}" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "SystemCache" + +# ---------- 上游通道服务 ---------- +gateway: + # 通道服务地址(同 compose 内服务名) + address: "upstream-chan" + timeout: 10s + # 单次批量转发的总预算上限。 + # 非 APN 批量按「单卡超时 × 卡数」计算并以此封顶, + # 避免通道逐卡串行办理时请求仍在执行就被判失败 + # (批量重启、停复机、批量查询)。 + # worker 侧的超时配置必须大于该值。 + batchTimeout: 20m diff --git a/config.example/worker-svr/config.example.yaml b/config.example/worker-svr/config.example.yaml new file mode 100644 index 0000000..a01af2a --- /dev/null +++ b/config.example/worker-svr/config.example.yaml @@ -0,0 +1,139 @@ +# ============================================================ +# iotlcm-worker-svr 配置示例 +# +# cp config.example.yaml config.yaml +# +# 本服务是异步中枢:消费 RabbitMQ 队列,执行批次开停复机、 +# 全量同步、流量统计等后台任务。 +# ============================================================ + +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:${MYSQL_APP_PASSWORD}@tcp(mysql:3306)/${MYSQL_DATABASE}?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: "${REDIS_PASSWORD}" + minIdle: 5 + maxIdle: 30 + maxActive: 5000 + idleTimeout: "60s" + ClientName: "WorkerCache" + +# ---------- RabbitMQ ---------- +rabbitmq: + enabled: true + dsn: "amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@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" + dsn: "${TDENGINE_USER}:${TDENGINE_PASSWORD}@ws(${TDENGINE_HOST}:${TDENGINE_PORT})/" + # dbName 只是连接池键名与兜底值,不决定实际访问哪个库 + dbName: "${TDENGINE_DAILY_DB}" + dailyDbName: "${TDENGINE_DAILY_DB}" + monthlyDbName: "${TDENGINE_MONTHLY_DB}" + maxOpenConns: 100 + maxIdleConns: 10 + +# ---------- 上游服务地址 ---------- +upstream: + proxy: + address: "upstream-proxy:8510" + # 异步提交协议版本,保持默认 + apnAsyncProtocolVersion: 1 + timeout: 10s diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..51ea11f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,397 @@ +name: iotlcm + +# ============================================================ +# IotLCM 单机部署编排 +# +# 快速开始: +# 1. cp .env.example .env # 填写镜像仓库与各项口令 +# 2. cp -r config.example config # 逐份填写配置(见各文件内注释) +# 3. docker compose up -d +# +# 首次启动会自动建库并导入 schema(见 schema/README.md)。 +# +# 可选服务(默认不启动): +# docker compose --profile with-mock up -d # 运营商接口挡板 +# docker compose --profile with-nginx up -d # 自带反向代理 +# ============================================================ + +services: + # ---------------- 基础组件 ---------------- + mysql: + image: '${REGISTRY:-your-registry}/library/mysql:8.0' + container_name: iotlcm-mysql + restart: always + ports: + - "${MYSQL_PORT:-3306}:3306" + environment: + MYSQL_ROOT_PASSWORD: '${MYSQL_ROOT_PASSWORD:?必须在 .env 中设置}' + MYSQL_DATABASE: '${MYSQL_DATABASE:-db_iotlcm}' + MYSQL_APP_PASSWORD: '${MYSQL_APP_PASSWORD:?必须在 .env 中设置}' + MYSQL_ADMIN_PASSWORD: '${MYSQL_ADMIN_PASSWORD:?必须在 .env 中设置}' + TZ: '${TZ:-Asia/Shanghai}' + volumes: + - ./data/mysql:/var/lib/mysql + # 仅在 data/mysql 为空(首次启动)时执行,按文件名顺序 + - ./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", "mysqladmin", "ping", "-h", "127.0.0.1", "-p${MYSQL_ROOT_PASSWORD}"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 40s + + redis: + image: '${REGISTRY:-your-registry}/library/redis:7.2' + container_name: iotlcm-redis + restart: always + ports: + - "${REDIS_PORT:-6379}:6379" + environment: + TZ: '${TZ:-Asia/Shanghai}' + command: + - redis-server + - --requirepass + - '${REDIS_PASSWORD:?必须在 .env 中设置}' + - --appendonly + - "yes" + volumes: + - ./data/redis:/data + networks: + - iotlcm-network + healthcheck: + test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"] + interval: 10s + timeout: 5s + retries: 5 + + rabbitmq: + image: '${REGISTRY:-your-registry}/library/rabbitmq:4.3.5-management' + container_name: iotlcm-rabbitmq + hostname: rabbitmq + restart: always + ports: + - "${RABBITMQ_PORT:-5672}:5672" + - "${RABBITMQ_MGMT_PORT:-15672}:15672" + environment: + RABBITMQ_DEFAULT_USER: '${RABBITMQ_USER:-iotlcm}' + RABBITMQ_DEFAULT_PASS: '${RABBITMQ_PASSWORD:?必须在 .env 中设置}' + TZ: '${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 + + consul: + image: '${REGISTRY:-your-registry}/library/consul:1.22' + container_name: iotlcm-consul + restart: always + ports: + - "${CONSUL_PORT:-8500}:8500" + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-admin-svr:${TAG:-latest}' + container_name: iotlcm-admin-svr + restart: always + ports: + - "127.0.0.1:${ADMIN_SVR_PORT:-8008}:8008" + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-admin-ui:${TAG:-latest}' + container_name: iotlcm-admin-ui + restart: always + ports: + - "127.0.0.1:${ADMIN_UI_PORT:-8009}:80" + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-openapi:${TAG:-latest}' + container_name: iotlcm-openapi + restart: always + ports: + - "127.0.0.1:${OPENAPI_PORT:-8000}:8000" + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-upstream-chan:${TAG:-latest}' + container_name: iotlcm-upstream-chan + restart: always + ports: + - "${CHAN_HTTP_PORT:-8110}:8110" + - "${CHAN_GRPC_PORT:-8310}:8310" + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-upstream-proxy:${TAG:-latest}' + container_name: iotlcm-upstream-proxy + restart: always + ports: + - "${PROXY_PORT:-8510}:8510" + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-worker-svr:${TAG:-latest}' + container_name: iotlcm-worker-svr + restart: always + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-app-server:${TAG:-latest}' + container_name: iotlcm-app-server + restart: always + ports: + - "127.0.0.1:${APP_SERVER_PORT:-8010}:8010" + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-app-web:${TAG:-latest}' + container_name: iotlcm-app-web + restart: always + ports: + - "127.0.0.1:${APP_WEB_PORT:-8018}:80" + environment: + TZ: '${TZ:-Asia/Shanghai}' + volumes: + - ./data/logs/app-web:/var/log/nginx + networks: + - iotlcm-network + + sms: + image: '${REGISTRY:-your-registry}/iotlcm/iotlcm-sms:${TAG:-latest}' + container_name: iotlcm-sms + hostname: iotlcm-sms + restart: always + environment: + TZ: '${TZ:-Asia/Shanghai}' + HTTP_ADDR: ':11190' + GRPC_ADDR: ':11200' + ports: + - "${SMS_HTTP_PORT:-11190}:11190" + - "${SMS_GRPC_PORT:-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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-bot:${TAG:-latest}' + container_name: iotlcm-bot + restart: unless-stopped + environment: + TZ: '${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: '${REGISTRY:-your-registry}/iotlcm/iotlcm-docs:${TAG:-latest}' + container_name: iotlcm-docs + restart: unless-stopped + ports: + - "127.0.0.1:${DOCS_PORT:-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.example/upstream-chan 已预置该地址) + onelink-mock: + image: '${REGISTRY:-your-registry}/iotlcm/iotlcm-onelink-mock:${TAG:-latest}' + container_name: iotlcm-onelink-mock + restart: unless-stopped + ports: + - "127.0.0.1:${MOCK_PORT:-8080}:8080" + environment: + TZ: '${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.example/nginx/iotlcm.conf 把 location 段落到宿主机配置。 + nginx: + image: '${REGISTRY:-your-registry}/library/nginx:1.30' + container_name: iotlcm-nginx + restart: always + ports: + - "${NGINX_HTTP_PORT:-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/schema/01-schema.sql b/schema/01-schema.sql new file mode 100644 index 0000000..f4d0bf7 --- /dev/null +++ b/schema/01-schema.sql @@ -0,0 +1,4155 @@ +-- ============================================ +-- 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,''), +(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,'15888888222','xxx@qq.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 L * ?',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','管理组','15888888888','示例企业有限公司','','','多租户通用后台管理管理系统','','备注',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','李先生','18600000000','示例企业','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'); + +INSERT INTO `sys_social` (`id`, `user_id`, `tenant_id`, `auth_id`, `source`, `open_id`, `user_name`, `nick_name`, `email`, `avatar`, `access_token`, `expire_in`, `refresh_token`, `access_code`, `union_id`, `scope`, `token_type`, `id_token`, `mac_algorithm`, `mac_key`, `code`, `oauth_token`, `oauth_token_secret`, `created_dept`, `created_by`, `created_at`, `updated_by`, `updated_at`, `deleted_by`, `deleted_at`) VALUES +(1,60,'000000','wechat_mp:oWvGO7SkEur8Tb9TTYyl2aKMWdPg','wechat_mp','oWvGO7SkEur8Tb9TTYyl2aKMWdPg','user06','示例用户06','','','oWvGO7SkEur8Tb9TTYyl2aKMWdPg',NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,117,60,'2026-07-17 16:59:11',60,'2026-07-22 10:33:31',NULL,NULL), +(2,87,'000000','wechat_mp:oWvGO7SkEur8Tb9TTYyl2aKMWdPg','wechat_mp','oWvGO7SkEur8Tb9TTYyl2aKMWdPg','18816314697','appuser006','','/static/images/default-avatar.png','oWvGO7SkEur8Tb9TTYyl2aKMWdPg',NULL,NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,147,87,'2026-07-31 18:38:39',87,'2026-07-31 18:38:55',NULL,NULL); + +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; \ No newline at end of file diff --git a/schema/02-schema-fix-preview1.sql b/schema/02-schema-fix-preview1.sql new file mode 100644 index 0000000..1d4b3c0 --- /dev/null +++ b/schema/02-schema-fix-preview1.sql @@ -0,0 +1,116 @@ +-- ============================================ +-- 演示环境种子库结构补齐(2026-10-16) +-- 背景:mysql-init/01-schema.sql 源自 db_iotlcm_init.sql(较旧), +-- 与当前业务镜像期望的 schema 存在差异,导致 app-server 后台任务 +-- 报 `Unknown column 'source_channel'` 等错误。 +-- 依据:以预演1(内网环境)的 db_iotlcm 为基准逐列比对得出。 +-- 差异:缺 1 张表(card_channel_assoc)+ 27 列(分布 8 张表)。 +-- +-- ⚠️ MySQL 8.0 不支持 `ALTER TABLE ... ADD COLUMN IF NOT EXISTS`(MariaDB 语法), +-- 因此用存储过程按 information_schema 判断后动态执行,保证幂等、可重复运行。 +-- +-- 执行顺序:01-schema.sql → 本文件(按文件名排序,02-)。 +-- ============================================ + +SET NAMES utf8mb4; +USE `db_iotlcm`; + +-- ---------- 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'; diff --git a/schema/03-schema-align-prod.sql b/schema/03-schema-align-prod.sql new file mode 100644 index 0000000..2b5e1c1 --- /dev/null +++ b/schema/03-schema-align-prod.sql @@ -0,0 +1,42 @@ +-- ============================================ +-- 演示环境种子库 —— 按生产基准补齐(2026-10-27) +-- 基准:生产 生产环境/db_iotlcm(89 表) +-- 受检:演示 内网环境 演示库容器/db_iotlcm(88 表) +-- +-- 经 DBX 直连生产 + 演示端逐列比对(列名/类型/可空/默认/extra),确认实际差异仅 2 处: +-- 1. 缺表 t_sms_template_config(11 列,生产新增的短信场景模板配置) +-- 2. 两处 batch_no 默认值:种子库 DEFAULT '',生产无默认值 +-- +-- 说明:此前误报的 batch_detail 缺 id 列 / t_sim_channels 两列可空性差异, +-- 均为 shell 管道首行丢失 + MD5 签名受表级 collation 影响的假象,已排除。 +-- 88 张同名表中 86 张列定义与生产完全一致。 +-- +-- 幂等:可重复执行。 +-- 执行顺序:02-schema-fix-preview1.sql 之后(03-);可与 02 互换,两者互补不重叠。 +-- ============================================ + +SET NAMES utf8mb4; +USE `db_iotlcm`; + +-- ---------- 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 '批次号'; diff --git a/schema/04-users.sh b/schema/04-users.sh new file mode 100755 index 0000000..e47f2ae --- /dev/null +++ b/schema/04-users.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# ============================================================ +# 业务数据库账号与附加库 +# 由 MySQL 容器 docker-entrypoint-initdb.d 在首次启动时执行。 +# +# 为什么用 .sh 而不是 .sql: +# MySQL 官方镜像的 initdb 脚本无法在 SQL 里读环境变量, +# 而账号口令必须从 .env 注入,不能写死在仓库里。 +# ============================================================ +set -euo pipefail + +if [ -z "${MYSQL_APP_PASSWORD:-}" ]; then + echo "[initdb] 错误:未设置 MYSQL_APP_PASSWORD" >&2 + exit 1 +fi + +mysql --protocol=socket -uroot -p"${MYSQL_ROOT_PASSWORD}" <&2 + exit 1 +fi + +PWD_MD5=$(printf '%s' "$MYSQL_ADMIN_PASSWORD" | md5sum | awk '{print $1}') + +# 逐个账号按其自身 salt 计算哈希(salt 每行不同) +mysql --protocol=socket -uroot -p"${MYSQL_ROOT_PASSWORD}" <','>',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); diff --git a/schema/08-seed-mock-channel.sql b/schema/08-seed-mock-channel.sql new file mode 100644 index 0000000..db2280a --- /dev/null +++ b/schema/08-seed-mock-channel.sql @@ -0,0 +1,52 @@ +-- ============================================ +-- 演示环境种子数据:Mock 通道(2026-10-27) +-- 来源:旧演示机 .160 的 t_sim_channels(该库唯一一条通道记录) +-- +-- 为什么必须有: +-- 种子库 01-schema.sql 只含 t_sim_channels 的建表语句、没有数据, +-- 但 t_sim_card_info(100 张) 与 t_sim_card_stock(50100 张) 的 chan_key +-- 全部指向 channel_yd_mock。通道缺失会让卡片管理页的通道列、按通道筛选、 +-- 以及开卡/停复机等依赖通道的操作全部异常。 +-- +-- 上游走 Mock(http://onelink-mock:8080/),不消耗真实运营商流量。 +-- +-- 幂等:以 (tenant_id, chan_key) 唯一键做 ON DUPLICATE KEY UPDATE。 +-- 执行顺序:08(在 01-07 之后) +-- ============================================ + +SET NAMES utf8mb4; +USE `db_iotlcm`; + +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,1,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`); diff --git a/schema/09-seed-role-chain.sql b/schema/09-seed-role-chain.sql new file mode 100644 index 0000000..1b2997f --- /dev/null +++ b/schema/09-seed-role-chain.sql @@ -0,0 +1,77 @@ +-- ============================================ +-- 演示环境:模板参数与生产旧版本的下发标记(2026-10-27) +-- +-- 版本依据:生产环境 当前运行 admin 镜像 db11766c..., +-- 二进制 CommitID=cad19df988a0;演示环境镜像及程序 SHA256 与生产一致。 +-- 不以浮动 tag、master HEAD 或历史发布记录代替实际运行版本。 +-- +-- cad19df 的 passRoleByDept(agent_dept.go:496): +-- 仅“当前机构 == 模板机构”走平台模板;其他机构仍查本级唯一 +-- status=0 / is_pass=1 角色,即使已经配置平台模板也是如此。 +-- 因此只配置 agent.role.template.role_id 不能解决代理建下级报错。 +-- +-- 本文件: +-- 1. 修正现有 role 2 的模板属性,并写入唯一的演示模板参数。 +-- 2. 若测试库已有 dept 172 → role 82,则为该现有角色设置 is_pass=1。 +-- 不创建角色、机构或账号,不改菜单和 sys_dept.dept_role。 +-- 全新库没有 role 82 时跳过;它是测试期间创建的一级代理角色。 +-- +-- 限制:cad19df 的 createEnterpriseRole 仍将新角色 IsPass 写为 0。 +-- 新建机构继续创建下级前,仍需配置本机构唯一的下发角色; +-- 此 SQL 不是多级下发代码修复,不代表新建三级及以后均已通过验收。 +-- 不自动补建业务方故意删除的 dept 2/4/5/6/7 角色。 +-- +-- sys_config 无 (tenant_id, config_key) 唯一索引,故先删后插,避免重复。 +-- 种子 SQL 仍处于实测阶段,业务基准向预演看齐;运行代码遵从生产版本。 +-- 执行顺序:01-08 之后;可重复执行。 +-- ============================================ + +SET NAMES utf8mb4; +USE `db_iotlcm`; +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`; diff --git a/schema/10-seed-jobs.sql b/schema/10-seed-jobs.sql new file mode 100644 index 0000000..7356dca --- /dev/null +++ b/schema/10-seed-jobs.sql @@ -0,0 +1,73 @@ +-- ============================================ +-- 演示环境种子数据:定时任务(2026-10-27) +-- +-- 基准:生产 生产环境 的 sys_job 当前配置(可直连核对)。 +-- 预演环境本机不可达(内网环境 / 内网环境 均 No route to host), +-- 故以生产实际值为准;若业务要求以预演为基准,需提供预演库访问方式后再比对。 +-- +-- 演示原状(15 条可见)与生产的差异: +-- 1) 缺 25 / 41 / 42 三个队列全量同步任务 +-- 2) job_group 除 9 外全为 0(默认),生产已按 +-- sys_job_group 字典分配到 卡数据4 / 预警3 / 财务5 / 流量池6 / 卡管控7 / 套餐8 / 测试9 +-- 3) 9/10/11/12 的 cron 是错峰前的旧值,生产已改为 +-- 0 0 2 * * ? / 0 0 2 * * ? / 0 40 8 1 * ? / 0 25 6 * * ? +-- 4) 任务名是旧版带前缀写法,生产已重命名 +-- 5) job 17 的 cron 含反引号 `0 */15 * * * ?`,不是合法表达式 +-- 6) job_params 生产为空,演示残留 2026-07 / 117 等历史参数 +-- +-- 本文件:清掉 1-8 测试垃圾行,按生产当前配置重建 9-25/41/42 共 19 条。 +-- 字段(名称/分组/调用目标/cron/misfire/concurrent/remark)与生产逐条一致。 +-- +-- 运行状态与生产不同(有意为之): +-- 生产启用 11/12/25/41/42 五个同步任务;演示环境全部置 status=1(停用)。 +-- 演示上游走 Mock、库内 5 万余张卡,若自动跑全量同步会持续打 mock 服务并占满 +-- 这台 2vCPU/8GB 演示机。若演示确需展示任务执行,请只临时启用单个任务 +-- (建议 13 测试-全量预警扫描),用完再停用。 +-- +-- 幂等:先删后插,可重复执行。执行顺序:09 之后。 +-- ============================================ + +SET NAMES utf8mb4; +USE `db_iotlcm`; + +-- 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 L * ?', 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`; diff --git a/schema/11-seed-menu-align-prod.sql b/schema/11-seed-menu-align-prod.sql new file mode 100644 index 0000000..a9253a8 --- /dev/null +++ b/schema/11-seed-menu-align-prod.sql @@ -0,0 +1,72 @@ +-- ============================================ +-- 演示环境种子数据:sys_menu 与生产全量对齐(2026-10-27) +-- +-- 背景:演示库 sys_menu 420 条,生产 459 条,缺 27 条增量(生产有、演示无), +-- 反向差异 0 条(演示无多余菜单)。缺的包括: +-- · 达量断网 4 个按钮权限(excel:template / excel:submit / range:submit / input:submit) +-- —— 这是"达量断网页面按钮点了 403 / 看不到功能"的直接原因 +-- · 全量同步页(fullSyncRuns:view/failures/start/replay/replay:view)5 条 +-- · 订单模块(订单目录 + 管理员订单 + 销售订单列表)3 条 +-- · 文档中心(含 Web 手册 / OpenAPI 文档)3 条 +-- · 财务/流量池/通道/销户等按钮权限 12 条 +-- +-- 方法:以 perms 为语义键做比对(perms 为空时用 menu_type+menu_name), +-- 生产 ID 与演示 ID 体系不同,故新建菜单占用演示 421-447 段, +-- 父级按语义递归解析到演示现有菜单(0 个悬空)。 +-- +-- 结果:演示 447 条;与生产逐条比对 —— 缺 0 条、多余 0 条。 +-- 数量差 12 = 演示独有的 5 条租户按钮(system:tenant:*) +-- + 生产侧 7 条同 perms 的重复菜单(语义键去重后合并) +-- +-- 角色绑定:演示仅 5 个角色,新菜单绑到 2/82/88(原有的全量绑定角色), +-- 与它们各自 190 条的绑定模式一致;role 3/4 是限定角色,不绑。 +-- +-- 前置知识:超管(role 1) 的菜单可见性走代码分支直接返回全部 status=0 菜单; +-- 但接口鉴权的 accessCodeList 仍需 sys_role_menu 里有该菜单, +-- 否则 normalizeMenuAccessCodes 拿不到 perms → 按钮/功能 403。 +-- +-- 幂等:先删后插,可重复执行。执行顺序:10 之后(11-)。 +-- ============================================ + +SET NAMES utf8mb4; +USE `db_iotlcm`; + +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,'','/','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; diff --git a/schema/12-repair-dept-ancestors.sql b/schema/12-repair-dept-ancestors.sql new file mode 100644 index 0000000..826d4f7 --- /dev/null +++ b/schema/12-repair-dept-ancestors.sql @@ -0,0 +1,70 @@ +-- ============================================ +-- 演示环境数据修复:sys_dept.ancestors 尾逗号归一化(2026-10-27) +-- +-- 症状:一级代理账号在「业务受理 → 卡片划拨」里选不到下级(下拉“暂无数据”)。 +-- +-- 根因(两处代码缺陷,见 hotfix/dept-ancestors-20261027): +-- 1) 写入端 `agent_dept.go childDeptAncestors` 生成 "0,1,172"(缺尾逗号), +-- 与平台约定格式 "0,1,172," 不一致; +-- 2) 匹配端 `xgorm/handler/filter_auth.go GetDeptAndSub` 只按 '%,id,%' 匹配, +-- 缺尾逗号时匹配不到,于是「本机构及以下」数据范围里没有下级, +-- 卡片划拨的 targets 接口(parent_id = 当前机构 + 数据权限过滤)返回空。 +-- +-- 本文件只修数据:按父子链重算 ancestors,统一为「以逗号结尾」的平台格式。 +-- 已创建的机构(如 dept 206「二级代理」= '0,1,172')会被修正为 '0,1,172,'。 +-- +-- 状态(2026-10-27 更新):**两端代码修复已上线** +-- admin-svr `6e3253c`(tag v1.0.3)已规范部署到演示与生产,写入端不再产生缺尾逗号。 +-- 因此: +-- · 对**全新种子库**:无脏数据,本文件为空操作(保留仅为对称与可追溯); +-- · 对**既有库**:仍可用于修复历史上已写坏的 ancestors(幂等,可随时重跑)。 +-- 代码修复见 wiki `projects/iotlcm-deploy/references/dept-ancestors-hotfix-20261027`。 +-- +-- 执行顺序:11 之后(12-)。 +-- +-- 幂等:可重复执行。MySQL 8.0 递归 CTE + 中转表(避免 1093 自表更新限制)。 +-- 注:递归 CTE 的列宽取自非递归部分,必须 CAST,否则 CONCAT 结果报 1406。 +-- ============================================ + +SET NAMES utf8mb4; +USE `db_iotlcm`; + +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`; diff --git a/schema/README.md b/schema/README.md new file mode 100644 index 0000000..667ac62 --- /dev/null +++ b/schema/README.md @@ -0,0 +1,94 @@ +# 数据库初始化脚本 + +MySQL 容器**首次以空数据卷启动**时,`docker-entrypoint-initdb.d` 会按**文件名顺序**自动执行本目录下的脚本。 + +改了这些文件必须清空数据卷才会重跑: + +```bash +docker compose stop mysql +sudo rm -rf ./data/mysql +docker compose up -d mysql +``` + +> ⚠️ 清空 `./data/mysql` 会**删除全部数据**,生产环境不要执行。 + +## 执行顺序 + +按「结构 → 账号 → 种子数据」三阶段编号,文件名顺序即执行顺序。除 01 外全部幂等,可重复执行。 + +| 序号 | 文件 | 内容 | +| --- | --- | --- | +| 01 | `01-schema.sql` | 建 `db_iotlcm` 库 + 全部表结构 + 基础数据(菜单、字典、角色、租户、演示账号)。自包含:`DROP DATABASE` → `CREATE` → `USE` | +| 02 | `02-schema-fix-preview1.sql` | 补 `card_channel_assoc` 表 + 27 列。用存储过程按 `information_schema` 判断,规避 MySQL 8 无 `ADD COLUMN IF NOT EXISTS` | +| 03 | `03-schema-align-prod.sql` | 补 `t_sms_template_config` 表 + 修正 `batch_no` 默认值 | +| 04 | `04-users.sh` | 建应用账号 `u_iotlcm`(口令取自 `MYSQL_APP_PASSWORD`)+ 可选库 `iotdb` | +| 05 | `05-reset-passwords.sh` | 把所有种子账号口令重置为 `MYSQL_ADMIN_PASSWORD`(按各账号自身 salt 重算哈希) | +| 06 | `06-seed-channel-templates.sql` | 通道模板 23 条(上游密钥已置空) | +| 07 | `07-seed-dict.sql` | 数据字典:`sys_dict_type` 86 类 + `sys_dict_data` 435 条 | +| 08 | `08-seed-mock-channel.sql` | **Mock 通道 `channel_yd_mock`**。演示卡全部挂在该通道上,缺则卡片管理的通道列、筛选、开停复机均不可用 | +| 09 | `09-seed-role-chain.sql` | 代理下发模板参数 + 角色下发标记 | +| 10 | `10-seed-jobs.sql` | 定时任务 19 条,**默认全部停用**(避免自动全量同步压满机器) | +| 11 | `11-seed-menu-align-prod.sql` | 菜单增量 27 条(含达量断网按钮权限、全量同步页) | +| 12 | `12-repair-dept-ancestors.sql` | `sys_dept.ancestors` 尾逗号归一化。全新库为空操作,仅用于修复既有库脏数据 | + +## 种子数据说明 + +### 保留的内容(业务必需) + +- **菜单** `sys_menu`:系统导航与按钮权限 +- **字典** `sys_dict_type` / `sys_dict_data`:全部业务枚举 +- **角色** `sys_role` / `sys_role_menu` / `sys_role_dept`:超级管理员、M管理员、M用户、终端用户 +- **租户与部门** `sys_tenant` / `sys_dept`:企业-代理-部门三层结构 +- **接口权限** `t_api` / `t_api_group` / `t_api_resource`:OpenAPI 权限模型 +- **通道模板** `t_sim_channel_template`:运营商通道配置模板 +- **行政区划** `t_division_code`:省市级 +- **演示账号** `sys_user` 18 个:覆盖管理员、代理、终端用户等角色,出库与划拨流程依赖这张表与部门树的关联 + +### 已脱敏的内容 + +| 项 | 处理 | +| --- | --- | +| 账号昵称 | `示例用户01` ~ `示例用户18` | +| 邮箱 | `user01@example.com` ~ `user18@example.com` | +| 手机号 | 合法 11 位编造号(`1380000` + 4 位序号,保持互异) | +| 登录 IP | 清空 | +| 头像地址 | 清空 | +| 公司名 / 组织名 | `示例企业` / `示例代理` | +| 密码哈希 | 初始化时按 `MYSQL_ADMIN_PASSWORD` 重算 | +| 通道密钥 | 置空 | + +### 空表(正常) + +以下表在种子库中为空,属预期状态: + +| 表 | 说明 | +| --- | --- | +| `t_sim_flow_package_info` | 流量套餐。为空时无法办理套餐/续费/改套餐,需自行在后台「套餐定价」中创建 | +| `t_sim_card` | 卡数据。可通过挡板服务的造卡接口生成测试卡 | +| `t_sim_channels` | 业务通道。Mock 通道由 `08` 脚本插入 | +| 其余 `t_*` 业务表 | 均为空,随业务操作产生数据 | + +## 首次登录 + +| 项 | 值 | +| --- | --- | +| 地址 | `http://<宿主机IP><:ADMIN_UI_PORT>` | +| 账号 | `admin` | +| 口令 | `.env` 里的 `MYSQL_ADMIN_PASSWORD` | + +其余演示账号的登录名见 `sys_user.user_name`,口令同为 `MYSQL_ADMIN_PASSWORD`。**所有账号登录后请立即修改口令。** + +## 手动执行 + +容器已启动后需要单独执行某个脚本: + +```bash +docker compose exec -T mysql sh -c \ + 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" db_iotlcm' < schema/07-seed-dict.sql +``` + +`.sh` 脚本需要环境变量,在容器内执行: + +```bash +docker compose exec mysql bash /docker-entrypoint-initdb.d/04-users.sh +```