Example #1
0
 /// <summary>
 /// 获取苏宁订单售后状态状态
 /// </summary>
 /// <param name="refund"></param>
 /// <param name="orderId"></param>
 /// <param name="orderItemId"></param>
 public static void GetSNRefundInfo(SubmitOrderRefundDTO refund, Guid orderId, Guid orderItemId)
 {
     try
     {
         var snOrderRefundAfterSales = SNOrderRefundAfterSales.ObjectSet().Where(_ => _.OrderRefundAfterSalesId == refund.Id).FirstOrDefault();
         if (snOrderRefundAfterSales != null)
         {
             refund.SnOrderRefundInfo = new SNOrderRefundDto
             {
                 ServiceId           = snOrderRefundAfterSales.AfsServiceId,
                 Cancel              = snOrderRefundAfterSales.Cancel,
                 CustomerContactName = snOrderRefundAfterSales.CustomerContactName,
                 CustomerTel         = snOrderRefundAfterSales.CustomerTel,
                 PickwareAddress     = snOrderRefundAfterSales.PickwareAddress,
                 PickwareType        = snOrderRefundAfterSales.PickwareType
             };
         }
         //判断是否是苏宁订单  防止售后表没数据,造成退款详情页异常
         SNOrderItemDTO snModel = new SNOrderItemDTO
         {
             OrderId     = orderId,
             OrderItemId = orderItemId
         };
         var snOrderItemList = new SNAfterSaleFacade().GetSNOrderItemList(snModel).ToList();
         if (snOrderItemList.Count() > 0)
         {
             refund.IsSNOrder = true;
         }
     }
     catch (Exception ex)
     {
         LogHelper.Error(@"SNOrderAfterSalesHelper.GetSNRefundInfo 【苏宁-售后】获取苏宁订单售后状态状态  失败 ", ex);
     }
 }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="contextSession"></param>
        /// <param name="order"></param>
        /// <param name="orderItem"></param>
        /// <param name="refund"></param>
        /// <param name="refundDTO"></param>
        /// <returns></returns>
        public static ResultDTO SNSubmitRefund(ContextSession contextSession, CommodityOrder order, OrderItem orderItem, OrderRefundAfterSales refund, SubmitOrderRefundDTO refundDTO)
        {
            //if (address == null)
            //{
            //    return new ResultDTO { isSuccess = false, Message = "取件地址不能为空。" };
            //}
            var snOrderItem = SNOrderItem.ObjectSet()
                              .Where(_ => _.OrderItemId == refundDTO.OrderItemId).FirstOrDefault();

            if (snOrderItem == null)
            {
                return(new ResultDTO {
                    isSuccess = false, ResultCode = 1, Message = "该订单不是苏宁订单。"
                });
            }
            SNReturnPartOrderDTO retDto = new SNReturnPartOrderDTO
            {
                OrderId  = snOrderItem.CustomOrderId,
                SkusList = new List <SNReturnPartOrderAddSkusDTO>()
                {
                    new SNReturnPartOrderAddSkusDTO()
                    {
                        SkuId = snOrderItem.CustomSkuId, Num = orderItem.Number.ToString()
                    }
                }
            };

            ResultDTO result = new ResultDTO {
                isSuccess = false, ResultCode = 1, Message = "退货失败"
            };
            SNFactoryDeliveryEnum fac = GetOrderFactoryDeliveryType(orderItem.CommodityOrderId, snOrderItem.CustomSkuId);

            if (fac == SNFactoryDeliveryEnum.NonFactoryDelivery)
            {
                result = SuningSV.ReturnPartOrder(retDto);;
                if (result.isSuccess)
                {
                    // 保存到 SNOrderRefundAfterSales
                    SNOrderRefundAfterSales snOrderRefundAfterSales = new SNOrderRefundAfterSales
                    {
                        Id         = Guid.NewGuid(),
                        SubTime    = DateTime.Now,
                        ModifiedOn = DateTime.Now,
                        AppId      = order.AppId,
                        OrderRefundAfterSalesId = refund.Id,
                        OrderId       = orderItem.CommodityOrderId,
                        OrderItemId   = orderItem.Id,
                        CustomOrderId = snOrderItem.CustomOrderId,
                        CommodityId   = orderItem.CommodityId,
                        CommodityNum  = orderItem.Number,
                        CustomSkuId   = snOrderItem.CustomSkuId,
                        Cancel        = 1,
                        //取件方式(必填 1 上门取件-非厂送-自营    2快递寄回-厂送 )
                        PickwareType = fac.GetHashCode(),

                        CustomerContactName = refundDTO.Address.customerContactName,
                        CustomerTel         = refundDTO.Address.customerTel,
                        PickwareAddress     = refundDTO.Address.ProviceCityStr + refundDTO.Address.pickwareAddress,
                        //暂时没用
                        AfsServiceId       = "",
                        AfsServiceStep     = 10,
                        AfsServiceStepName = "申请阶段",

                        EntityState = EntityState.Added
                    };

                    contextSession.SaveObject(snOrderRefundAfterSales);

                    UpdateApplyOrderStatus(contextSession, 3, orderItem.Id);
                }
                else
                {
                    UpdateApplyOrderStatus(contextSession, 4, orderItem.Id);
                    var log = new Deploy.JdlogsDTO
                    {
                        Id                 = Guid.NewGuid(),
                        SubTime            = DateTime.Now,
                        ThirdECommerceType = ThirdECommerceTypeEnum.SuNingYiGou.GetHashCode(),
                        Content            = "【苏宁售后】----【" + order.Code + "】中的" + orderItem.Name + "商品【" + snOrderItem.CustomSkuId + "】,提交售后申请失败,失败原因:【" + result.ResultCode + ":" + result.Message + "】"
                    };
                    JdlogsFacade facade = new JdlogsFacade();
                    facade.SaveJdlogs(log);
                }
            }
            else
            {
                // 保存到 SNOrderRefundAfterSales
                SNOrderRefundAfterSales snOrderRefundAfterSales = new SNOrderRefundAfterSales
                {
                    Id         = Guid.NewGuid(),
                    SubTime    = DateTime.Now,
                    ModifiedOn = DateTime.Now,
                    AppId      = order.AppId,
                    OrderRefundAfterSalesId = refund.Id,
                    OrderId       = orderItem.CommodityOrderId,
                    OrderItemId   = orderItem.Id,
                    CustomOrderId = snOrderItem.CustomOrderId,
                    CommodityId   = orderItem.CommodityId,
                    CommodityNum  = orderItem.Number,
                    CustomSkuId   = snOrderItem.CustomSkuId,
                    Cancel        = 1,
                    //取件方式(必填 1 上门取件-非厂送-自营    2快递寄回-厂送 )
                    PickwareType = fac.GetHashCode(),

                    CustomerContactName = refundDTO.Address.customerContactName,
                    CustomerTel         = refundDTO.Address.customerTel,
                    PickwareAddress     = refundDTO.Address.ProviceCityStr + refundDTO.Address.pickwareAddress,
                    //暂时没用
                    AfsServiceId       = "",
                    AfsServiceStep     = 10,
                    AfsServiceStepName = "申请阶段",

                    EntityState = EntityState.Added
                };

                contextSession.SaveObject(snOrderRefundAfterSales);

                UpdateApplyOrderStatus(contextSession, 3, orderItem.Id);
                result = new ResultDTO {
                    isSuccess = true, ResultCode = 0, Message = "退款申请成功"
                };
            }

            return(result);
        }