/// <summary> /// 生成UU配送订单 /// </summary> /// <returns></returns> public string AddUUOrder(DistributionApiModel model) { string msg = ""; UUCustomerRelation customerRelation = UUCustomerRelationBLL.SingleModel.GetModelByAid(model.aid, model.storeid, 0); if (customerRelation == null) { msg = "请先配置UU配送"; return(msg); } UUOrderFee feeResult = GetUUFee(model.storeid, model.aid, model.address, ref msg); if (msg.Length > 0) { return(msg); } string orderNum = CommonCore.GetOrderNumByUserId(model.userid.ToString()); string appid = UUApi._appid; string timestamp = UUApi.GetTimestamp(); //店铺信息 ShopInfo shopInfo = GetStoreAddressPoint(customerRelation.AId, customerRelation.StoreId, model.temptype); //生成订单实体类对象 UUOrder data = new UUOrder(appid, timestamp, customerRelation.OpenId, feeResult.price_token, feeResult.total_money, feeResult.need_paymoney, model.accepterName, model.accepterTelePhone, model.remark, UUApi._notisUrl, customerRelation.AId, customerRelation.StoreId, model.temptype, model.ordertype, model.orderid, orderNum); TransactionModel tran = new TransactionModel(); tran.Add(base.BuildAddSql(data)); if (!ExecuteTransactionDataCorect(tran.sqlArray, tran.ParameterArray)) { msg = "添加UU配送订单出错"; } return(msg); }
/// <summary> /// 生成快跑者配送订单 /// </summary> /// <param name="rid">权限表ID</param> /// <param name="userinfo">用户信息</param> /// <param name="orderid">订单ID</param> /// <param name="price">订单价格</param> /// <param name="receviename">收货人姓名</param> /// <param name="receviephone">收货人电话</param> /// <param name="address">收货人地址</param> /// <param name="lat">纬度</param> /// <param name="lnt">经度</param> /// <param name="ordertype">看枚举TmpType</param> /// <returns></returns> public string AddKPZOrder(DistributionApiModel model) { string msg = ""; KPZStoreRelation storerelation = KPZStoreRelationBLL.SingleModel.GetModelBySidAndAid(model.aid, model.storeid); if (storerelation == null) { msg = "请先配置快跑者配送"; return(msg); } //再请求一次腾讯地图,获取准确的坐标 AddressApi addressModel = AddressHelper.GetLngAndLatByAddress(model.address); if (addressModel != null && addressModel.result != null && addressModel.result.location != null) { model.lnt = addressModel.result.location.lng; model.lat = addressModel.result.location.lat; } TransactionModel tran = new TransactionModel(); string orderno = CommonCore.GetOrderNumByUserId(model.userid.ToString()); float buyprice = model.buyprice / 100.0f; float payfee = model.fee / 100.0f; int paystatus = 0; //店铺信息 ShopInfo shopinfo = GetStoreAddressPoint(storerelation.AId, storerelation.StoreId, model.temptype); //生成订单实体类对象 KPZOrder data = new KPZOrder(storerelation.Id, shopinfo.ShopName, storerelation.TelePhone, shopinfo.ShopAddress, shopinfo.ShopTag, model.ordercontent, model.remark, orderno, model.accepterName, model.accepterTelePhone, model.address, model.lnt + "," + model.lat, buyprice, buyprice, paystatus, payfee, model.orderid, model.aid, model.temptype, model.storeid); tran.Add(base.BuildAddSql(data)); if (!ExecuteTransactionDataCorect(tran.sqlArray, tran.ParameterArray)) { msg = "添加快跑者配送订单出错"; } return(msg); }
/// <summary> /// 添加达达订单 /// </summary> /// <param name="rid">权限表ID</param> /// <param name="userid">用户ID</param> /// <param name="orderid">订单ID</param> /// <param name="cityname">订单所在城市名</param> /// <param name="price">价格(分)</param> /// <param name="receivername">收货人姓名</param> /// <param name="receivertel">收货人电话</param> /// <param name="address">收货地址</param> /// <param name="lat">收货地址纬度</param> /// <param name="lnt">收货地址经度</param> /// <param name="desc">备注</param> /// <param name="ordertype">看枚举TmpType</param> /// <returns></returns> public string AddDadaOrder(DistributionApiModel model) { string msg = ""; DadaRelation relation = DadaRelationBLL.SingleModel.GetModelByRid(model.aid); if (relation != null) { DadaMerchant merchant = DadaMerchantBLL.SingleModel.GetModel(relation.merchantid); if (merchant != null) { DadaCity city = DadaCityBLL.SingleModel.GetModelName(model.cityname); if (city == null) { msg = "物流到不了城市" + model.cityname; return(msg); } DadaShop shop = DadaShopBLL.SingleModel.GetModelByMId(merchant.id); if (shop == null) { msg = "物流到不了城市" + model.cityname; return(msg); } TransactionModel tran = new TransactionModel(); string timestamp = _dadaapi.GetTimeStamp(); string callback = _dadaapi._ordercallback; string order_id = model.userid + DateTime.Now.ToString("yyyyMMddHHmmss"); string shopno = shop.origin_shop_id; float buyprice = model.buyprice / 100.0f; DadaOrder data = new DadaOrder(order_id, city.cityCode, shopno, buyprice, model.accepterName, model.accepterTelePhone, model.address, model.lat, model.lnt, model.remark, timestamp, callback); //data.id = Convert.ToInt32(base.Add(data)); tran.Add(base.BuildAddSql(data)); DadaOrderRelation orderrelation = new DadaOrderRelation(); orderrelation.dataid = model.aid; orderrelation.orderid = model.orderid; orderrelation.ordertype = model.temptype; orderrelation.uniqueorderno = order_id; //orderrelation.id = Convert.ToInt32(DadaOrderRelationBLL.SingleModel.Add(orderrelation)); tran.Add(DadaOrderRelationBLL.SingleModel.BuildAddSql(orderrelation)); if (!ExecuteTransactionDataCorect(tran.sqlArray, tran.ParameterArray)) { msg = "添加达达物流出错"; } } else { msg = "找不到商户号"; } } else { msg = "找不到管理表"; } return(msg); }
/// <summary> /// 物流平台对接 /// </summary> /// <param name="rid">权限表ID</param> /// <param name="userId">用户ID</param> /// <param name="cityName">城市名(达达)</param> /// <param name="lat">纬度</param> /// <param name="lnt">经度</param> /// <param name="distributionType">2:达达,3:蜂鸟</param> /// <param name="order">订单</param> /// <param name="carsData">购物车</param> /// <param name="orderType">TmpType枚举</param> /// <returns></returns> public string AddDistributionOrder(int rid, int userId, string cityName, string latStr, string lntStr, int distributionType, object order, object carsData, int tempType, int storeId = 0, int fee = 0, int orderType = 0) { if (distributionType <= 1) { return(""); } string dugmsg = ""; DistributionApiModel model = new DistributionApiModel(); model.aid = rid; model.userid = userId; model.temptype = tempType; model.storeid = storeId; model.fee = fee; model.cityname = cityName; model.ordertype = orderType; double lat = 0; if (!double.TryParse(latStr, out lat)) { dugmsg = "纬度转换错误"; return(dugmsg); } if (lat <= 0) { dugmsg = "纬度不能小于0"; return(dugmsg); } double lnt = 0; if (!double.TryParse(lntStr, out lnt)) { dugmsg = "经度转换错误"; return(dugmsg); } if (lnt <= 0) { dugmsg = "经度不能小于0"; return(dugmsg); } model.lat = lat; model.lnt = lnt; List <elegood> fngoods = new List <elegood>(); try { //物流数据提取 switch (tempType) { case (int)TmpType.小程序餐饮模板: FoodGoodsOrder data = (FoodGoodsOrder)order; model.orderid = data.Id; model.buyprice = data.BuyPrice; model.accepterName = data.AccepterName; model.accepterTelePhone = data.AccepterTelePhone; model.address = data.Address; model.remark = data.Message; if (carsData != null) { List <FoodGoodsCart> goodsCar = (List <FoodGoodsCart>)carsData; //商品信息 foreach (FoodGoodsCart good in goodsCar) { model.ordercontent += good.goodsMsg.GoodsName + $"({good.Count});"; } } dugmsg = "数据提取成功"; break; case (int)TmpType.智慧餐厅: DishOrder disOrder = (DishOrder)order; model.orderid = disOrder.id; model.buyprice = Convert.ToInt32(disOrder.order_amount * 100); model.accepterName = disOrder.consignee; model.accepterTelePhone = disOrder.mobile; model.address = disOrder.address; model.remark = disOrder.post_info; List <DishShoppingCart> dishGoodsCartList = DishShoppingCartBLL.SingleModel.GetCartsByOrderId(disOrder.id); if (dishGoodsCartList != null && dishGoodsCartList.Count > 0) { //商品信息 foreach (DishShoppingCart good in dishGoodsCartList) { model.ordercontent += good.goods_name + $"({good.goods_number});"; } } dugmsg = "数据提取成功"; break; } //添加物流订单 switch (distributionType) { case (int)miniAppOrderGetWay.达达配送: //生成达达物流订单 DadaOrderBLL dadaOrderBLL = new DadaOrderBLL(); dugmsg = dadaOrderBLL.AddDadaOrder(model); if (!string.IsNullOrEmpty(dugmsg)) { return($"达达订单生成失败:" + dugmsg); } break; case (int)miniAppOrderGetWay.蜂鸟配送: //生成蜂鸟物流订单 dugmsg = FNOrderBLL.SingleModel.AddFNOrder(fngoods, model); if (!string.IsNullOrEmpty(dugmsg)) { return("蜂鸟订单生成失败:" + dugmsg); } break; case (int)miniAppOrderGetWay.快跑者配送: //生成快跑者物流订单 dugmsg = KPZOrderBLL.SingleModel.AddKPZOrder(model); if (!string.IsNullOrEmpty(dugmsg)) { return("快跑者订单生成失败:" + dugmsg); } break; case (int)miniAppOrderGetWay.UU配送: //生成uu物流订单 dugmsg = UUOrderBLL.SingleModel.AddUUOrder(model); if (!string.IsNullOrEmpty(dugmsg)) { return("UU订单生成失败:" + dugmsg); } break; } } catch (Exception ex) { dugmsg += "物流数据转化失败:" + ex.Message; log4net.LogHelper.WriteInfo(this.GetType(), dugmsg); return(dugmsg); } return(dugmsg); }
/// <summary> /// 生成蜂鸟物流订单 /// </summary> /// <param name="rid">权限表ID</param> /// <param name="userinfo">用户信息</param> /// <param name="orderid">订单ID</param> /// <param name="goodcars">购物车</param> /// <param name="price">订单价格</param> /// <param name="receviename">收货人姓名</param> /// <param name="receviephone">收货人电话</param> /// <param name="address">收货人地址</param> /// <param name="lat">纬度</param> /// <param name="lnt">经度</param> /// <param name="ordertype">看枚举TmpType</param> /// <returns></returns> public string AddFNOrder(List <elegood> fngoods, DistributionApiModel model) { string msg = ""; FNStoreRelation relation = FNStoreRelationBLL.SingleModel.GetModelByRid(model.aid); if (relation != null) { msg = "请先配置蜂鸟门店"; return(msg); } FNStore fnstore = FNStoreBLL.SingleModel.GetModel(relation.fnstoreid); if (fnstore != null) { msg = "没有找到蜂鸟门店信息"; return(msg); } if (fngoods == null || fngoods.Count <= 0) { msg = "商品信息不能为空"; return(msg); } TransactionModel tran = new TransactionModel(); long timestamp = Convert.ToInt64(FNApi.SingleModel.GetTimeStamp()); string callback = FNApi._callbackurl; string orderno = model.userid + DateTime.Now.ToString("yyyyMMddHHmmss"); string storecode = fnstore.chain_store_code; float buyprice = model.buyprice / 100.0f; int goodcount = 0; //收货人信息 FNReceiverInfo reciverifo = new FNReceiverInfo() { receiver_name = model.accepterName, receiver_primary_phone = model.accepterTelePhone, receiver_address = model.address, receiver_longitude = model.lnt, receiver_latitude = model.lat, }; //门店信息 FNStoreInfo storeinfo = new FNStoreInfo() { transport_name = fnstore.chain_store_name, transport_address = fnstore.address, transport_longitude = Convert.ToDouble(fnstore.longitude), transport_latitude = Convert.ToDouble(fnstore.latitude), transport_tel = fnstore.contact_phone, }; //生成订单实体类对象 FNOrder data = new FNOrder(storecode, goodcount, callback, buyprice, timestamp, buyprice, orderno, model.remark, fngoods, reciverifo, storeinfo); tran.Add(base.BuildAddSql(data)); //订单与系统订单关联 FNOrderRelation orderrelation = new FNOrderRelation(); orderrelation.dataid = model.aid; orderrelation.orderid = model.orderid; orderrelation.ordertype = model.temptype; orderrelation.uniqueorderno = orderno; tran.Add(FNOrderRelationBLL.SingleModel.BuildAddSql(orderrelation)); if (!ExecuteTransactionDataCorect(tran.sqlArray, tran.ParameterArray)) { msg = "添加蜂鸟物流出错"; } return(msg); }