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()
|
private static readonly Dictionary<int, string> BookingStatusNames = new()
|
||||||
{
|
{
|
||||||
{ 1, "待联系" },
|
{ 1, "待联系" },
|
||||||
{ 2, "已联系" },
|
{ 2, "联系中" },
|
||||||
{ 3, "已完成" },
|
{ 3, "已完成" },
|
||||||
{ 4, "已取消" }
|
{ 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)
|
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);
|
_logger.LogDebug("获取到 {Count} 条订单记录,总数: {Total}", orders.Count, total);
|
||||||
|
|
@ -718,7 +738,7 @@ public class OrderService : IOrderService
|
||||||
/// <param name="orderStatus">订单状态</param>
|
/// <param name="orderStatus">订单状态</param>
|
||||||
/// <param name="assessmentStatus">测评记录状态(可为null)</param>
|
/// <param name="assessmentStatus">测评记录状态(可为null)</param>
|
||||||
/// <returns>用于前端展示的状态文本</returns>
|
/// <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 "退款中";
|
if (orderStatus == 4) return "退款中";
|
||||||
|
|
@ -726,7 +746,13 @@ public class OrderService : IOrderService
|
||||||
if (orderStatus == 6) return "已取消";
|
if (orderStatus == 6) return "已取消";
|
||||||
if (orderStatus == 1) return "待支付";
|
if (orderStatus == 1) return "待支付";
|
||||||
|
|
||||||
// 已支付或已完成的订单,根据测评记录状态显示
|
// 规划订单,根据预约状态显示
|
||||||
|
if (orderType == 2 && bookingStatus.HasValue)
|
||||||
|
{
|
||||||
|
return GetBookingStatusText(bookingStatus.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测评订单,根据测评记录状态显示
|
||||||
if (assessmentStatus.HasValue)
|
if (assessmentStatus.HasValue)
|
||||||
{
|
{
|
||||||
return assessmentStatus.Value switch
|
return assessmentStatus.Value switch
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,12 @@ public class OrderItemDto
|
||||||
public int? AssessmentStatus { get; set; }
|
public int? AssessmentStatus { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 综合显示状态文本(结合订单状态和测评状态)
|
/// 预约状态:1待联系 2联系中 3已完成 4已取消(规划订单时有值)
|
||||||
|
/// </summary>
|
||||||
|
public int? BookingStatus { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 综合显示状态文本(结合订单状态和测评/预约状态)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string DisplayStatusText { get; set; } = null!;
|
public string DisplayStatusText { get; set; } = null!;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ function getDisplayStatus(order) {
|
||||||
// 前端兜底计算:根据订单状态和测评记录状态
|
// 前端兜底计算:根据订单状态和测评记录状态
|
||||||
const orderStatus = order.status
|
const orderStatus = order.status
|
||||||
const assessmentStatus = order.assessmentStatus
|
const assessmentStatus = order.assessmentStatus
|
||||||
|
const bookingStatus = order.bookingStatus
|
||||||
|
|
||||||
// 退款/取消/待支付优先
|
// 退款/取消/待支付优先
|
||||||
if (orderStatus === 4) return '退款中'
|
if (orderStatus === 4) return '退款中'
|
||||||
|
|
@ -49,6 +50,12 @@ function getDisplayStatus(order) {
|
||||||
if (orderStatus === 6) return '已取消'
|
if (orderStatus === 6) return '已取消'
|
||||||
if (orderStatus === 1) return '待支付'
|
if (orderStatus === 1) return '待支付'
|
||||||
|
|
||||||
|
// 规划订单,根据预约状态显示
|
||||||
|
if (order.orderType === 2 && bookingStatus) {
|
||||||
|
const bookingMap = { 1: '待联系', 2: '联系中', 3: '已完成', 4: '已取消' }
|
||||||
|
return bookingMap[bookingStatus] || order.statusText || '已支付'
|
||||||
|
}
|
||||||
|
|
||||||
// 已支付/已完成的订单,根据测评记录状态显示
|
// 已支付/已完成的订单,根据测评记录状态显示
|
||||||
if (assessmentStatus) {
|
if (assessmentStatus) {
|
||||||
const map = { 1: '待测评', 2: '测评中', 3: '测评生成中', 4: '已测评' }
|
const map = { 1: '待测评', 2: '测评中', 3: '测评生成中', 4: '已测评' }
|
||||||
|
|
@ -77,8 +84,9 @@ const filteredList = computed(() => {
|
||||||
*/
|
*/
|
||||||
function getStatusClass(order) {
|
function getStatusClass(order) {
|
||||||
const dst = getDisplayStatus(order)
|
const dst = getDisplayStatus(order)
|
||||||
if (dst === '已测评' || dst === '待测评') return 'status-green'
|
if (dst === '已测评' || dst === '待测评' || dst === '已完成') return 'status-green'
|
||||||
if (dst === '测评生成中' || dst === '退款中' || dst === '已退款') return 'status-red'
|
if (dst === '测评生成中' || dst === '退款中' || dst === '已退款' || dst === '报告生成中') return 'status-red'
|
||||||
|
if (dst === '待联系' || dst === '联系中') return 'status-orange'
|
||||||
return 'status-gray'
|
return 'status-gray'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -367,6 +375,10 @@ onShow(() => {
|
||||||
color: $error-color;
|
color: $error-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.status-orange {
|
||||||
|
color: $warning-color;
|
||||||
|
}
|
||||||
|
|
||||||
&.status-gray {
|
&.status-gray {
|
||||||
color: $text-placeholder;
|
color: $text-placeholder;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user