This commit is contained in:
parent
5f5501dd0d
commit
2f4290d5e2
|
|
@ -32,7 +32,7 @@ public class PlannerService : IPlannerService
|
|||
private static readonly Dictionary<int, string> BookingStatusNames = new()
|
||||
{
|
||||
{ 1, "待联系" },
|
||||
{ 2, "已联系" },
|
||||
{ 2, "联系中" },
|
||||
{ 3, "已完成" },
|
||||
{ 4, "已取消" }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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!;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user