using FreeSql; using LiveForum.IService.Others; using LiveForum.Model; namespace LiveForum.Service.Others { /// /// 系统设置服务实现 /// public class SystemSettingsService : ISystemSettingsService { private readonly IBaseRepository _settingsRepository; /// /// 构造函数 /// public SystemSettingsService(IBaseRepository settingsRepository) { _settingsRepository = settingsRepository; } /// /// 获取配置值 /// public async Task GetSettingAsync(string key) { if (string.IsNullOrWhiteSpace(key)) { return null; } var setting = await _settingsRepository.Select .Where(x => x.SettingKey == key) .FirstAsync(); return setting?.SettingValue; } /// /// 设置配置值 /// public async Task SetSettingAsync(string key, string value, string? description = null) { if (string.IsNullOrWhiteSpace(key)) { return false; } var setting = await _settingsRepository.Select .Where(x => x.SettingKey == key) .FirstAsync(); var now = DateTime.Now; if (setting == null) { // 新建配置 setting = new T_SystemSettings { SettingKey = key, SettingValue = value, Description = description, UpdatedAt = now }; await _settingsRepository.InsertAsync(setting); } else { // 更新配置 setting.SettingValue = value; setting.UpdatedAt = now; await _settingsRepository.UpdateAsync(setting); } return true; } } }