21
This commit is contained in:
parent
f7f00f7845
commit
788e1caf91
|
|
@ -57,4 +57,36 @@ public class PlannerController : ControllerBase
|
|||
return ApiResponse<List<PlannerDto>>.Fail("获取规划师列表失败");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取规划师详情
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// GET /api/planner/getDetail?plannerId=1
|
||||
///
|
||||
/// 返回指定规划师的详细信息,仅返回启用状态且未删除的规划师
|
||||
/// 不需要用户登录认证
|
||||
/// Requirements: 10.2
|
||||
/// </remarks>
|
||||
/// <param name="plannerId">规划师ID</param>
|
||||
/// <returns>规划师详情</returns>
|
||||
[HttpGet("getDetail")]
|
||||
[ProducesResponseType(typeof(ApiResponse<PlannerDto>), StatusCodes.Status200OK)]
|
||||
public async Task<ApiResponse<PlannerDto>> GetDetail([FromQuery] long plannerId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var planner = await _plannerService.GetDetailAsync(plannerId);
|
||||
if (planner == null)
|
||||
{
|
||||
return ApiResponse<PlannerDto>.Fail("规划师不存在", 3500);
|
||||
}
|
||||
return ApiResponse<PlannerDto>.Success(planner);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Failed to get planner detail, plannerId={PlannerId}", plannerId);
|
||||
return ApiResponse<PlannerDto>.Fail("获取规划师详情失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@ using MiAssessment.Model.Models.Planner;
|
|||
|
||||
namespace MiAssessment.Core.Interfaces;
|
||||
|
||||
/// <summary>
|
||||
/// 规划师服务接口
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// 规划师服务接口
|
||||
/// </summary>
|
||||
|
|
@ -15,4 +18,12 @@ public interface IPlannerService
|
|||
/// </remarks>
|
||||
/// <returns>规划师列表</returns>
|
||||
Task<List<PlannerDto>> GetListAsync();
|
||||
|
||||
/// <summary>
|
||||
/// 获取规划师详情
|
||||
/// </summary>
|
||||
/// <param name="plannerId">规划师ID</param>
|
||||
/// <returns>规划师详情,不存在则返回null</returns>
|
||||
Task<PlannerDto?> GetDetailAsync(long plannerId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,4 +51,32 @@ public class PlannerService : IPlannerService
|
|||
_logger.LogDebug("获取到 {Count} 条规划师记录", planners.Count);
|
||||
return planners;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<PlannerDto?> GetDetailAsync(long plannerId)
|
||||
{
|
||||
_logger.LogDebug("获取规划师详情, plannerId={PlannerId}", plannerId);
|
||||
|
||||
var planner = await _dbContext.Planners
|
||||
.AsNoTracking()
|
||||
.Where(p => p.Id == plannerId && p.Status == 1 && !p.IsDeleted)
|
||||
.Select(p => new PlannerDto
|
||||
{
|
||||
Id = p.Id,
|
||||
Name = p.Name,
|
||||
Avatar = p.Avatar,
|
||||
Title = p.Title,
|
||||
Introduction = p.Introduction,
|
||||
Tags = p.Tags,
|
||||
Price = p.Price
|
||||
})
|
||||
.FirstOrDefaultAsync();
|
||||
|
||||
if (planner == null)
|
||||
{
|
||||
_logger.LogWarning("规划师不存在或已禁用, plannerId={PlannerId}", plannerId);
|
||||
}
|
||||
|
||||
return planner;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@
|
|||
{
|
||||
"path": "pages/planner/book/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "预约规划"
|
||||
"navigationBarTitleText": "学业规划"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user