From eb339da9352e8adfcbe619eb5e440397ecf1053b Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 23 Feb 2026 20:31:26 +0800 Subject: [PATCH] 21 --- .../Entities/PlannerBooking.cs | 12 ++++ .../Services/OrderService.cs | 33 ++++++++-- .../Entities/PlannerBooking.cs | 12 ++++ .../Models/Order/CreateOrderModels.cs | 65 +++++++++++++++++++ uniapp/pages/planner/book/index.vue | 30 +++++---- 5 files changed, 136 insertions(+), 16 deletions(-) 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 } })