feat(W4): 院系子站嵌套路径-cms_site.path列+uk_site_path/parent_code,门户单段+嵌套双映射,旧链301,public_base_url派生,sitePath预览,SQL三处+升级脚本,T-W4-01..15 全绿279/279

This commit is contained in:
chenxing
2026-09-08 12:34:33 +08:00
parent 5da6f7ee5d
commit 536bd6cea4
30 changed files with 593 additions and 55 deletions
@@ -78,6 +78,7 @@ public abstract class CmsIntegrationTestBase {
protected CmsSite persistSite(String code, Integer schId, String name) {
CmsSite site = new CmsSite();
site.setCode(code);
site.setPath(code); // W4:顶层 path=code(与 SiteService.save 口径一致)
site.setSchId(schId);
site.setSchName("学校-" + schId);
site.setName(name);
@@ -89,7 +90,14 @@ public abstract class CmsIntegrationTestBase {
/** 带上级站点的落库(院系子站,《院系子站方案》):parentSiteId 传 null 视为顶层 0 */
protected CmsSite persistSite(String code, Integer schId, String name, Integer parentSiteId) {
CmsSite site = persistSite(code, schId, name);
site.setParentSiteId(parentSiteId == null ? 0 : parentSiteId);
if (parentSiteId == null || parentSiteId == 0) {
site.setParentSiteId(0);
} else {
CmsSite parent = siteRepository.findById(parentSiteId)
.orElseThrow(IllegalStateException::new);
site.setParentSiteId(parentSiteId);
site.setPath(parent.getPath() + "/" + code); // W4:子站 path=父path/code
}
return siteRepository.saveAndFlush(site);
}