From 1ac72b23c55cfbb563398854204cc505e92e93e0 Mon Sep 17 00:00:00 2001 From: lzh Date: Wed, 22 Apr 2026 13:48:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(video):=20AI=20=E7=AE=97=E6=B3=95=E9=A2=84?= =?UTF-8?q?=E7=BD=AE=E6=95=B0=E6=8D=AE=20@PostConstruct=20=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E6=97=B6=E6=98=BE=E5=BC=8F=E8=AE=BE=E7=BD=AE=20creato?= =?UTF-8?q?r/updater?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 启动时 initPresetAlgorithms() 在 @PostConstruct 执行,此时无登录上下文: - DefaultDBFieldHandler.insertFill 在 getLoginUserId()==null 时不填充 creator/updater - SQL video_ai_algorithm.creator NOT NULL 约束触发 "Column 'creator' cannot be null" 启动失败 手动设置 creator/updater = "1"(系统用户)作为系统级初始化的占位, 同时 update 分支也显式设置 updater 避免同类问题。 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../video/aiot/service/impl/AiAlgorithmServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/viewsh-module-video/viewsh-module-video-server/src/main/java/com/viewsh/module/video/aiot/service/impl/AiAlgorithmServiceImpl.java b/viewsh-module-video/viewsh-module-video-server/src/main/java/com/viewsh/module/video/aiot/service/impl/AiAlgorithmServiceImpl.java index 993c5bb6..0126d45c 100644 --- a/viewsh-module-video/viewsh-module-video-server/src/main/java/com/viewsh/module/video/aiot/service/impl/AiAlgorithmServiceImpl.java +++ b/viewsh-module-video/viewsh-module-video-server/src/main/java/com/viewsh/module/video/aiot/service/impl/AiAlgorithmServiceImpl.java @@ -54,6 +54,9 @@ public class AiAlgorithmServiceImpl implements IAiAlgorithmService { }); } + /** 系统级初始化使用的 creator/updater,@PostConstruct 无登录上下文时 MP 自动填充会留空 */ + private static final String SYSTEM_USER = "1"; + @PostConstruct public void initPresetAlgorithms() { for (Map.Entry entry : PRESET_ALGORITHMS.entrySet()) { @@ -68,6 +71,8 @@ public class AiAlgorithmServiceImpl implements IAiAlgorithmService { algo.setDescription(vals[2]); algo.setParamSchema(vals[3]); algo.setIsActive(true); + algo.setCreator(SYSTEM_USER); + algo.setUpdater(SYSTEM_USER); algorithmMapper.add(algo); log.info("[AI算法] 初始化预置算法: {}", code); } else { @@ -75,6 +80,7 @@ public class AiAlgorithmServiceImpl implements IAiAlgorithmService { existing.setTargetClass(vals[1]); existing.setDescription(vals[2]); existing.setParamSchema(vals[3]); + existing.setUpdater(SYSTEM_USER); algorithmMapper.updateByCode(existing); log.info("[AI算法] 校正预置算法数据: {}", code); }