コード例 #1
0
 /// <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);
 }
コード例 #2
0
ファイル: RefundService.cs プロジェクト: giagiigi/ChemCloud
        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();
        }