diff --git a/server/MiAssessment/src/MiAssessment.Core/Services/OrderService.cs b/server/MiAssessment/src/MiAssessment.Core/Services/OrderService.cs index 394ebe8..1d37cc4 100644 --- a/server/MiAssessment/src/MiAssessment.Core/Services/OrderService.cs +++ b/server/MiAssessment/src/MiAssessment.Core/Services/OrderService.cs @@ -85,14 +85,14 @@ public class OrderService : IOrderService }) .ToListAsync(); - // 获取测评订单关联的测评记录ID + // 获取测评订单关联的测评记录信息(ID + 状态) if (orders.Any(o => o.OrderType == 1)) { var orderIds = orders.Where(o => o.OrderType == 1).Select(o => o.Id).ToList(); var assessmentRecords = await _dbContext.AssessmentRecords .AsNoTracking() .Where(r => orderIds.Contains(r.OrderId) && !r.IsDeleted) - .Select(r => new { r.OrderId, r.Id }) + .Select(r => new { r.OrderId, r.Id, r.Status }) .ToListAsync(); foreach (var order in orders.Where(o => o.OrderType == 1)) @@ -101,10 +101,17 @@ public class OrderService : IOrderService if (record != null) { order.AssessmentRecordId = record.Id; + order.AssessmentStatus = record.Status; } } } + // 计算综合显示状态文本 + foreach (var order in orders) + { + order.DisplayStatusText = GetDisplayStatusText(order.Status, order.AssessmentStatus); + } + _logger.LogDebug("获取到 {Count} 条订单记录,总数: {Total}", orders.Count, total); return PagedResult.Create(orders, total, page, pageSize); @@ -635,6 +642,36 @@ public class OrderService : IOrderService }; } + /// + /// 获取综合显示状态文本(结合订单状态和测评记录状态) + /// + /// 订单状态 + /// 测评记录状态(可为null) + /// 用于前端展示的状态文本 + private static string GetDisplayStatusText(int orderStatus, int? assessmentStatus) + { + // 退款相关状态优先 + if (orderStatus == 4) return "退款中"; + if (orderStatus == 5) return "已退款"; + if (orderStatus == 6) return "已取消"; + if (orderStatus == 1) return "待支付"; + + // 已支付或已完成的订单,根据测评记录状态显示 + if (assessmentStatus.HasValue) + { + return assessmentStatus.Value switch + { + 1 => "待测评", + 2 => "测评中", + 3 => "测评生成中", + 4 => "已测评", + _ => GetOrderStatusText(orderStatus) + }; + } + + return GetOrderStatusText(orderStatus); + } + /// /// 获取测评状态文本 /// diff --git a/server/MiAssessment/src/MiAssessment.Model/Models/Order/OrderItemDto.cs b/server/MiAssessment/src/MiAssessment.Model/Models/Order/OrderItemDto.cs index fdc9659..489311f 100644 --- a/server/MiAssessment/src/MiAssessment.Model/Models/Order/OrderItemDto.cs +++ b/server/MiAssessment/src/MiAssessment.Model/Models/Order/OrderItemDto.cs @@ -1,5 +1,8 @@ namespace MiAssessment.Model.Models.Order; +/// +/// 订单列表项数据传输对象 +/// /// /// 订单列表项数据传输对象 /// @@ -49,4 +52,15 @@ public class OrderItemDto /// 关联的测评记录ID(测评订单时有值) /// public long? AssessmentRecordId { get; set; } + + /// + /// 测评记录状态:1待测评 2测评中 3生成中 4已完成(测评订单时有值) + /// + public int? AssessmentStatus { get; set; } + + /// + /// 综合显示状态文本(结合订单状态和测评状态) + /// + public string DisplayStatusText { get; set; } = null!; } + diff --git a/uniapp/api/order.js b/uniapp/api/order.js index 8f985e4..ad1196f 100644 --- a/uniapp/api/order.js +++ b/uniapp/api/order.js @@ -10,6 +10,7 @@ import { get, post } from './request' * @param {number} [params.page] - 页码 * @param {number} [params.pageSize] - 每页数量 * @param {number} [params.status] - 订单状态 + * @param {number} [params.orderType] - 订单类型:1测评订单 2规划订单 * @returns {Promise} */ export function getOrderList(params = {}) { diff --git a/uniapp/pages/order/list/index.vue b/uniapp/pages/order/list/index.vue index dbf58d7..fc9e332 100644 --- a/uniapp/pages/order/list/index.vue +++ b/uniapp/pages/order/list/index.vue @@ -1,9 +1,10 @@