Пример #1
0
        public static ResultDTO CancelRefund(ContextSession contextSession, OrderRefundAfterSales refund)
        {
            var jdOrderRefundAfterSales = JdOrderRefundAfterSales.ObjectSet().Where(_ => _.OrderRefundAfterSalesId == refund.Id).FirstOrDefault();

            if (jdOrderRefundAfterSales == null)
            {
                return(new ResultDTO {
                    isSuccess = true, Message = "非京东订单,跳过。"
                });
            }
            if (string.IsNullOrEmpty(jdOrderRefundAfterSales.AfsServiceId))
            {
                return(new ResultDTO {
                    isSuccess = false, Message = "未获取到京东退款服务单号。", ResultCode = -1
                });
            }
            ResultDTO result = null;

            if (jdOrderRefundAfterSales.CommodityNum.HasValue && jdOrderRefundAfterSales.CommodityNum.Value > 1 && !string.IsNullOrWhiteSpace(jdOrderRefundAfterSales.AfsServiceIds))
            {
                result = JDSV.AuditMultipulCancel(jdOrderRefundAfterSales.AfsServiceId.Split(',').ToList(), "用户取消");
            }
            else
            {
                result = JDSV.AuditCancel(jdOrderRefundAfterSales.AfsServiceId, "用户取消");
            }
            if (result.isSuccess)
            {
                jdOrderRefundAfterSales.Cancel = 0;
                contextSession.SaveObject(jdOrderRefundAfterSales);
            }
            return(result);
        }
Пример #2
0
        public static void GetJdRefundInfo(SubmitOrderRefundDTO refund)
        {
            var jdOrderRefundAfterSales = JdOrderRefundAfterSales.ObjectSet().Where(_ => _.OrderRefundAfterSalesId == refund.Id).FirstOrDefault();

            if (jdOrderRefundAfterSales == null)
            {
                return;
            }
            refund.JdOrderRefundInfo = new JdOrderRefundDto
            {
                ServiceId           = jdOrderRefundAfterSales.AfsServiceId,
                Cancel              = jdOrderRefundAfterSales.Cancel,
                CustomerContactName = jdOrderRefundAfterSales.CustomerContactName,
                CustomerTel         = jdOrderRefundAfterSales.CustomerTel,
                PickwareAddress     = jdOrderRefundAfterSales.PickwareAddress,
                PickwareType        = jdOrderRefundAfterSales.PickwareType
            };
        }
