コード例 #1
0
ファイル: UUOrderBLL.cs プロジェクト: soon14/vzan
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }