/// <summary> /// 严选物流绑单回调补偿机制 /// </summary> public static void AutoDeliverOrder() { var yesterday = DateTime.Now.AddDays(-5); var ComOrders = (from co in CommodityOrder.ObjectSet() join yo in YXOrder.ObjectSet() on co.Id equals yo.OrderId where CustomConfig.YxAppIdList.Contains(co.AppId) && co.State == 1 && co.PaymentTime >= yesterday select co.Id).ToList(); LogHelper.Info("YXJob.AutoDeliverOrder 严选物流绑单回调补偿机制订单Id:" + string.Join(",", ComOrders.Select(c => c.ToString()).ToArray())); ComOrders.ForEach(p => { string jsonstr = string.Empty; var orderOut = YXSV.GetPaidOrder(p.ToString(), ref jsonstr); if (orderOut == null || orderOut.orderPackages == null) { return; } var orderPackages = orderOut.orderPackages.Select(o => new JobOrderPackage { orderId = p.ToString(), packageId = long.Parse(o.packageId), expressDetailInfos = o.expressDetailInfos, expCreateTime = ConvertDataTimeToLong(Convert.ToDateTime(o.expCreateTime)) }).ToList(); orderPackages.ForEach(op => { var package = SerializationHelper.JsonSerialize(op); YXOrderHelper.DeliverOrder(new YXSign(), package, true); }); }); }
/// <summary> /// 第三方电商获取订单项物流 /// </summary> /// <param name="appId"></param> /// <param name="orderId"></param> /// <returns></returns> public static List <ThirdOrderItemExpress> GetOrderItemExpress(Guid appId, Guid orderId, ref bool isThirdECommerceOrder) { var type = GetAppThirdECommerceType(appId); if (type == ThirdECommerceTypeEnum.WangYiYanXuan) { isThirdECommerceOrder = true; var list = YXOrderHelper.GetYXExpressDetailInfoSkuList(orderId); return(list.Select(p => new ThirdOrderItemExpress { OrderItemId = p.OrderItemId, ExpressNo = p.ExpressNo, SubExpressNos = p.SubExpressNos }).ToList()); } else if (type == ThirdECommerceTypeEnum.ByBiaoZhunJieKou) { isThirdECommerceOrder = true; var list = ThirdECommerceOrderHelper.GetThirdECOrderPackageSkuList(orderId); return(list.Select(p => new ThirdOrderItemExpress { OrderItemId = p.OrderItemId, ExpressNo = p.ExpressNo }).ToList()); } else if (type == ThirdECommerceTypeEnum.SuNingYiGou) { isThirdECommerceOrder = true; return(SuningSV.suning_govbus_rejection_getsnpackage(orderId)); } else if (type == ThirdECommerceTypeEnum.FangZheng) { isThirdECommerceOrder = true; return(FangZhengSV.FangZheng_Logistics_Package(orderId)); } return(new List <ThirdOrderItemExpress>()); }
/// <summary> /// 判断商品是否填写备注编码(第三方电商商品skuid) /// </summary> /// <param name="commodityList"></param> /// <param name="commodityStockList"></param> /// <returns>未设置备注编码的商品名称集合</returns> public static List <string> CheckJDCodeExists(Guid appId, List <CommodityDTO> commodityList, List <BTP.Deploy.CommodityStockDTO> commodityStockList) { if (commodityList == null && commodityList.Count == 0) { return(new List <string>()); } var type = GetAppThirdECommerceType(appId); if (!IsThirdECommerce(type)) { return(new List <string>()); } var commodityIdList = new List <Guid>(); commodityList.ForEach(p => { if (commodityStockList != null && commodityStockList.Count > 0 && commodityStockList.Any(x => x.CommodityId == p.Id)) { commodityIdList.AddRange(commodityStockList.Where(x => x.CommodityId == p.Id && string.IsNullOrEmpty(x.JDCode)).Select(x => x.CommodityId).ToList()); } else { if (string.IsNullOrEmpty(p.JDCode)) { commodityIdList.Add(p.Id); } } }); if (commodityIdList.Count > 0) { var commodityNameList = new List <string>(); if (IsWangYiYanXuan(appId)) { var appName = APPSV.GetAppName(appId); commodityNameList = commodityList.Where(p => commodityIdList.Contains(p.Id)).Select(p => p.Name).ToList(); var commodityNames = string.Join("、", commodityNameList); YXOrderHelper.SaveErrorLog(new YXOrderErrorLogDTO { Content = string.Format("{0}App中{1}等商品的备注编码不存在,请尽快补充填写~", appName, commodityNames), AppId = appId, OrderId = Guid.Empty, OrderCode = string.Empty, AppName = appName, CommodityNames = commodityNames, Json = string.Empty }); } return(commodityNameList); } return(new List <string>()); }
/// <summary> /// 是否第三方电商订单(暂时京东除外) /// </summary> /// <param name="appId">店铺Id</param> /// <param name="orderId">订单Id</param> /// <returns></returns> public static bool IsThirdECommerceOrder(Guid appId, Guid orderId) { var type = GetAppThirdECommerceType(appId); if (type == ThirdECommerceTypeEnum.WangYiYanXuan) { return(YXOrderHelper.IsYXOrder(orderId)); } if (type == ThirdECommerceTypeEnum.ByBiaoZhunJieKou) { return(ThirdECommerceOrderHelper.IsThirdECOrder(orderId)); } return(false); }
/// <summary> /// 第三方电商取消订单申请 /// </summary> /// <param name="order"></param> /// <returns></returns> public static ResultDTO CancelOrder(CommodityOrder order) { var type = GetAppThirdECommerceType(order.AppId); if (type == ThirdECommerceTypeEnum.WangYiYanXuan && YXOrderHelper.IsYXOrder(order.Id)) { return(YXOrderRefundHelper.CancelPaidOrder(order)); } else if (type == ThirdECommerceTypeEnum.ByBiaoZhunJieKou && ThirdECommerceOrderHelper.IsThirdECOrder(order.Id)) { return(ThirdECommerceOrderHelper.CancelOrder(order.Id)); } return(new ResultDTO { isSuccess = true }); }
public static void RepairUnPayOrder(Guid orderId) { var commodityOrderDTO = CommodityOrder.FindByID(orderId); var facade = new ISV.Facade.CommodityOrderFacade(); facade.ContextDTO = AuthorizeHelper.InitAuthorizeInfo(); if (commodityOrderDTO.RealPrice <= 0 && commodityOrderDTO.State == 0) { var rdto = facade.PayUpdateCommodityOrder(commodityOrderDTO.Id, commodityOrderDTO.UserId, commodityOrderDTO.AppId, 0, 0, 0, 0); if (rdto != null && rdto.ResultCode == 0) { #region 易捷卡密订单 if (commodityOrderDTO.OrderType == 3) { System.Threading.Tasks.Task.Factory.StartNew(() => { const string message = "易捷卡密订单调用盈科接口生成卡信息:"; var rdto1 = new IBP.Facade.YJBJCardFacade().Create(commodityOrderDTO.Id); if (rdto1.isSuccess) { LogHelper.Info(message + rdto1.Message); } else { LogHelper.Error(message + rdto1.Message); } }); } #endregion #region 进销存订单 if (commodityOrderDTO.AppType.HasValue && new List <short> { 2, 3 }.Contains(commodityOrderDTO.AppType.Value)) { new IBP.Facade.JdEclpOrderFacade().CreateOrder(commodityOrderDTO.Id, string.Empty); new IBP.Facade.JdEclpOrderFacade().SendPayInfoToHaiXin(commodityOrderDTO.Id); } #endregion new IBP.Facade.CommodityOrderFacade().SendPayInfoToYKBDMq(commodityOrderDTO.Id); //盈科大数据mq YXOrderHelper.CreateOrder(commodityOrderDTO.Id); //网易严选订单 } } }
/// <summary> /// 第三方电商获取订单项物流轨迹信息 /// </summary> /// <param name="appId"></param> /// <param name="orderItemId"></param> /// <returns></returns> public static ThirdOrderPackageExpress GetOrderItemExpressTrace(Guid appId, Guid orderItemId) { var type = GetAppThirdECommerceType(appId); if (type == ThirdECommerceTypeEnum.WangYiYanXuan) { var yxexpress = YXOrderHelper.GetExpressInfo(orderItemId); if (yxexpress == null) { return(null); } var express = new ThirdOrderPackageExpress { ExpressCompany = yxexpress.company, ExpressNo = yxexpress.number, ExpressTraceList = new List <ThirdExpressTrace>() }; if (yxexpress.content != null && yxexpress.content.Count > 0) { yxexpress.content.ForEach(p => { express.ExpressTraceList.Add(new ThirdExpressTrace { Desc = p.desc, Time = p.time }); }); } return(express); } else if (type == ThirdECommerceTypeEnum.ByBiaoZhunJieKou) { return(ThirdECommerceOrderHelper.GetExpressInfo(orderItemId)); } return(null); }
/// <summary> /// 第三方电商定时获取未确认收货订单物流轨迹信息 /// </summary> public static void GetOrderExpressForJob() { YXOrderHelper.GetExpressOrderForJob(); }