提交代码
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
zpc 2026-03-24 02:13:50 +08:00
parent 5f5501dd0d
commit 2f4290d5e2
4 changed files with 50 additions and 7 deletions

View File

@ -32,7 +32,7 @@ public class PlannerService : IPlannerService
private static readonly Dictionary<int, string> BookingStatusNames = new()
{
{ 1, "待联系" },
{ 2, "联系" },
{ 2, "联系" },
{ 3, "已完成" },
{ 4, "已取消" }
};

View File

@ -107,10 +107,30 @@ public class OrderService : IOrderService
}
}
// 获取规划订单关联的预约记录状态
if (orders.Any(o => o.OrderType == 2))
{
var bookingOrderIds = orders.Where(o => o.OrderType == 2).Select(o => o.Id).ToList();
var bookings = await _dbContext.PlannerBookings
.AsNoTracking()
.Where(b => bookingOrderIds.Contains(b.OrderId) && !b.IsDeleted)
.Select(b => new { b.OrderId, b.Status })
.ToListAsync();
foreach (var order in orders.Where(o => o.OrderType == 2))
{
var booking = bookings.FirstOrDefault(b => b.OrderId == order.Id);
if (booking != null)
{
order.BookingStatus = booking.Status;
}
}
}
// 计算综合显示状态文本
foreach (var order in orders)
{
order.DisplayStatusText = GetDisplayStatusText(order.Status, order.AssessmentStatus);
order.DisplayStatusText = GetDisplayStatusText(order.Status, order.AssessmentStatus, order.OrderType, order.BookingStatus);
}
_logger.LogDebug("获取到 {Count} 条订单记录,总数: {Total}", orders.Count, total);
@ -718,7 +738,7 @@ public class OrderService : IOrderService
/// <param name="orderStatus">订单状态</param>
/// <param name="assessmentStatus">测评记录状态可为null</param>
/// <returns>用于前端展示的状态文本</returns>
private static string GetDisplayStatusText(int orderStatus, int? assessmentStatus)
private static string GetDisplayStatusText(int orderStatus, int? assessmentStatus, int orderType = 1, int? bookingStatus = null)
{
// 退款相关状态优先
if (orderStatus == 4) return "退款中";
@ -726,7 +746,13 @@ public class OrderService : IOrderService
if (orderStatus == 6) return "已取消";
if (orderStatus == 1) return "待支付";
// 已支付或已完成的订单,根据测评记录状态显示
// 规划订单,根据预约状态显示
if (orderType == 2 && bookingStatus.HasValue)
{
return GetBookingStatusText(bookingStatus.Value);
}
// 测评订单,根据测评记录状态显示
if (assessmentStatus.HasValue)
{
return assessmentStatus.Value switch

View File

@ -59,7 +59,12 @@ public class OrderItemDto
public int? AssessmentStatus { get; set; }
/// <summary>
/// 综合显示状态文本(结合订单状态和测评状态)
/// 预约状态1待联系 2联系中 3已完成 4已取消规划订单时有值
/// </summary>
public int? BookingStatus { get; set; }
/// <summary>
/// 综合显示状态文本(结合订单状态和测评/预约状态)
/// </summary>
public string DisplayStatusText { get; set; } = null!;
}

View File

@ -42,6 +42,7 @@ function getDisplayStatus(order) {
//
const orderStatus = order.status
const assessmentStatus = order.assessmentStatus
const bookingStatus = order.bookingStatus
// 退//
if (orderStatus === 4) return '退款中'
@ -49,6 +50,12 @@ function getDisplayStatus(order) {
if (orderStatus === 6) return '已取消'
if (orderStatus === 1) return '待支付'
//
if (order.orderType === 2 && bookingStatus) {
const bookingMap = { 1: '待联系', 2: '联系中', 3: '已完成', 4: '已取消' }
return bookingMap[bookingStatus] || order.statusText || '已支付'
}
// /
if (assessmentStatus) {
const map = { 1: '待测评', 2: '测评中', 3: '测评生成中', 4: '已测评' }
@ -77,8 +84,9 @@ const filteredList = computed(() => {
*/
function getStatusClass(order) {
const dst = getDisplayStatus(order)
if (dst === '已测评' || dst === '待测评') return 'status-green'
if (dst === '测评生成中' || dst === '退款中' || dst === '已退款') return 'status-red'
if (dst === '已测评' || dst === '待测评' || dst === '已完成') return 'status-green'
if (dst === '测评生成中' || dst === '退款中' || dst === '已退款' || dst === '报告生成中') return 'status-red'
if (dst === '待联系' || dst === '联系中') return 'status-orange'
return 'status-gray'
}
@ -367,6 +375,10 @@ onShow(() => {
color: $error-color;
}
&.status-orange {
color: $warning-color;
}
&.status-gray {
color: $text-placeholder;
}