/// <summary> /// 诊所处理退款退货申请 /// </summary> /// <param name="id"></param> /// <param name="auditStatus"></param> /// <param name="sellerRemark"></param> /// <param name="sellerName"></param> public static void SellerDealRefund(long id, OrderRefundInfo.OrderRefundAuditStatus auditStatus, string sellerRemark, string sellerName) { _iRefundService.SellerDealRefund(id, auditStatus, sellerRemark, sellerName); }
public void SellerDealRefund(long id, OrderRefundInfo.OrderRefundAuditStatus auditStatus, string sellerRemark, string sellerName) { OrderRefundInfo now = context.OrderRefundInfo.FindById <OrderRefundInfo>(id); if (now.SellerAuditStatus != OrderRefundInfo.OrderRefundAuditStatus.WaitAudit) { throw new HimallException("只有待审核状态的退款/退货才能进行处理"); } if (now.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund) { if (auditStatus == OrderRefundInfo.OrderRefundAuditStatus.WaitDelivery) { auditStatus = OrderRefundInfo.OrderRefundAuditStatus.Audited; Instance <IOrderService> .Create.AgreeToRefundBySeller(now.OrderId); } } else if (!now.IsReturn && auditStatus == OrderRefundInfo.OrderRefundAuditStatus.WaitDelivery) { auditStatus = OrderRefundInfo.OrderRefundAuditStatus.Audited; } if (auditStatus == OrderRefundInfo.OrderRefundAuditStatus.UnAudit) { if (now.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund) { OrderItemInfo num = context.OrderItemInfo.FindById <OrderItemInfo>(now.OrderItemId); if (num != null) { num.ReturnQuantity = 0; num.RefundPrice = new decimal(0); } } else { OrderInfo orderInfo = context.OrderInfo.Include("OrderItemInfo").FirstOrDefault((OrderInfo d) => d.Id == now.OrderId); if (orderInfo != null) { foreach (OrderItemInfo orderItemInfo in orderInfo.OrderItemInfo) { orderItemInfo.ReturnQuantity = 0; orderItemInfo.RefundPrice = new decimal(0); } } } } if (auditStatus != OrderRefundInfo.OrderRefundAuditStatus.WaitDelivery || now.IsReturn) { now.SellerAuditStatus = auditStatus; } else { now.SellerAuditStatus = OrderRefundInfo.OrderRefundAuditStatus.Audited; } now.SellerAuditDate = DateTime.Now; now.SellerRemark = sellerRemark; if (auditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited) { now.ManagerConfirmDate = DateTime.Now; } OrderOperationLogInfo orderOperationLogInfo = new OrderOperationLogInfo() { Operator = sellerName, OrderId = now.OrderId, OperateDate = DateTime.Now, OperateContent = "商家处理退款退货申请" }; context.OrderOperationLogInfo.Add(orderOperationLogInfo); context.SaveChanges(); }