diff --git a/server/MiAssessment/src/MiAssessment.Api/Controllers/PlannerController.cs b/server/MiAssessment/src/MiAssessment.Api/Controllers/PlannerController.cs index 9444e67..457804d 100644 --- a/server/MiAssessment/src/MiAssessment.Api/Controllers/PlannerController.cs +++ b/server/MiAssessment/src/MiAssessment.Api/Controllers/PlannerController.cs @@ -57,4 +57,36 @@ public class PlannerController : ControllerBase return ApiResponse>.Fail("获取规划师列表失败"); } } + + /// + /// 获取规划师详情 + /// + /// + /// GET /api/planner/getDetail?plannerId=1 + /// + /// 返回指定规划师的详细信息,仅返回启用状态且未删除的规划师 + /// 不需要用户登录认证 + /// Requirements: 10.2 + /// + /// 规划师ID + /// 规划师详情 + [HttpGet("getDetail")] + [ProducesResponseType(typeof(ApiResponse), StatusCodes.Status200OK)] + public async Task> GetDetail([FromQuery] long plannerId) + { + try + { + var planner = await _plannerService.GetDetailAsync(plannerId); + if (planner == null) + { + return ApiResponse.Fail("规划师不存在", 3500); + } + return ApiResponse.Success(planner); + } + catch (Exception ex) + { + _logger.LogError(ex, "Failed to get planner detail, plannerId={PlannerId}", plannerId); + return ApiResponse.Fail("获取规划师详情失败"); + } + } } diff --git a/server/MiAssessment/src/MiAssessment.Core/Interfaces/IPlannerService.cs b/server/MiAssessment/src/MiAssessment.Core/Interfaces/IPlannerService.cs index d899eae..a585d25 100644 --- a/server/MiAssessment/src/MiAssessment.Core/Interfaces/IPlannerService.cs +++ b/server/MiAssessment/src/MiAssessment.Core/Interfaces/IPlannerService.cs @@ -2,6 +2,9 @@ using MiAssessment.Model.Models.Planner; namespace MiAssessment.Core.Interfaces; +/// +/// 规划师服务接口 +/// /// /// 规划师服务接口 /// @@ -15,4 +18,12 @@ public interface IPlannerService /// /// 规划师列表 Task> GetListAsync(); + + /// + /// 获取规划师详情 + /// + /// 规划师ID + /// 规划师详情,不存在则返回null + Task GetDetailAsync(long plannerId); } + diff --git a/server/MiAssessment/src/MiAssessment.Core/Services/PlannerService.cs b/server/MiAssessment/src/MiAssessment.Core/Services/PlannerService.cs index d67078a..d84414b 100644 --- a/server/MiAssessment/src/MiAssessment.Core/Services/PlannerService.cs +++ b/server/MiAssessment/src/MiAssessment.Core/Services/PlannerService.cs @@ -51,4 +51,32 @@ public class PlannerService : IPlannerService _logger.LogDebug("获取到 {Count} 条规划师记录", planners.Count); return planners; } + + /// + public async Task 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; + } } diff --git a/uniapp/pages.json b/uniapp/pages.json index ceb1d91..6381445 100644 --- a/uniapp/pages.json +++ b/uniapp/pages.json @@ -96,7 +96,7 @@ { "path": "pages/planner/book/index", "style": { - "navigationBarTitleText": "预约规划" + "navigationBarTitleText": "学业规划" } }, { diff --git a/uniapp/pages/planner/book/index.vue b/uniapp/pages/planner/book/index.vue index fb01aa8..ffb3029 100644 --- a/uniapp/pages/planner/book/index.vue +++ b/uniapp/pages/planner/book/index.vue @@ -1,21 +1,22 @@ -