init: IotLCM 开源版部署仓

内容:
- 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 启动运营商接口挡板,即可在无真实运营商环境时跑通全链路。
This commit is contained in:
MiFaZhan
2026-10-28 13:40:12 +08:00
commit bc2c7bcc6b
26 changed files with 7264 additions and 0 deletions
+42
View File
@@ -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 '批次号';