/// <summary> /// 获取二级地址 /// </summary> /// <returns></returns> public ThirdResponse <Jinher.AMP.BTP.Deploy.CustomDTO.JD.AreaDTO> GetCityExt(string Code) { ThirdResponse <Jinher.AMP.BTP.Deploy.CustomDTO.JD.AreaDTO> res = new ThirdResponse <Deploy.CustomDTO.JD.AreaDTO>(); try { Jinher.AMP.BTP.Deploy.CustomDTO.JD.AreaDTO Areadto = new Deploy.CustomDTO.JD.AreaDTO(); List <Jinher.AMP.BTP.Deploy.CustomDTO.JD.AreaDto> objlist = new List <Deploy.CustomDTO.JD.AreaDto>(); string objstr = JdHelper.GetCity(Code); if (!string.IsNullOrEmpty(objstr)) { JObject obj = JObject.Parse(objstr); if (obj.Count > 0) { foreach (var item in obj) { Jinher.AMP.BTP.Deploy.CustomDTO.JD.AreaDto model = new Deploy.CustomDTO.JD.AreaDto(); model.Name = item.Key; model.Code = item.Value.ToString(); objlist.Add(model); } } Areadto.Count = objlist.Count(); Areadto.Data = objlist; res.Code = 200; res.Result = Areadto; res.Msg = "查询成功!"; } else { res.Code = 200; res.Result = Areadto; res.Msg = "查询成功!"; } } catch (Exception ex) { res.Code = 200; res.Result = new Deploy.CustomDTO.JD.AreaDTO(); res.Msg = ex.Message; } return(res); }
/// <summary> /// 第三方电商售后服务退货结果回调 /// </summary> /// <param name="resultJsonStr"></param> /// <returns></returns> public static ThirdResponse RefundResultCallback(string resultJsonStr) { LogHelper.Debug("ThirdECommerceServiceHelper.RefundResultCallback第三方电商售后服务退货结果回调,Input:" + resultJsonStr); if (string.IsNullOrEmpty(resultJsonStr)) { return new ThirdResponse { Code = 20500, Msg = "缺少参数serviceRefundResult" } } ; var result = new ThirdResponse { Code = 200, Msg = "ok" }; try { var serviceResult = JsonConvert.DeserializeObject <ThirdServiceRefundResult>(resultJsonStr); if (serviceResult == null) { return new ThirdResponse { Code = 20501, Msg = "非法参数serviceRejectResult" } } ; Guid orderId, serviceId; DateTime auditTime; Guid.TryParse(serviceResult.OrderId, out orderId); Guid.TryParse(serviceResult.ServiceId, out serviceId); DateTime.TryParse(serviceResult.AuditTime, out auditTime); if (orderId == Guid.Empty) { return new ThirdResponse { Code = 20502, Msg = "非法参数OrderId" } } ; if (serviceId == Guid.Empty) { return new ThirdResponse { Code = 20503, Msg = "非法参数ServiceId" } } ; if (string.IsNullOrEmpty(serviceResult.SkuId)) { return new ThirdResponse { Code = 20504, Msg = "非法参数SkuId" } } ; if (auditTime == DateTime.MinValue) { return new ThirdResponse { Code = 20505, Msg = "非法参数AuditTime" } } ; if (serviceResult.RefundStatus < 0 || serviceResult.RefundStatus > 1) { return new ThirdResponse { Code = 20506, Msg = "非法参数RefundStatus" } } ; if (serviceResult.RefundStatus == 1 && string.IsNullOrEmpty(serviceResult.RejectReason)) { return new ThirdResponse { Code = 20507, Msg = "缺少参数RejectReason" } } ; #region 判断是否第三方电商售后服务单及获取售后服务单信息 var service = ThirdECService.ObjectSet().FirstOrDefault(o => o.OrderId == orderId && o.OrderRefundAfterSalesId == serviceId && o.SkuId == serviceResult.SkuId); if (service == null) { return new ThirdResponse { Code = 20508, Msg = "未找到此服务单" } } ; var orderRefund = OrderRefundAfterSales.ObjectSet().FirstOrDefault(p => p.Id == service.OrderRefundAfterSalesId); if (service == null) { return new ThirdResponse { Code = 20509, Msg = "未找到此服务单" } } ; if (service.AgreeRefundTime.HasValue || service.RejectRefundTime.HasValue) { return(result); } #endregion #region 退款处理 var errorMessage = string.Empty; if (serviceResult.RefundStatus == 0) { var refundResult = OrderHelper.ApproveOrderRefundAfterSales(orderRefund.OrderId, orderRefund.OrderItemId ?? Guid.Empty); if (refundResult.ResultCode == 0) { service.AgreeRefundTime = auditTime; service.StateName = "允许退货"; service.StateDesc = "售后服务退货结果回调:允许退货"; } else { errorMessage = refundResult.Message; result = new ThirdResponse { Code = 20510, Msg = "内部异常" }; } } else { var refundResult = OrderHelper.RejectOrderRefundAfterSales(orderId, orderRefund.OrderItemId ?? Guid.Empty, serviceResult.RejectReason); if (refundResult.ResultCode == 0) { service.RejectRefundTime = auditTime; service.StateName = "拒绝退货"; service.StateDesc = "售后服务退货结果回调:拒绝退货," + serviceResult.RejectReason; } else { errorMessage = refundResult.Message; result = new ThirdResponse { Code = 20511, Msg = "内部异常" }; } } #endregion #region 保存ThirdECOrderJournal var journal = new ThirdECServiceJournal { Id = Guid.NewGuid(), OrderId = service.OrderId, OrderCode = service.OrderCode, OrderItemId = service.OrderItemId, OrderRefundAfterSalesId = service.OrderRefundAfterSalesId, Name = serviceResult.RefundStatus == 0 ? "允许退货" : "拒绝退货", Details = string.IsNullOrEmpty(errorMessage) ? service.StateDesc : errorMessage, Json = resultJsonStr, EntityState = EntityState.Added }; ContextFactory.CurrentThreadContext.SaveObject(journal); #endregion int count = ContextFactory.CurrentThreadContext.SaveChanges(); if (count == 0) { LogHelper.Error(string.Format("ThirdECommerceServiceHelper.RefundResultCallback第三方电商售后服务退货结果回调数据保存失败,入参:{0}", resultJsonStr)); result = new ThirdResponse { Code = 20512, Msg = "内部异常" }; } } catch (Exception ex) { LogHelper.Error("ThirdECommerceServiceHelper.RefundResultCallback第三方电商售后服务退货结果回调异常,Input:" + resultJsonStr, ex); result = new ThirdResponse { Code = 20513, Msg = "内部异常" }; } return(result); } #endregion }
/// <summary> /// 第三方电商允许售后结果回调 /// </summary> /// <param name="resultJsonStr"></param> public static ThirdResponse AgreeServiceCallback(string resultJsonStr) { LogHelper.Debug("ThirdECommerceServiceHelper.AgreeServiceCallback第三方电商允许售后结果回调,Input:" + resultJsonStr); if (string.IsNullOrEmpty(resultJsonStr)) { return new ThirdResponse { Code = 20100, Msg = "缺少参数serviceAgreeResult" } } ; var result = new ThirdResponse { Code = 200, Msg = "ok" }; try { var serviceResult = JsonConvert.DeserializeObject <ThirdServiceAgreeResult>(resultJsonStr); if (serviceResult == null) { return new ThirdResponse { Code = 20101, Msg = "非法参数serviceAgreeResult" } } ; Guid orderId, serviceId; DateTime agreeTime; Guid.TryParse(serviceResult.OrderId, out orderId); Guid.TryParse(serviceResult.ServiceId, out serviceId); DateTime.TryParse(serviceResult.AgreeTime, out agreeTime); if (orderId == Guid.Empty) { return new ThirdResponse { Code = 20102, Msg = "非法参数OrderId" } } ; if (serviceId == Guid.Empty) { return new ThirdResponse { Code = 20103, Msg = "非法参数ServiceId" } } ; if (agreeTime == DateTime.MinValue) { return new ThirdResponse { Code = 20104, Msg = "非法参数AgreeTime" } } ; if (serviceResult.Address == null) { return new ThirdResponse { Code = 20105, Msg = "非法参数Address" } } ; if (string.IsNullOrEmpty(serviceResult.Address.Name)) { return new ThirdResponse { Code = 20106, Msg = "缺少参数Address.Name" } } ; if (string.IsNullOrEmpty(serviceResult.Address.Phone)) { return new ThirdResponse { Code = 20107, Msg = "缺少参数Address.Phone" } } ; //if (string.IsNullOrEmpty(serviceResult.Address.ProvinceName)) return new ThirdResponse { Code = 20108, Msg = "缺少参数Address.ProvinceName" }; //if (string.IsNullOrEmpty(serviceResult.Address.CityName)) return new ThirdResponse { Code = 20109, Msg = "缺少参数Address.CityName" }; //if (string.IsNullOrEmpty(serviceResult.Address.CountyName)) return new ThirdResponse { Code = 20110, Msg = "缺少参数Address.CountyName" }; //if (string.IsNullOrEmpty(serviceResult.Address.TownName)) return new ThirdResponse { Code = 20111, Msg = "缺少参数Address.TownName" }; //if (string.IsNullOrEmpty(serviceResult.Address.AddressDetail)) return new ThirdResponse { Code = 20112, Msg = "缺少参数Address.AddressDetail" }; if (string.IsNullOrEmpty(serviceResult.Address.FullAddress)) { return new ThirdResponse { Code = 20113, Msg = "缺少参数Address.FullAddress" } } ; #region 判断是否第三方电商售后服务单及获取售后服务单信息 var service = ThirdECService.ObjectSet().FirstOrDefault(o => o.OrderId == orderId && o.OrderRefundAfterSalesId == serviceId); if (service == null) { return new ThirdResponse { Code = 20114, Msg = "未找到此服务单" } } ; var orderRefund = OrderRefundAfterSales.ObjectSet().FirstOrDefault(p => p.Id == service.OrderRefundAfterSalesId); if (service == null) { return new ThirdResponse { Code = 20115, Msg = "未找到此服务单" } } ; if (service.AgreeApplyTime.HasValue) { return(result); } #endregion #region 退款处理 var refundResult = OrderHelper.ApproveOrderRefundAfterSales(orderId, orderRefund.OrderItemId ?? Guid.Empty); if (refundResult.ResultCode == 0) { service.AgreeApplyTime = agreeTime; service.StateName = "允许售后"; service.StateDesc = "售后服务申请审核结果回调:允许售后"; orderRefund.RefundReceiveFullAddress = serviceResult.Address.FullAddress; orderRefund.RefundReceiveMobile = serviceResult.Address.Phone; orderRefund.RefundReceiveName = serviceResult.Address.Name; } else { result = new ThirdResponse { Code = 20116, Msg = "内部异常" } }; #endregion #region 保存ThirdECOrderJournal var journal = new ThirdECServiceJournal { Id = Guid.NewGuid(), OrderId = service.OrderId, OrderCode = service.OrderCode, OrderItemId = service.OrderItemId, OrderRefundAfterSalesId = service.OrderRefundAfterSalesId, Name = "售后服务申请审核结果回调:允许售后", Details = refundResult.ResultCode == 0 ? "售后服务申请审核结果回调:允许售后" : refundResult.Message, Json = resultJsonStr, EntityState = EntityState.Added }; ContextFactory.CurrentThreadContext.SaveObject(journal); #endregion int count = ContextFactory.CurrentThreadContext.SaveChanges(); if (count == 0) { LogHelper.Error(string.Format("ThirdECommerceServiceHelper.AgreeServiceCallback第三方电商允许售后结果回调数据保存失败,入参:{0}", resultJsonStr)); result = new ThirdResponse { Code = 20117, Msg = "内部异常" }; } } catch (Exception ex) { LogHelper.Error("ThirdECommerceServiceHelper.AgreeServiceCallback第三方电商允许售后结果回调异常,Input:" + resultJsonStr, ex); result = new ThirdResponse { Code = 20118, Msg = "内部异常" }; } return(result); }
/// <summary> /// 第三方电商售后服务超过X天未收到退货物流回调 /// </summary> /// <param name="resultJsonStr"></param> /// <returns></returns> public static ThirdResponse NotReceiveMailCallback(string resultJsonStr) { LogHelper.Debug("ThirdECommerceServiceHelper.NotReceiveMailCallback第三方电商售后服务超过X天未收到退货物流回调,Input:" + resultJsonStr); if (string.IsNullOrEmpty(resultJsonStr)) { return new ThirdResponse { Code = 20400, Msg = "缺少参数mailNotReceiveResult" } } ; var result = new ThirdResponse { Code = 200, Msg = "ok" }; try { var mailResult = JsonConvert.DeserializeObject <ThirdMailNotReceiveResult>(resultJsonStr); if (mailResult == null) { return new ThirdResponse { Code = 20401, Msg = "非法参数mailNotReceiveResult" } } ; Guid orderId, serviceId; DateTime notReceiveTime; Guid.TryParse(mailResult.OrderId, out orderId); Guid.TryParse(mailResult.ServiceId, out serviceId); DateTime.TryParse(mailResult.NotifyTime, out notReceiveTime); if (orderId == Guid.Empty) { return new ThirdResponse { Code = 20402, Msg = "非法参数OrderId" } } ; if (orderId == Guid.Empty) { return new ThirdResponse { Code = 20403, Msg = "非法参数ServiceId" } } ; if (notReceiveTime == DateTime.MinValue) { return new ThirdResponse { Code = 20404, Msg = "非法参数ReceiveTime" } } ; if (mailResult.Days <= 0) { return new ThirdResponse { Code = 20405, Msg = "非法参数Days" } } ; #region 判断是否第三方电商售后服务单及获取售后服务单信息 var service = ThirdECService.ObjectSet().FirstOrDefault(o => o.OrderId == orderId && o.OrderRefundAfterSalesId == serviceId); if (service == null) { return new ThirdResponse { Code = 20406, Msg = "未找到此服务单" } } ; if (service.MailNotReceiveTime.HasValue) { return(result); } service.MailNotReceiveTime = notReceiveTime; service.StateName = "超过" + mailResult.Days + "天未收到退货物流"; service.StateDesc = service.StateDesc; #endregion #region 保存ThirdECOrderJournal var journal = new ThirdECServiceJournal { Id = Guid.NewGuid(), OrderId = service.OrderId, OrderCode = service.OrderCode, OrderItemId = service.OrderItemId, OrderRefundAfterSalesId = service.OrderRefundAfterSalesId, Name = service.StateDesc, Details = service.StateDesc, Json = resultJsonStr, EntityState = EntityState.Added }; ContextFactory.CurrentThreadContext.SaveObject(journal); #endregion int count = ContextFactory.CurrentThreadContext.SaveChanges(); if (count == 0) { LogHelper.Error(string.Format("ThirdECommerceServiceHelper.NotReceiveMailCallback第三方电商售后服务超过X天未收到退货物流回调数据保存失败,入参:{0}", resultJsonStr)); result = new ThirdResponse { Code = 20207, Msg = "内部异常" }; } } catch (Exception ex) { LogHelper.Error("ThirdECommerceServiceHelper.NotReceiveMailCallback第三方电商售后服务超过X天未收到退货物流回调异常,Input:" + resultJsonStr, ex); result = new ThirdResponse { Code = 20208, Msg = "内部异常" }; } return(result); }
/// <summary> /// 第三方电商订单取消审核结果回调 /// </summary> /// <param name="result"></param> public static ThirdResponse CancelOrderCallback(string resultJsonStr) { LogHelper.Debug("ThirdECommerceOrderHelper.CancelOrderCallback第三方电商订单取消审核结果回调,Input:" + resultJsonStr); if (string.IsNullOrEmpty(resultJsonStr)) { return new ThirdResponse { Code = 10200, Msg = "缺少参数orderCancelResult" } } ; var result = new ThirdResponse { Code = 200, Msg = "ok" }; try { var cancelResult = JsonConvert.DeserializeObject <ThirdOrderCancelResultCallBack>(resultJsonStr); if (cancelResult == null) { return new ThirdResponse { Code = 10201, Msg = "非法参数orderCancelResult" } } ; Guid orderId; DateTime auditTime; Guid.TryParse(cancelResult.OrderId, out orderId); DateTime.TryParse(cancelResult.AuditTime, out auditTime); if (orderId == Guid.Empty) { return new ThirdResponse { Code = 10202, Msg = "非法参数OrderId" } } ; if (!new List <int> { 0, 1 }.Contains(cancelResult.CancelStatus)) { return new ThirdResponse { Code = 10203, Msg = "非法参数CancelStatus" } } ; if (cancelResult.CancelStatus == 0 && string.IsNullOrEmpty(cancelResult.RejectReason)) { return new ThirdResponse { Code = 10204, Msg = "非法参数RejectReason" } } ; if (auditTime == DateTime.MinValue) { return new ThirdResponse { Code = 10205, Msg = "非法参数CancelStatus" } } ; #region 判断是否第三方电商订单及获取订单信息 var order = ThirdECOrder.ObjectSet().FirstOrDefault(o => o.OrderId == orderId); if (order == null) { return new ThirdResponse { Code = 10206, Msg = "未找到此订单" } } ; if (order.CancelCallBackTime.HasValue) { return(result); } #endregion #region 处理退款 var errorMessage = string.Empty; OrderSV.UnLockOrder(orderId); if (cancelResult.CancelStatus == 0) { var optResult = OrderHelper.RejectOrderRefund(orderId, cancelResult.RejectReason); if (optResult.ResultCode != 0) { errorMessage = optResult.Message; LogHelper.Error("ThirdECommerceOrderHelper.CancelOrderCallback 取消订单失败,RejectOrderRefund返回:" + JsonConvert.SerializeObject(optResult)); result = new ThirdResponse { Code = 10207, Msg = "内部异常" }; } else { order.StateName = "不允许取消"; order.CancelCallBackTime = auditTime; order.StateDesc = "订单取消审核结果回调:不允许取消," + cancelResult.RejectReason; } } else { order.StateName = "允许取消"; var optResult = OrderHelper.ApproveCancelOrder(orderId); if (optResult.ResultCode != 0) { errorMessage = optResult.Message; LogHelper.Error("ThirdECommerceOrderHelper.CancelOrderCallback 取消订单失败,ApproveCancelOrder返回:" + JsonConvert.SerializeObject(optResult)); result = new ThirdResponse { Code = 10208, Msg = "内部异常" }; } else { order.StateName = "允许取消"; order.CancelCallBackTime = auditTime; order.StateDesc = "订单取消审核结果回调:允许取消"; } } #endregion #region 保存ThirdECOrderJournal var thirdOrderJournal = new ThirdECOrderJournal { Id = Guid.NewGuid(), OrderId = order.OrderId, OrderCode = order.OrderCode, SubTime = DateTime.Now, SubId = order.SubId, Name = "取消订单审核结果回调", Details = result.Successed ? order.StateDesc : errorMessage, Json = resultJsonStr, EntityState = EntityState.Added }; ContextFactory.CurrentThreadContext.SaveObject(thirdOrderJournal); #endregion int count = ContextFactory.CurrentThreadContext.SaveChanges(); if (count == 0) { LogHelper.Error(string.Format("ThirdECommerceOrderHelper.CancelOrderCallback第三方电商订单取消审核结果回调数据保存失败,入参:{0}", resultJsonStr)); return(new ThirdResponse { Code = 10209, Msg = "内部异常" }); } } catch (JsonReaderException ex) { LogHelper.Error("ThirdECommerceOrderHelper.CancelOrderCallback第三方电商订单取消审核结果回调反序列化异常,Input:" + resultJsonStr, ex); return(new ThirdResponse <ThirdOrderCancelResult> { Msg = "反序列化异常" }); } catch (Exception ex) { LogHelper.Error("ThirdECommerceOrderHelper.CancelOrderCallback第三方电商订单取消审核结果回调异常,Input:" + resultJsonStr, ex); return(new ThirdResponse { Code = 10210, Msg = "内部异常" }); } return(result); }