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;
}