using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using XiangYi.Application.DTOs.Responses; using XiangYi.Application.Interfaces; namespace XiangYi.AdminApi.Controllers; /// /// 后台系统配置控制器 /// [ApiController] [Route("api/admin/config")] [Authorize] public class AdminConfigController : ControllerBase { private readonly ISystemConfigService _configService; private readonly ILogger _logger; public AdminConfigController( ISystemConfigService configService, ILogger logger) { _configService = configService; _logger = logger; } /// /// 获取默认头像 /// [HttpGet("defaultAvatar")] public async Task> GetDefaultAvatar() { var avatarUrl = await _configService.GetDefaultAvatarAsync(); return ApiResponse.Success(new DefaultAvatarResponse { AvatarUrl = avatarUrl }); } /// /// 设置默认头像 /// [HttpPost("defaultAvatar")] public async Task SetDefaultAvatar([FromBody] SetDefaultAvatarRequest request) { if (string.IsNullOrWhiteSpace(request.AvatarUrl)) { return ApiResponse.Error(40001, "头像URL不能为空"); } var result = await _configService.SetDefaultAvatarAsync(request.AvatarUrl); return result ? ApiResponse.Success("设置成功") : ApiResponse.Error(40001, "设置失败"); } /// /// 获取所有系统配置 /// [HttpGet("all")] public async Task>> GetAllConfigs() { var configs = await _configService.GetAllConfigsAsync(); return ApiResponse>.Success(configs); } /// /// 获取用户协议 /// [HttpGet("userAgreement")] public async Task> GetUserAgreement() { var content = await _configService.GetUserAgreementAsync(); return ApiResponse.Success(new AgreementResponse { Content = content ?? "" }); } /// /// 设置用户协议 /// [HttpPost("userAgreement")] public async Task SetUserAgreement([FromBody] SetAgreementRequest request) { if (string.IsNullOrWhiteSpace(request.Content)) { return ApiResponse.Error(40001, "协议内容不能为空"); } var result = await _configService.SetUserAgreementAsync(request.Content); return result ? ApiResponse.Success("设置成功") : ApiResponse.Error(40001, "设置失败"); } /// /// 获取隐私协议 /// [HttpGet("privacyPolicy")] public async Task> GetPrivacyPolicy() { var content = await _configService.GetPrivacyPolicyAsync(); return ApiResponse.Success(new AgreementResponse { Content = content ?? "" }); } /// /// 设置隐私协议 /// [HttpPost("privacyPolicy")] public async Task SetPrivacyPolicy([FromBody] SetAgreementRequest request) { if (string.IsNullOrWhiteSpace(request.Content)) { return ApiResponse.Error(40001, "协议内容不能为空"); } var result = await _configService.SetPrivacyPolicyAsync(request.Content); return result ? ApiResponse.Success("设置成功") : ApiResponse.Error(40001, "设置失败"); } /// /// 获取会员权益长图 /// [HttpGet("memberBenefitsImage")] public async Task> GetMemberBenefitsImage() { var imageUrl = await _configService.GetMemberBenefitsImageAsync(); return ApiResponse.Success(new MemberBenefitsImageResponse { ImageUrl = imageUrl }); } /// /// 设置会员权益长图 /// [HttpPost("memberBenefitsImage")] public async Task SetMemberBenefitsImage([FromBody] SetMemberBenefitsImageRequest request) { if (string.IsNullOrWhiteSpace(request.ImageUrl)) { return ApiResponse.Error(40001, "图片URL不能为空"); } var result = await _configService.SetMemberBenefitsImageAsync(request.ImageUrl); return result ? ApiResponse.Success("设置成功") : ApiResponse.Error(40001, "设置失败"); } /// /// 获取搜索页Banner /// [HttpGet("searchBanner")] public async Task> GetSearchBanner() { var imageUrl = await _configService.GetSearchBannerAsync(); return ApiResponse.Success(new SearchBannerResponse { ImageUrl = imageUrl }); } /// /// 设置搜索页Banner /// [HttpPost("searchBanner")] public async Task SetSearchBanner([FromBody] SetSearchBannerRequest request) { if (string.IsNullOrWhiteSpace(request.ImageUrl)) { return ApiResponse.Error(40001, "图片URL不能为空"); } var result = await _configService.SetSearchBannerAsync(request.ImageUrl); return result ? ApiResponse.Success("设置成功") : ApiResponse.Error(40001, "设置失败"); } } /// /// 默认头像响应 /// public class DefaultAvatarResponse { /// /// 头像URL /// public string? AvatarUrl { get; set; } } /// /// 设置默认头像请求 /// public class SetDefaultAvatarRequest { /// /// 头像URL /// public string AvatarUrl { get; set; } = string.Empty; } /// /// 协议响应 /// public class AgreementResponse { /// /// 协议内容 /// public string Content { get; set; } = string.Empty; } /// /// 设置协议请求 /// public class SetAgreementRequest { /// /// 协议内容 /// public string Content { get; set; } = string.Empty; } /// /// 会员权益长图响应 /// public class MemberBenefitsImageResponse { /// /// 图片URL /// public string? ImageUrl { get; set; } } /// /// 设置会员权益长图请求 /// public class SetMemberBenefitsImageRequest { /// /// 图片URL /// public string ImageUrl { get; set; } = string.Empty; } /// /// 搜索页Banner响应 /// public class SearchBannerResponse { /// /// 图片URL /// public string? ImageUrl { get; set; } } /// /// 设置搜索页Banner请求 /// public class SetSearchBannerRequest { /// /// 图片URL /// public string ImageUrl { get; set; } = string.Empty; }