chore: 初始开源发布
iotlcm-admin-svr:管理后台服务。 - Go module:iotlcm → git.5iot.com/iotlcm-public/iotlcm-admin-svr(729 文件) - 凭据与地址脱敏:JWT signingKey(含代码里的 MustGet 默认值)、 MySQL DSN、Redis 口令、告警邮件发件人邮箱全部改为占位; 私网 IP → 文档地址段;库名 xiujie_admin → iotlcm - 真实手机号/邮箱 → 合法 11 位编造号 / example.com - 移除内部资产:CI 触发器、过时 DDL(sql/db_iotlcm.sql)、 私有依赖 go get 行、明文 registry 登录口令 - 启动 banner 统一 IOTLCM 方块字 + 社区惯例署名 - Dockerfile 改用公共基础镜像 - 拼错的 RADEME.md → README.md,README 重写 - 需要真实数据库的用例改为可用 IOTLCM_TEST_WITH_DB=1 显式启用 - 补 Apache-2.0 LICENSE,LF 行尾 + .gitattributes 数据库 schema 不随本仓发布(生产 DDL 已过时),README 已说明。
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
-- card_channel_assoc.channel_id historically mixed primary IDs and numeric channel keys.
|
||||
-- Store the actual t_sim_channels.chan_key so every environment resolves associations identically.
|
||||
ALTER TABLE `card_channel_assoc`
|
||||
MODIFY COLUMN `channel_id` VARCHAR(64) NOT NULL COMMENT '通道编号';
|
||||
@@ -0,0 +1,4 @@
|
||||
-- Keep cards offline across billing cycles only after a successful traffic-cutoff action.
|
||||
ALTER TABLE `t_sim_card_info`
|
||||
ADD COLUMN `traffic_cutoff_cross_month_hold` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '达量断网跨月保持:0否,1是' AFTER `traffic_cutoff_threshold`,
|
||||
ADD COLUMN `traffic_cutoff_triggered_at` DATETIME NULL DEFAULT NULL COMMENT '最近一次达量断网成功时间' AFTER `traffic_cutoff_cross_month_hold`;
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE `sys_role`
|
||||
ADD COLUMN `source_role_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '下发角色来源角色ID' AFTER `is_pass`,
|
||||
ADD COLUMN `source_dept_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '下发角色来源组织ID' AFTER `source_role_id`;
|
||||
|
||||
CREATE INDEX `idx_sys_role_source_role_id` ON `sys_role` (`source_role_id`);
|
||||
@@ -0,0 +1,26 @@
|
||||
CREATE TEMPORARY TABLE `tmp_agent_role_source_map` AS
|
||||
SELECT `tenant_id`, `dept_id`, MIN(`role_id`) AS `source_role_id`
|
||||
FROM `sys_role`
|
||||
WHERE `is_pass` = 1 AND `deleted_at` IS NULL
|
||||
GROUP BY `tenant_id`, `dept_id`
|
||||
HAVING COUNT(*) = 1;
|
||||
|
||||
UPDATE `sys_role` AS `child_role`
|
||||
JOIN `sys_dept` AS `child_dept`
|
||||
ON `child_dept`.`dept_id` = `child_role`.`dept_id`
|
||||
AND `child_dept`.`tenant_id` = `child_role`.`tenant_id`
|
||||
AND `child_dept`.`dept_role` = `child_role`.`role_id`
|
||||
AND `child_dept`.`dept_type` = 1
|
||||
JOIN `tmp_agent_role_source_map` AS `source_map`
|
||||
ON `source_map`.`tenant_id` = `child_dept`.`tenant_id`
|
||||
AND `source_map`.`dept_id` = `child_dept`.`parent_id`
|
||||
JOIN `sys_role` AS `source_role` ON `source_role`.`role_id` = `source_map`.`source_role_id`
|
||||
SET
|
||||
`child_role`.`source_role_id` = `source_role`.`role_id`,
|
||||
`child_role`.`source_dept_id` = `source_role`.`dept_id`
|
||||
WHERE `child_role`.`source_role_id` = 0
|
||||
AND `child_role`.`created_dept` = `source_role`.`dept_id`
|
||||
AND `child_role`.`role_key` = `source_role`.`role_key`
|
||||
AND `child_role`.`deleted_at` IS NULL;
|
||||
|
||||
DROP TEMPORARY TABLE `tmp_agent_role_source_map`;
|
||||
@@ -0,0 +1,6 @@
|
||||
-- Support the 15-minute traffic-cutoff threshold scan and cross-month reapply scan.
|
||||
ALTER TABLE `t_sim_card_info`
|
||||
ADD INDEX `idx_card_traffic_cutoff_threshold_scan`
|
||||
(`traffic_cutoff_status`, `data_service_status`, `package_status`, `boss_card_status`, `is_flow_pool`, `id`),
|
||||
ADD INDEX `idx_card_traffic_cutoff_hold_scan`
|
||||
(`traffic_cutoff_status`, `traffic_cutoff_cross_month_hold`, `traffic_cutoff_triggered_at`, `data_service_status`, `id`);
|
||||
@@ -0,0 +1,40 @@
|
||||
-- 批次来源方式:4=定时任务。
|
||||
-- 自动达量断网批次由 check_traffic_cutoff 定时任务创建,历史批次通过稳定的批次号前缀和备注识别。
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`tenant_id`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`,
|
||||
`is_default`, `created_dept`, `created_by`, `created_at`, `remark`
|
||||
)
|
||||
SELECT '000000', 4, '定时任务', '4', 't_batch_source_type', '', 'warning', 'N', 100, 1, NOW(),
|
||||
'由系统定时任务自动创建的批次'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `sys_dict_data`
|
||||
WHERE `tenant_id` = '000000'
|
||||
AND `dict_type` = 't_batch_source_type'
|
||||
AND `dict_value` = '4'
|
||||
);
|
||||
|
||||
UPDATE `sys_dict_data`
|
||||
SET `dict_sort` = 4,
|
||||
`dict_label` = '定时任务',
|
||||
`list_class` = 'warning',
|
||||
`remark` = '由系统定时任务自动创建的批次',
|
||||
`updated_at` = NOW(),
|
||||
`updated_by` = 1
|
||||
WHERE `tenant_id` = '000000'
|
||||
AND `dict_type` = 't_batch_source_type'
|
||||
AND `dict_value` = '4';
|
||||
|
||||
UPDATE `sys_dict_type`
|
||||
SET `remark` = '0:批次选择\n1:连号\n2:批量输入\n3:文件\n4:定时任务',
|
||||
`updated_at` = NOW(),
|
||||
`updated_by` = 1
|
||||
WHERE `tenant_id` = '000000'
|
||||
AND `dict_type` = 't_batch_source_type';
|
||||
|
||||
UPDATE `batch_main`
|
||||
SET `source_type` = 4
|
||||
WHERE `source_type` = 0
|
||||
AND `batch_type` = 107
|
||||
AND `batch_no` LIKE 'DCT%'
|
||||
AND JSON_UNQUOTE(JSON_EXTRACT(`batch_info`, '$.remark')) LIKE '达量断网自动触发%';
|
||||
@@ -0,0 +1,12 @@
|
||||
-- 执行日志元数据:仅新增两列,不回填、不重建表。
|
||||
-- 部署前确认库、备份、同名字段和DDL维护窗口。
|
||||
-- 旧写入端兼容legacy/0;应用新版本依赖此结构,先迁移再部署。
|
||||
-- 此脚本尚未在开发、预演或生产数据库执行。
|
||||
ALTER TABLE batch_main
|
||||
ADD COLUMN source_channel VARCHAR(24) NOT NULL DEFAULT 'legacy'
|
||||
COMMENT '发起渠道:console/mini_program/api/system/legacy',
|
||||
ADD COLUMN execution_mode TINYINT UNSIGNED NOT NULL DEFAULT 0
|
||||
COMMENT '操作规模:0未知1单卡2批量';
|
||||
|
||||
-- 不自动创建索引:按目标表已有索引和查询EXPLAIN确认。
|
||||
-- 不自动回填:历史来源必须有可验证证据,不能按数量推断单卡。
|
||||
Reference in New Issue
Block a user