Example #1
0
        public object PostReply(OrderRefundReplyModel reply)
        {
            if (reply == null)
            {
                return(ErrorResult("参数不能为空"));
            }

            CheckUserLogin();

            switch (reply.AuditStatus)
            {
            case OrderRefundInfo.OrderRefundAuditStatus.UnAudit:
                if (string.IsNullOrWhiteSpace(reply.SellerRemark))
                {
                    throw new MallException("请填写拒绝理由");
                }
                break;
            }

            var refund = Application.RefundApplication.GetOrderRefund(reply.RefundId);

            if (refund == null || refund.ShopId != CurrentShopBranch.ShopId)
            {
                return(ErrorResult("无效的售后申请编号"));
            }

            var order = Application.OrderApplication.GetOrder(refund.OrderId);

            if (order == null || order.ShopBranchId != this.CurrentUser.ShopBranchId)
            {
                return(ErrorResult("无效的售后申请编号"));
            }

            if (order.DeliveryType != CommonModel.DeliveryType.SelfTake &&
                reply.AuditStatus == OrderRefundInfo.OrderRefundAuditStatus.WaitReceiving
                )
            {
                //如果不是自提订单,则状态还是为待买家寄货,不能直接到待商家收货
                reply.AuditStatus = OrderRefundInfo.OrderRefundAuditStatus.WaitDelivery;
            }

            if (refund.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.WaitReceiving && reply.AuditStatus != OrderRefundInfo.OrderRefundAuditStatus.UnAudit)
            {
                RefundApplication.SellerConfirmRefundGood(reply.RefundId, this.CurrentUser.UserName, reply.SellerRemark);
            }
            else
            {
                RefundApplication.SellerDealRefund(reply.RefundId, reply.AuditStatus, reply.SellerRemark, this.CurrentUser.UserName);
            }

            return(SuccessResult("操作成功"));
        }
        public object PostReply(OrderRefundReplyModel reply)
        {
            CheckUserLogin();

            if (reply == null)
            {
                return(ErrorResult("参数不能为空"));
            }

            var shopAddress = ShopShippersApplication.GetDefaultSendGoodsShipper(CurrentShop.Id);

            if (shopAddress == null)
            {
                return(ErrorResult("未设置默认发/退货地址"));
            }

            switch (reply.AuditStatus)
            {
            case OrderRefundInfo.OrderRefundAuditStatus.UnAudit:
                if (string.IsNullOrWhiteSpace(reply.SellerRemark))
                {
                    return(ErrorResult("请填写拒绝理由"));
                }
                break;
            }

            var refund = Application.RefundApplication.GetOrderRefund(reply.RefundId);

            if (refund == null || refund.ShopId != CurrentShop.Id)
            {
                return(ErrorResult("无效的售后申请编号"));
            }

            if (refund.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.WaitReceiving && reply.AuditStatus != OrderRefundInfo.OrderRefundAuditStatus.UnAudit)
            {
                RefundApplication.SellerConfirmRefundGood(reply.RefundId, CurrentUser.UserName, reply.SellerRemark);
            }
            else
            {
                RefundApplication.SellerDealRefund(reply.RefundId, reply.AuditStatus, reply.SellerRemark, CurrentUser.UserName);
            }

            return(SuccessResult("操作成功"));
        }