zjk
2026-09-24 4c4b36e7337385ff15ff66a0ad487cdffaf9c86b
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/system/service/SystemSettingsAppService.java
@@ -27,6 +27,11 @@
    @Transactional
    public SystemSettingsVO saveCurrent(SystemSettingsSaveRequest request) {
        // 开启时必须提供图片;服务层校验同时覆盖非 HTTP 调用。
        if (Boolean.TRUE.equals(request.getStartupPageEnabled())
                && (request.getStartupPageImageUrl() == null || request.getStartupPageImageUrl().trim().isEmpty())) {
            throw new IllegalArgumentException("开启启动页后,请上传启动页图片");
        }
        SystemSettings config = systemSettingsMapper.selectOne(new LambdaQueryWrapper<SystemSettings>()
                .eq(SystemSettings::getDeleted, 0)
                .orderByDesc(SystemSettings::getId)
@@ -47,6 +52,10 @@
        config.setServiceOnlineTime(request.getServiceOnlineTime().trim());
        config.setBackupCycleDays(request.getBackupCycleDays());
        config.setMemberExpireRemindDays(request.getMemberExpireRemindDays());
        config.setStartupPageEnabled(Boolean.TRUE.equals(request.getStartupPageEnabled()));
        // 空串也会写入,避免 updateById 忽略 null 导致删除图片后仍保留旧值。
        config.setStartupPageImageUrl(request.getStartupPageImageUrl() == null
                ? "" : request.getStartupPageImageUrl().trim());
    }
    private SystemSettingsVO toVO(SystemSettings config) {
@@ -59,6 +68,8 @@
        vo.setServiceOnlineTime(config.getServiceOnlineTime());
        vo.setBackupCycleDays(config.getBackupCycleDays());
        vo.setMemberExpireRemindDays(config.getMemberExpireRemindDays());
        vo.setStartupPageEnabled(Boolean.TRUE.equals(config.getStartupPageEnabled()));
        vo.setStartupPageImageUrl(config.getStartupPageImageUrl());
        return vo;
    }
}