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:
@@ -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`;
|
||||
Reference in New Issue
Block a user