diff --git a/server/MiAssessment/src/MiAssessment.Admin.Business/Entities/PlannerBooking.cs b/server/MiAssessment/src/MiAssessment.Admin.Business/Entities/PlannerBooking.cs
index 0741040..04c8c67 100644
--- a/server/MiAssessment/src/MiAssessment.Admin.Business/Entities/PlannerBooking.cs
+++ b/server/MiAssessment/src/MiAssessment.Admin.Business/Entities/PlannerBooking.cs
@@ -114,6 +114,18 @@ public class PlannerBooking
///
public int? ScorePolitics { get; set; }
+ ///
+ /// 家庭氛围
+ ///
+ [MaxLength(500)]
+ public string? FamilyAtmosphere { get; set; }
+
+ ///
+ /// 期望
+ ///
+ [MaxLength(500)]
+ public string? Expectation { get; set; }
+
///
/// 状态:1待确认 2已确认 3已完成 4已取消
///
diff --git a/server/MiAssessment/src/MiAssessment.Core/Services/OrderService.cs b/server/MiAssessment/src/MiAssessment.Core/Services/OrderService.cs
index 1d37cc4..8673567 100644
--- a/server/MiAssessment/src/MiAssessment.Core/Services/OrderService.cs
+++ b/server/MiAssessment/src/MiAssessment.Core/Services/OrderService.cs
@@ -439,17 +439,40 @@ public class OrderService : IOrderService
else
{
// 规划订单 - 创建规划预约记录(Requirements 8.2)
+ // 解析预约日期时间
+ DateTime bookingDate = DateTime.Today;
+ string bookingTime = "待确认";
+ if (!string.IsNullOrEmpty(request.PlannerInfo!.BookDateTime))
+ {
+ if (DateTime.TryParse(request.PlannerInfo.BookDateTime, out var parsedDateTime))
+ {
+ bookingDate = parsedDateTime.Date;
+ bookingTime = parsedDateTime.ToString("HH:mm");
+ }
+ }
+
var plannerBooking = new MiAssessment.Model.Entities.PlannerBooking
{
UserId = userId,
OrderId = order.Id,
PlannerId = request.ProductId,
- BookingDate = DateTime.Today, // 默认今天,后续可修改
- BookingTime = "待确认",
- Name = request.PlannerInfo!.Name,
+ BookingDate = bookingDate,
+ BookingTime = bookingTime,
+ Name = request.PlannerInfo.Name,
Phone = request.PlannerInfo.Phone,
- Gender = 0, // 默认未知
- Grade = 0, // 默认未知
+ Gender = 0,
+ Grade = request.PlannerInfo.Grade,
+ MajorName = request.PlannerInfo.MajorName,
+ ScoreChinese = request.PlannerInfo.ScoreChinese,
+ ScoreMath = request.PlannerInfo.ScoreMath,
+ ScoreEnglish = request.PlannerInfo.ScoreEnglish,
+ ScorePhysics = request.PlannerInfo.ScorePhysics,
+ ScoreChemistry = request.PlannerInfo.ScoreChemistry,
+ ScoreBiology = request.PlannerInfo.ScoreBiology,
+ ScoreGeography = request.PlannerInfo.ScoreGeography,
+ ScorePolitics = request.PlannerInfo.ScorePolitics,
+ FamilyAtmosphere = request.PlannerInfo.FamilyAtmosphere,
+ Expectation = request.PlannerInfo.Expectation,
Status = 1, // 待确认
CreateTime = now,
UpdateTime = now,
diff --git a/server/MiAssessment/src/MiAssessment.Model/Entities/PlannerBooking.cs b/server/MiAssessment/src/MiAssessment.Model/Entities/PlannerBooking.cs
index 3f0705e..c6492fa 100644
--- a/server/MiAssessment/src/MiAssessment.Model/Entities/PlannerBooking.cs
+++ b/server/MiAssessment/src/MiAssessment.Model/Entities/PlannerBooking.cs
@@ -114,6 +114,18 @@ public class PlannerBooking
///
public int? ScorePolitics { get; set; }
+ ///
+ /// 家庭氛围
+ ///
+ [MaxLength(500)]
+ public string? FamilyAtmosphere { get; set; }
+
+ ///
+ /// 期望
+ ///
+ [MaxLength(500)]
+ public string? Expectation { get; set; }
+
///
/// 状态:1待确认 2已确认 3已完成 4已取消
///
diff --git a/server/MiAssessment/src/MiAssessment.Model/Models/Order/CreateOrderModels.cs b/server/MiAssessment/src/MiAssessment.Model/Models/Order/CreateOrderModels.cs
index deb1e5b..65e5c28 100644
--- a/server/MiAssessment/src/MiAssessment.Model/Models/Order/CreateOrderModels.cs
+++ b/server/MiAssessment/src/MiAssessment.Model/Models/Order/CreateOrderModels.cs
@@ -92,6 +92,71 @@ public class PlannerInfoDto
///
public string Phone { get; set; } = null!;
+ ///
+ /// 预约日期时间,如"2026-02-23 16:00"
+ ///
+ public string? BookDateTime { get; set; }
+
+ ///
+ /// 年级:1小学 2初中 3高中 4大专 5本科 6研究生及以上
+ ///
+ public int Grade { get; set; }
+
+ ///
+ /// 专业名称(大专及以上时填写)
+ ///
+ public string? MajorName { get; set; }
+
+ ///
+ /// 语文成绩
+ ///
+ public int? ScoreChinese { get; set; }
+
+ ///
+ /// 数学成绩
+ ///
+ public int? ScoreMath { get; set; }
+
+ ///
+ /// 英语成绩
+ ///
+ public int? ScoreEnglish { get; set; }
+
+ ///
+ /// 物理成绩
+ ///
+ public int? ScorePhysics { get; set; }
+
+ ///
+ /// 化学成绩
+ ///
+ public int? ScoreChemistry { get; set; }
+
+ ///
+ /// 生物成绩
+ ///
+ public int? ScoreBiology { get; set; }
+
+ ///
+ /// 地理成绩
+ ///
+ public int? ScoreGeography { get; set; }
+
+ ///
+ /// 政治成绩
+ ///
+ public int? ScorePolitics { get; set; }
+
+ ///
+ /// 家庭氛围
+ ///
+ public string? FamilyAtmosphere { get; set; }
+
+ ///
+ /// 期望
+ ///
+ public string? Expectation { get; set; }
+
///
/// 备注
///
diff --git a/uniapp/pages/planner/book/index.vue b/uniapp/pages/planner/book/index.vue
index ffb3029..84dc57f 100644
--- a/uniapp/pages/planner/book/index.vue
+++ b/uniapp/pages/planner/book/index.vue
@@ -254,28 +254,36 @@ async function handleSubmit() {
try {
uni.showLoading({ title: '创建订单中...' })
+ // 年级名称转数字映射
+ const gradeMap = { '小学': 1, '初中': 2, '高中': 3, '大专': 4, '本科': 5, '研究生及以上': 6 }
+
// 构建成绩数据
- const scoreData = {}
+ const scoreFields = {}
if (showScores.value) {
subjectList.value.forEach(s => {
- if (scores.value[s.key]) scoreData[s.key] = scores.value[s.key]
+ if (scores.value[s.key]) {
+ const fieldMap = {
+ chinese: 'scoreChinese', math: 'scoreMath', english: 'scoreEnglish',
+ physics: 'scorePhysics', chemistry: 'scoreChemistry', biology: 'scoreBiology',
+ geography: 'scoreGeography', politics: 'scorePolitics'
+ }
+ scoreFields[fieldMap[s.key]] = parseInt(scores.value[s.key]) || null
+ }
})
}
const result = await processPayment({
- productType: 2,
+ orderType: 2,
productId: plannerId.value,
- userInfo: {
+ plannerInfo: {
name: formData.value.name,
phone: formData.value.phone,
- grade: formData.value.grade,
- majorName: formData.value.majorName || '',
- scores: scoreData,
- familyAtmosphere: formData.value.familyAtmosphere,
- expectation: formData.value.expectation,
bookDateTime: `${selectedDate.value} ${selectedTime.value}`,
- plannerId: plannerId.value,
- plannerName: plannerInfo.value.name
+ grade: gradeMap[formData.value.grade] || 0,
+ majorName: showMajor.value ? formData.value.majorName : null,
+ ...scoreFields,
+ familyAtmosphere: formData.value.familyAtmosphere,
+ expectation: formData.value.expectation
}
})