diff --git a/demo/ChengFenStore/Models/Order.cs b/demo/ChengFenStore/Models/Order.cs index d9ae0f9..59ccf9f 100644 --- a/demo/ChengFenStore/Models/Order.cs +++ b/demo/ChengFenStore/Models/Order.cs @@ -8,5 +8,10 @@ public class Order public string DeliveryMethod { get; set; } public string OrderStatus { get; set; } public List OrderStatusHistory { get; set; } + + public Order() + { + OrderStatusHistory = new List(); + } } } diff --git a/demo/ChengFenStore/Models/Payment.cs b/demo/ChengFenStore/Models/Payment.cs index df04f77..9d97e77 100644 --- a/demo/ChengFenStore/Models/Payment.cs +++ b/demo/ChengFenStore/Models/Payment.cs @@ -7,5 +7,10 @@ public class Payment public string PaymentMethod { get; set; } public string PaymentStatus { get; set; } public List PaymentStatusHistory { get; set; } + + public Payment() + { + PaymentStatusHistory = new List(); + } } } diff --git a/demo/ChengFenStore/Services/OrderService.cs b/demo/ChengFenStore/Services/OrderService.cs index 8e6e9ba..24f2a53 100644 --- a/demo/ChengFenStore/Services/OrderService.cs +++ b/demo/ChengFenStore/Services/OrderService.cs @@ -32,6 +32,7 @@ public Order ConfirmOrder(int id) order.OrderStatus = "已支付"; _context.Orders.Update(order); _context.SaveChanges(); + UpdateOrderStatusHistory(order.OrderId, "已支付"); } return order; } @@ -40,5 +41,23 @@ public Order TrackOrder(int id) { return _context.Orders.FirstOrDefault(o => o.OrderId == id); } + + private void UpdateOrderStatusHistory(int orderId, string status) + { + var orderStatus = new OrderStatus + { + OrderId = orderId, + Status = status, + Timestamp = DateTime.Now + }; + + var order = _context.Orders.FirstOrDefault(o => o.OrderId == orderId); + if (order != null) + { + order.OrderStatusHistory.Add(orderStatus); + _context.Orders.Update(order); + _context.SaveChanges(); + } + } } } diff --git a/demo/ChengFenStore/Services/PaymentService.cs b/demo/ChengFenStore/Services/PaymentService.cs index fcadac6..c61b071 100644 --- a/demo/ChengFenStore/Services/PaymentService.cs +++ b/demo/ChengFenStore/Services/PaymentService.cs @@ -19,6 +19,7 @@ public bool ProcessPayment(Payment payment) payment.PaymentStatus = "Processed"; _context.Payments.Add(payment); _context.SaveChanges(); + UpdatePaymentStatusHistory(payment.PaymentId, "Processed"); return true; } @@ -26,5 +27,23 @@ public List GetPaymentRecords() { return _context.Payments.ToList(); } + + private void UpdatePaymentStatusHistory(int paymentId, string status) + { + var paymentStatus = new PaymentStatus + { + PaymentId = paymentId, + Status = status, + Timestamp = DateTime.Now + }; + + var payment = _context.Payments.FirstOrDefault(p => p.PaymentId == paymentId); + if (payment != null) + { + payment.PaymentStatusHistory.Add(paymentStatus); + _context.Payments.Update(payment); + _context.SaveChanges(); + } + } } }