fix(cms): 修复导航模型为空时导致的空指针异常

- CmsNavigationServiceImpl中增加model非空判断,防止model为null时报错
- 新增cms_model表中“案例(case)”模型数据,避免选择此模型时报错
- 保障后台栏目导航选择case模型时的保存操作正常执行
- 优化saveAsync方法,提升对未知模型的兼容性和稳定性
This commit is contained in:
2026-07-21 01:13:25 +08:00
parent 811e65dbd5
commit 27a178638c
2 changed files with 10 additions and 1 deletions

View File

@@ -0,0 +1,9 @@
-- 栏目模型「案例(case)」补充:解决后台栏目导航选择模型=case 时后端 NPE 报“操作失败”的问题。
-- 后端 CmsNavigationServiceImpl.saveAsync 会按 navigation.getModel() 到 cms_model 查模型信息,
-- 若不存在则 model 为 null随后 model.getSuffix() 抛 NPE。
-- 插入该模型后即可与 page/article/product 行为一致banner/thumb/suffix 可被复用)。
-- 说明saveAsync 已改为 null 安全即使本行未执行case 也能正常保存(仅无 suffix
INSERT INTO cms_model (name, model, component, component_detail, banner, suffix, thumb, show_type, disabled, sort_number, status, deleted, create_time, update_time)
SELECT '案例', 'case', '/pages/case/index.vue', '/pages/case/[id].vue', NULL, NULL, NULL, 20, 0, 40, 0, 0, NOW(), NOW()
WHERE NOT EXISTS (SELECT 1 FROM cms_model WHERE model = 'case');

View File

@@ -102,7 +102,7 @@ public class CmsNavigationServiceImpl extends ServiceImpl<CmsNavigationMapper, C
navigation.setComponent(MessageFormat.format("/pages/{0}/{1}", navigation.getModel(), "[id].vue")); navigation.setComponent(MessageFormat.format("/pages/{0}/{1}", navigation.getModel(), "[id].vue"));
// 1.2自定义文件后缀 // 1.2自定义文件后缀
if(!navigation.getModel().equals("index") && model.getSuffix() != null){ if(!navigation.getModel().equals("index") && model != null && model.getSuffix() != null){
navigation.setPath(navigation.getPath() + model.getSuffix()); navigation.setPath(navigation.getPath() + model.getSuffix());
} }