build / build-push (push) Successful in 59s
- 三表 ub_custom_dept_category/ub_custom_department/ub_custom_department_member(DDL 入 service/sql,160 待人工执行) - 实体/仓库/服务:学校隔离(AccessScopeService 新增 requireSchoolInScope/resolveWritableSchoolId)、 del_marker=id 软删让位 uk、成员=本校教职工黑名单口径(排除学生组 type=8 与禁用账号) - 管理端 /api/deptcategory、/api/customdept 共 17 端点(含 CandidateUsers 候选口) - 开放端 /oapi/departments 四口:目录/分类/resolve-batch/成员(scope 缺省=select 严档), 应用×学校授权走 sys_group_app_rel(仅验签不放行跨校) - SysGroupService.changeIncludeChildren 补学校组类型校验 - 新增单测 83 例全绿(部门26/分类12/目录25/schoolguard12/includeChildren8)
39 lines
2.3 KiB
SQL
39 lines
2.3 KiB
SQL
-- =====================================================================
|
||
-- 部门管理 ·「包含子组」落库(方案:部门管理-包含子组落库方案.md)
|
||
-- sys_group 增列 include_children:学校节点上的一个开关,
|
||
-- 1 = 部门列表连同下级部门一起列出(默认)/ 0 = 只列一级部门
|
||
-- 交付文件,不在本机执行;由人工在 160 执行
|
||
-- 执行前请备份;JPA 实体已同名映射,执行后重启后端即可生效
|
||
-- =====================================================================
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 1. 增列 include_children
|
||
-- 粒度:1 学校 : 1 值,与 status 同为节点自身属性,故直接挂在 sys_group,不另建表
|
||
-- 默认 1:与升级前的页面表现一致,存量学校无需回填
|
||
-- ⚠ application.yml 是 ddl-auto=update,后端先发也会自动加列,但**不带** NOT NULL/DEFAULT/COMMENT,
|
||
-- 存量会留 NULL。因此本脚本建议先执行,保证列定义可控;即使漏执行,前端已按 null = 含子组 兜底
|
||
-- ---------------------------------------------------------------------------
|
||
SET @col := (SELECT COUNT(*) FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME = 'sys_group'
|
||
AND COLUMN_NAME = 'include_children');
|
||
|
||
SET @sql := IF(@col = 0,
|
||
'ALTER TABLE sys_group ADD COLUMN include_children TINYINT(1) NOT NULL DEFAULT 1 COMMENT ''包含子组:1=部门列表含下级部门,0=仅本级'' AFTER status',
|
||
'SELECT ''include_children already exists'' AS msg');
|
||
|
||
PREPARE stmt FROM @sql;
|
||
EXECUTE stmt;
|
||
DEALLOCATE PREPARE stmt;
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 2. 核验(可选)
|
||
-- ---------------------------------------------------------------------------
|
||
-- SHOW COLUMNS FROM sys_group LIKE 'include_children';
|
||
-- SELECT COUNT(*) AS total, SUM(include_children = 1) AS include_on FROM sys_group;
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 回滚(仅当确认不再需要该能力时执行;只加列不改列,代码回滚无需删列)
|
||
-- ---------------------------------------------------------------------------
|
||
-- ALTER TABLE sys_group DROP COLUMN include_children;
|