using MiAssessment.Core.Interfaces;
using MiAssessment.Model.Data;
using MiAssessment.Model.Models.Business;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
namespace MiAssessment.Core.Services;
///
/// 业务详情服务实现
///
public class BusinessService : IBusinessService
{
private readonly MiAssessmentDbContext _dbContext;
private readonly ILogger _logger;
///
/// 构造函数
///
/// 数据库上下文
/// 日志记录器
public BusinessService(
MiAssessmentDbContext dbContext,
ILogger logger)
{
_dbContext = dbContext;
_logger = logger;
}
///
public async Task GetDetailAsync(long id)
{
_logger.LogDebug("获取业务详情,ID: {Id}", id);
var businessPage = await _dbContext.BusinessPages
.AsNoTracking()
.Where(b => b.Id == id && b.Status == 1 && !b.IsDeleted)
.Select(b => new BusinessDetailDto
{
Id = b.Id,
Title = b.Title,
ImageUrl = b.ImageUrl,
ShowButton = b.ShowButton,
ButtonText = b.ButtonText,
ButtonLink = b.ButtonLink
})
.FirstOrDefaultAsync();
if (businessPage == null)
{
_logger.LogDebug("业务页面不存在或已禁用,ID: {Id}", id);
return null;
}
_logger.LogDebug("获取到业务详情,ID: {Id}, Title: {Title}", id, businessPage.Title);
return businessPage;
}
}