Class ServiceSettingsHelper

java.lang.Object
com.bytedesk.kbase.settings_service.ServiceSettingsHelper

@Component public class ServiceSettingsHelper extends Object
ServiceSettings 辅助工具类 提供统一的 FAQ 关联解析方法,避免在多个 Service 中重复代码
  • Field Details

  • Constructor Details

    • ServiceSettingsHelper

      public ServiceSettingsHelper()
  • Method Details

    • updateFaqAssociationsIfPresent

      public void updateFaqAssociationsIfPresent(ServiceSettingsEntity target, ServiceSettingsRequest req)
      根据请求中的 FAQ UID 列表,解析并设置到目标 ServiceSettings 实体。 仅当对应 UID 列表不为 null 才会更新;为 [] 时表示清空;为 null 时保持不变。
      Parameters:
      target - 目标 ServiceSettings 实体(可以是草稿或发布版本)
      req - ServiceSettingsRequest 请求对象
    • resolveFaqs

      public List<FaqEntity> resolveFaqs(List<String> uids)
      将 uid 列表解析为 FaqEntity 列表。忽略无效 uid。
      Parameters:
      uids - FAQ UID 列表
      Returns:
      解析后的 FaqEntity 列表,null 输入返回 null,空列表返回空列表
    • resolveQuickButtons

      public List<QuickButtonEntity> resolveQuickButtons(List<String> uids)
    • copyServiceSettingsProperties

      public void copyServiceSettingsProperties(ServiceSettingsEntity source, ServiceSettingsEntity target)
      复制 ServiceSettings 属性,排除 id/uid/version 与时间字段,并正确处理懒加载的 FAQ 集合。 对于懒加载的 @ManyToMany 集合,BeanUtils.copyProperties 可能复制未初始化的代理对象导致数据丢失。 因此需要在复制前保存集合引用,复制后恢复,确保数据完整性。
      Parameters:
      source - 源 ServiceSettings 实体
      target - 目标 ServiceSettings 实体