using Microsoft.Extensions.Logging; using XiangYi.Application.Interfaces; using XiangYi.Core.Entities.Biz; using XiangYi.Core.Interfaces; namespace XiangYi.Application.Services; /// /// 系统配置服务实现 /// public class SystemConfigService : ISystemConfigService { private readonly IRepository _configRepository; private readonly ILogger _logger; /// /// 默认头像配置键 /// public const string DefaultAvatarKey = "default_avatar"; /// /// 用户协议配置键 /// public const string UserAgreementKey = "user_agreement"; /// /// 隐私协议配置键 /// public const string PrivacyPolicyKey = "privacy_policy"; /// /// 会员权益长图配置键 /// public const string MemberBenefitsImageKey = "member_benefits_image"; /// /// 搜索页Banner配置键 /// public const string SearchBannerKey = "search_banner"; /// /// 管家二维码配置键 /// public const string ButlerQrcodeKey = "butler_qrcode"; public SystemConfigService( IRepository configRepository, ILogger logger) { _configRepository = configRepository; _logger = logger; } /// public async Task GetConfigValueAsync(string key) { var configs = await _configRepository.GetListAsync(c => c.ConfigKey == key); return configs.FirstOrDefault()?.ConfigValue; } /// public async Task SetConfigValueAsync(string key, string value, string? description = null) { try { var configs = await _configRepository.GetListAsync(c => c.ConfigKey == key); var config = configs.FirstOrDefault(); if (config != null) { config.ConfigValue = value; config.UpdateTime = DateTime.Now; if (description != null) { config.Description = description; } await _configRepository.UpdateAsync(config); } else { config = new SystemConfig { ConfigKey = key, ConfigValue = value, ConfigType = "system", Description = description, CreateTime = DateTime.Now, UpdateTime = DateTime.Now }; await _configRepository.AddAsync(config); } return true; } catch (Exception ex) { _logger.LogError(ex, "设置配置失败: {Key}", key); return false; } } /// public async Task GetDefaultAvatarAsync() { return await GetConfigValueAsync(DefaultAvatarKey); } /// public async Task SetDefaultAvatarAsync(string avatarUrl) { return await SetConfigValueAsync(DefaultAvatarKey, avatarUrl, "新用户默认头像"); } /// public async Task> GetAllConfigsAsync() { var configs = await _configRepository.GetListAsync(c => true); return configs.ToDictionary(c => c.ConfigKey, c => c.ConfigValue); } /// public async Task GetUserAgreementAsync() { return await GetConfigValueAsync(UserAgreementKey); } /// public async Task SetUserAgreementAsync(string content) { return await SetConfigValueAsync(UserAgreementKey, content, "用户协议内容"); } /// public async Task GetPrivacyPolicyAsync() { return await GetConfigValueAsync(PrivacyPolicyKey); } /// public async Task SetPrivacyPolicyAsync(string content) { return await SetConfigValueAsync(PrivacyPolicyKey, content, "隐私协议内容"); } /// public async Task GetMemberBenefitsImageAsync() { return await GetConfigValueAsync(MemberBenefitsImageKey); } /// public async Task SetMemberBenefitsImageAsync(string imageUrl) { return await SetConfigValueAsync(MemberBenefitsImageKey, imageUrl, "会员权益长图URL"); } /// public async Task GetSearchBannerAsync() { return await GetConfigValueAsync(SearchBannerKey); } /// public async Task SetSearchBannerAsync(string imageUrl) { return await SetConfigValueAsync(SearchBannerKey, imageUrl, "搜索页Banner图URL"); } /// public async Task GetButlerQrcodeAsync() { return await GetConfigValueAsync(ButlerQrcodeKey); } /// public async Task SetButlerQrcodeAsync(string imageUrl) { return await SetConfigValueAsync(ButlerQrcodeKey, imageUrl, "管家指导二维码URL"); } }