public void MarkDelivery(Shop shop, string popOrderId, PopPayType payType, string deliveryCompany, string deliveryNumber) { if (shop.AppEnabled == false) { throw new Exception("店铺订单发货接口已禁用,无法调用相应接口操作"); } this.InvokeWithRefreshAccessToken(shop, () => GetPop(shop.PopType).MarkDelivery(shop, popOrderId, payType, deliveryCompany, deliveryNumber)); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { PopPayType type = (PopPayType)value; if (type == PopPayType.COD) { return(Visibility.Visible); } return(Visibility.Collapsed); }
public DataCollectionResponse <DeliveryOut> GetByAll(PopPayType payType, int shopId, string deliveryCompany, string deliveryNumber, string vendor, string number, string shipper, DateTime startTime, DateTime endTime, int pageIndex, int pageSize) { try { return(this.dao.GetByAll(payType, shopId, deliveryCompany, deliveryNumber, vendor, number, shipper, startTime, endTime, pageIndex, pageSize)); } catch (Exception ex) { throw new WebFaultException <ResponseBase>(new ResponseBase(ex.Message), System.Net.HttpStatusCode.OK); } }
public DataCollectionResponse <DeliveryOut> GetByAll(PopPayType payType, int shopId, string deliveryCompany, string deliveryNumber, string vendor, string number, string shipper, DateTime startTime, DateTime endTime, int pageIndex, int pageSize) { string hsql = "from " + this.GetEntiyName() + " where "; List <Object> objs = new List <object>(); hsql += this.MakeQuery("PopPayType", (int)payType, (int)PopPayType.None); hsql += this.MakeQuery("ShopId", shopId); hsql += this.MakeQuery("DeliveryCompany", deliveryCompany, objs); hsql += this.MakeQuery("DeliveryNumber", deliveryNumber, objs); hsql += this.MakeQuery("CreateTime", startTime, true); hsql += this.MakeQuery("CreateTime", endTime, false); hsql += this.MakeQueryLike("GoodsInfo", vendor, objs); hsql += this.MakeQueryLike("GoodsInfo", number, objs); hsql += this.MakeQueryLike("Shipper", shipper, objs); return(this.GetPage(hsql, pageIndex, pageSize, objs.ToArray())); }
public DataCollectionResponse <DeliveryOut> GetByAll(PopPayType payType, long shopId, string deliveryCompany, string deliveryNumber, string vendor, string number, string shipper, DateTime startTime, DateTime endTime, int pageIndex, int pageSize) { System.Collections.Generic.Dictionary <string, object> para = new System.Collections.Generic.Dictionary <string, object>(); para["payType"] = payType; para["shopId"] = shopId; para["deliveryCompany"] = deliveryCompany; para["deliveryNumber"] = deliveryNumber; para["vendor"] = vendor; para["number"] = number; para["shipper"] = shipper; para["startTime"] = startTime; para["endTime"] = endTime; para["pageIndex"] = pageIndex; para["pageSize"] = pageSize; return(DoPost <DataCollectionResponse <DeliveryOut> >(para)); }
public abstract void MarkDelivery(Shop shop, string popOrderId, PopPayType payType, string deliveryCompany, string deliveryNumber);
/// <summary> /// 获取已付款和已打印的订单,同时会调用接口下载订单 /// </summary> /// <param name="payType">支付类型</param> /// <returns></returns> public static List <Order> DownloadOrder(PopPayType payType, string shipper) { var allShops = ServiceContainer.GetService <ShopService>().GetByAll().Datas.Where(obj => obj.Enabled).ToList(); var allAppEnabledShops = allShops.Where(obj => obj.AppEnabled).ToArray(); var allAppUnEnabledShops = allShops.Where(obj => obj.AppEnabled == false).ToArray(); if (allShops.Count < 1) { return(new List <Order>()); } string mode = LocalConfigService.GetValue(SystemNames.CONFIG_ORDER_DOWNLOAD_MODE, "").Trim(); if (mode.Equals("本地读取")) { return(ServiceContainer.GetService <OrderService>().GetPayedAndPrintedOrders(null, OrderCreateType.NONE, payType, shipper, 0, 0).Datas.OrderBy(obj => obj.ShopId).ToList()); } OrderDownloadWindow win = new OrderDownloadWindow() { PayType = payType }; var ret = win.ShowDialog(); if (ret == null || ret.Value == false) { return(new List <Order>()); } var onlineOrders = win.Orders.Where(obj => obj.PopPayType == payType).ToList(); if (allAppEnabledShops.Length > 0) { //对于采用自动下载订单的店铺,需要再读取其手动创建的订单 var orders = ServiceContainer.GetService <OrderService>().GetPayedAndPrintedOrders(allAppEnabledShops.Select(obj => obj.Id).ToArray(), OrderCreateType.MANUAL, payType, shipper, 0, 0).Datas; if (orders.Count > 0) { onlineOrders.AddRange(orders); } } if (allAppUnEnabledShops.Length > 0) { //对于没有自动下载的订单需要读取所有的订单 var orders = ServiceContainer.GetService <OrderService>().GetPayedAndPrintedOrders(allAppUnEnabledShops.Select(obj => obj.Id).ToArray(), OrderCreateType.NONE, payType, shipper, 0, 0).Datas; if (orders.Count > 0) { onlineOrders.AddRange(orders); } } if (string.IsNullOrWhiteSpace(shipper)) { return(onlineOrders); } var retOrders = new List <Order>(); foreach (var o in onlineOrders) { if (o.OrderGoodss == null || o.OrderGoodss.Count < 0) { continue; } if (o.OrderGoodss.Any(obj => obj.Shipper.Equals(shipper, StringComparison.OrdinalIgnoreCase))) { retOrders.Add(o); } } return(retOrders); }
public float ComputeDeliveryMoneyImpl(string deliveryCompany, string address, bool empty, PopPayType popPayType, float weight) { try { var dt = this.GetAllInCach().FirstOrDefault(obj => obj.DeliveryCompany == deliveryCompany && ((obj.OnlinePayTypeUse && popPayType == PopPayType.ONLINE) || (obj.CodPayTypeUse && popPayType == PopPayType.COD))); if (dt == null) { throw new Exception("未找到匹配的模板"); } if (empty) { return(dt.EmptyHotPaperMoney); } DeliveryTemplateArea da = dt.Areas.FirstOrDefault(obj => string.IsNullOrWhiteSpace(obj.Areas)); foreach (var v in dt.Areas) { if (string.IsNullOrWhiteSpace(v.Areas) || string.IsNullOrWhiteSpace(address)) { continue; } string[] ss = v.Areas.Split(SP_Char, StringSplitOptions.RemoveEmptyEntries); //特殊地址 if (SPEICAL_ADDRESS.Any(obj => address.Contains(obj)) && ss.Any(obj => address.Contains(obj))) { da = v; break; } if (ss.Any(obj => address.StartsWith(obj))) { da = v; break; } } if (da == null) { throw new Exception("地址与运费模板:" + dt.Name + " 无法匹配且没有配置默认地区运费"); } int iw = (int)(weight * 100); int isw = (int)(da.StartWeight * 100); int isp = (int)(da.StartPrice * 100); int isws = (int)(da.StepWeight * 100); int ispp = (int)(da.StepPrice * 100); //未超过起始重量,或者起始重量为0表示通票 if (iw <= isw || isw <= 0) { return(isp * 1.0F / 100); } int money = isp + (iw - isw + isws - 1) / isws * ispp; return(money / 100F); } catch (Exception ex) { throw new WebFaultException <ResponseBase>(new ResponseBase { error = ex.Message }, System.Net.HttpStatusCode.OK); } }
public FloatResponse ComputeDeliveryMoney(string deliveryCompany, string address, bool empty, PopPayType popPayType, float weight) { try { return(new FloatResponse(ComputeDeliveryMoneyImpl(deliveryCompany, address, empty, popPayType, weight))); } catch (Exception ex) { throw new WebFaultException <ResponseBase>(new ResponseBase { error = ex.Message }, System.Net.HttpStatusCode.OK); } }
public override void MarkDelivery(Shop shop, string popOrderId, PopPayType payType, string deliveryCompany, string deliveryNumber) { throw new NotImplementedException(); }