/// <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); }
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); }