Пример #3
0
        public static ResultDTO SubmitRefund(ContextSession contextSession, CommodityOrder order, OrderItem orderItem, OrderRefundAfterSales refund, AddressInfo address)
        {
            if (address == null)
            {
                return(new ResultDTO {
                    isSuccess = false, Message = "取件地址不能为空。"
                });
            }
            var strCommodityOrderId = orderItem.CommodityOrderId.ToString();
            var jdorderitem         = JdOrderItem.ObjectSet()
                                      .Where(_ => _.CommodityOrderId == strCommodityOrderId && _.TempId == orderItem.CommodityId).FirstOrDefault();

            if (jdorderitem == null)
            {
                return(new ResultDTO {
                    isSuccess = false, ResultCode = 1, Message = "该订单不是京东订单。"
                });
            }
            AfterSaleDto dto = new AfterSaleDto();

            dto.jdOrderId      = jdorderitem.JdOrderId;
            dto.customerExpect = 10;
            dto.questionDesc   = refund.RefundDesc;
            dto.questionPic    = refund.OrderRefundImgs;
            dto.asCustomerDto  = new AfterSaleCustomerDto()
            {
                jdOrderId           = jdorderitem.JdOrderId,
                customerContactName = address.customerContactName,
                customerTel         = address.customerTel
            };
            dto.asPickwareDto = new AfterSalePickwareDto()
            {
                pickwareType     = 4,
                pickwareProvince = address.pickwareProvince,
                pickwareCity     = address.pickwareCity,
                pickwareCounty   = address.pickwareCounty,
                pickwareVillage  = address.pickwareVillage,
                pickwareAddress  = address.pickwareAddress
            };
            dto.asReturnwareDto = new AfterSaleReturnwareDto
            {
                returnwareType     = 10,
                returnwareCity     = address.pickwareCity,
                returnwareCounty   = address.pickwareCounty,
                returnwareProvince = address.pickwareProvince,
                returnwareVillage  = address.pickwareVillage,
                returnwareAddress  = address.pickwareAddress
            };
            dto.asDetailDto = new AfterSaleDetailDto()
            {
                skuId  = jdorderitem.CommoditySkuId,
                skuNum = orderItem.Number
            };
            var result = JDSV.CreateAfsApply(dto);

            if (result.isSuccess)
            {
                // 保存到 JdOrderRefundAfterSales
                var jdOrderRefundAfterSales = JdOrderRefundAfterSales.CreateJdOrderRefundAfterSales();
                jdOrderRefundAfterSales.AppId = order.AppId;
                jdOrderRefundAfterSales.OrderRefundAfterSalesId = refund.Id;
                jdOrderRefundAfterSales.OrderId             = orderItem.CommodityOrderId;
                jdOrderRefundAfterSales.OrderItemId         = orderItem.Id;
                jdOrderRefundAfterSales.JdOrderId           = jdorderitem.JdOrderId;
                jdOrderRefundAfterSales.CommodityId         = orderItem.CommodityId;
                jdOrderRefundAfterSales.CommodityNum        = orderItem.Number;
                jdOrderRefundAfterSales.SkuId               = jdorderitem.CommoditySkuId;
                jdOrderRefundAfterSales.Cancel              = 1;
                jdOrderRefundAfterSales.PickwareType        = 4;
                jdOrderRefundAfterSales.CustomerContactName = address.customerContactName;
                jdOrderRefundAfterSales.CustomerTel         = address.customerTel;
                jdOrderRefundAfterSales.PickwareAddress     = address.ProviceCityStr + address.pickwareAddress;
                jdOrderRefundAfterSales.AfsServiceStep      = 10;
                jdOrderRefundAfterSales.AfsServiceStepName  = "申请阶段";
                contextSession.SaveObject(jdOrderRefundAfterSales);
            }
            else
            {
                bool isWriteLog = false;
                switch (result.ResultCode)
                {
                case -1:     // 系统异常
                    break;

                //京东异常
                case 2000:
                    result.Message = "提交失败,请重试~";
                    break;

                case 6000:
                    result.Message = "网络异常,请稍后重试~";
                    break;

                case 6001:
                case 6002:
                case 6003:
                case 6004:
                case 6006:
                case 6007:
                case 6011:
                case 6012:
                    isWriteLog = true;
                    break;

                case 6005:
                    result.Message = "收货后才能申请退货~";
                    break;

                case 6008:
                    result.Message = "收货后才能申请退货~";
                    break;

                case 6009:
                    result.Message = "该商品不支持售后~";
                    break;

                case 6010:
                    result.Message = "退货申请商品数量超过订单商品数量~";
                    isWriteLog     = true;
                    break;

                case 6013:
                    result.Message = "售后申请审核未通过,如有异议,请联系客服处理~";
                    break;

                default:
                    break;
                }
                if (isWriteLog)
                {
                    var log = new Jinher.AMP.BTP.Deploy.JdlogsDTO
                    {
                        Id      = Guid.NewGuid(),
                        Content = "【" + order.Code + "】中的" + orderItem.Name + "商品【" + jdorderitem.CommoditySkuId + "】,提交售后申请失败,失败原因:【" + result.ResultCode + ":" + result.Message + "】"
                    };
                    JdlogsFacade facade = new JdlogsFacade();
                    facade.SaveJdlogs(log);
                }
            }
            return(result);
        }