Exemplo n.º 1
0
        /// <summary>
        /// 更新菜品
        /// eleme.product.item.updateItem
        ///
        /// </summary>
        public EleResult UpdateItem(string token, dynamic product)
        {
            var        model   = new { itemId = product.itemId, categoryId = product.categoryId, properties = product.properties };
            SignParams sign    = GetSign(token, model, "eleme.product.item.updateItem");
            string     content = MakeNopEntity(sign, model);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 批量更新商品库存
        /// </summary>
        /// <param name="listItem"></param>
        /// <returns></returns>
        public EleResult BatchUpdateStock(string token, Dictionary <long, int> stockMap)
        {
            var        model   = new { stockMap = stockMap };
            SignParams sign    = GetSign(token, model, "eleme.product.item.batchUpdateStock");
            string     content = MakeNopEntity(sign, model);
            string     ret     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(ret));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 查看商品详情
        /// </summary>
        /// <param name="_itemId"></param>
        /// <returns></returns>
        public EleResult GetItem(string token, long itemId)
        {
            var        model   = new { itemId = itemId };
            SignParams sign    = GetSign(token, model, "eleme.product.item.getItem");
            string     content = MakeNopEntity(sign, model);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 4
0
        /// <summary>
        /// 获取订单配状态
        /// </summary>
        /// <param name="_orderIds"></param>
        /// <returns></returns>
        public EleResult BatchGetDeliveryStates(string token, string[] orderIds)
        {
            var        model   = new { orderIds = orderIds };
            SignParams sign    = GetSign(token, model, "eleme.order.batchGetDeliveryStates");
            string     content = MakeNopEntity(sign, model);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 5
0
        /// <summary>
        /// 批量下架商品
        /// </summary>
        /// <param name="token"></param>
        /// <param name="itemIds"></param>
        /// <returns></returns>
        public EleResult BatchDelistItems(string token, List <long> itemIds)
        {
            var model    = new { itemIds = itemIds };
            var sign     = GetSign(token, model, "eleme.product.item.batchDelistItems");
            var content  = MakeNopEntity(sign, model);
            var response = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(response));
        }
Exemplo n.º 6
0
        /// <summary>
        /// 获取订单
        /// </summary>
        /// <param name="businNo"></param>
        /// <param name="shopNo"></param>
        /// <param name="date"></param>
        /// <returns></returns>
        public EleResult GetAllOrders(string token, long shopId, int pageNo, int pageSize, string date)
        {
            var        model   = new { shopId = shopId, pageNo = pageNo, pageSize = pageSize, date = date };
            SignParams sign    = GetSign(token, model, "eleme.order.getAllOrders");
            string     content = MakeNopEntity(sign, model);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 7
0
        /// <summary>
        ///  查询评价信息
        /// </summary>
        /// <returns></returns>
        public EleResult GetORateResult(string token, long shopId, string startTime, string endTime, int offset, int pageSize)
        {
            var model   = new { shopId, startTime, endTime, offset, pageSize };
            var sign    = GetSign(token, model, "eleme.ugc.getORateResult");
            var content = MakeNopEntity(sign, model);
            var res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 8
0
        /// <summary>
        /// 更新店信息
        /// </summary>
        /// <param name="_shopId"></param>
        /// <param name="pShopInfo"></param>
        /// <returns></returns>
        public EleResult UpdateShop(string token, long _shopId, object obj)
        {
            var        model   = new { shopId = _shopId, properties = obj };
            SignParams sign    = GetSign(token, model, "eleme.shop.updateShop");
            string     content = MakeNopEntity(sign, model);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 9
0
        /// <summary>
        /// 取消单_同意退单
        /// </summary>
        /// <param name="_orderId"></param>
        /// <returns></returns>
        public EleResult AgreeRefundLite(string token, string orderId)
        {
            var        model   = new { orderId = orderId };
            SignParams sign    = GetSign(token, model, "eleme.order.agreeRefundLite");
            string     content = MakeNopEntity(sign, model);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 10
0
        /// <summary>
        /// 统计评价信息数量
        /// </summary>
        /// <returns></returns>
        public EleResult CountORateResult(string token, object rateQuery)
        {
            var model   = new { rateQuery };
            var sign    = GetSign(token, model, "eleme.ugc.countORateResult");
            var content = MakeNopEntity(sign, model);
            var res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 11
0
        /// <summary>
        /// 取商户信息
        /// </summary>
        /// <returns></returns>
        public EleResult GetUser(string token)
        {
            object     obj     = new object();
            SignParams sign    = GetSign(token, obj, "eleme.user.getUser");
            string     content = MakeNopEntity(sign, obj);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 12
0
        /// <summary>
        /// 分页获取店铺下的商品
        /// </summary>
        /// <param name="_shopId"></param>
        /// <returns></returns>
        public EleResult QueryItemByPage(string token, long shopId, long offset = 0, long limit = 300)
        {
            var        model   = new { queryPage = new { limit = limit, offset = offset, shopId = shopId } };
            SignParams sign    = GetSign(token, model, "eleme.product.item.queryItemByPage");
            string     content = MakeNopEntity(sign, model);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 13
0
        /// <summary>
        /// 取消订单
        /// </summary>
        /// <param name="_orderId"></param>
        /// <param name="_type"></param>
        /// <param name="_remark"></param>
        /// <returns></returns>
        public EleResult CancelOrderLite(string token, string orderId, JObject data)
        {
            var        model   = new { orderId = orderId, type = data["Code"], remark = data["Reason"] };
            SignParams sign    = GetSign(token, model, "eleme.order.cancelOrderLite");
            string     content = MakeNopEntity(sign, model);
            string     res     = HttpCommon.Post(EleConfig.API_URL, "application/json;charset=utf-8", null, content);

            return(JsonConvert.DeserializeObject <EleResult>(res));
        }
Exemplo n.º 14
0
        public Result Cancel(JObject data)
        {
            string msgErr = "";
            string msgSuc = "";

            string[] codes = data["Codes"].ToString().Trim(',').Split(',');

            for (int i = 0; i < codes.Length; i++)
            {
                try
                {
                    var model = new
                    {
                        vendorShopId = _shopNo,
                        couponCode   = codes[i].ToString(),
                        eId          = data["OperNo"],
                        eName        = data["OperName"],
                    };

                    string url = GetUrl("https://open-api.dianping.com/tuangou/coupon/cancel", model);

                    var res = HttpCommon.Post(url, model);

                    JObject json = JObject.Parse(res);
                    if (json["code"].ToString() == "200")
                    {
                        msgSuc += "成功" + "@";
                    }
                    else
                    {
                        msgSuc += "成功" + json["msg"] + "@";
                    }
                }
                catch (Exception e)
                {
                    msgErr = e.Message;
                    break;
                }
            }

            if (msgErr != "")
            {
                return(Tools.ResultErr(msgErr));
            }
            else
            {
                return(new Result()
                {
                    State = "OK", Msg = msgSuc
                });
            }
        }
Exemplo n.º 15
0
        /// <summary>
        /// 刷新饿了么访问令牌
        /// </summary>
        /// <returns></returns>
        public string RefreshToken(string token)
        {
            //1.拼接key && Secret
            string merger = EleConfig.APP_KEY + ":" + EleConfig.APP_SECRET;
            //2.Base64编码
            string strBase64 = ToolsCommon.ToBase64(merger);
            //构建header
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Authorization", "Basic " + strBase64);

            string content = "grant_type=refresh_token&refresh_token=" + token;
            string res     = HttpCommon.Post(EleConfig.TOKEN_URL, "application/json;charset=utf-8", headers, content);

            return(res);
        }
Exemplo n.º 16
0
        /// <summary>
        /// 获取饿了么访问令牌
        /// </summary>
        /// <returns></returns>
        public string GetToken(string code)
        {
            //1.拼接key && Secret
            string merger = EleConfig.APP_KEY + ":" + EleConfig.APP_SECRET;
            //2.Base64编码
            string strBase64 = ToolsCommon.ToBase64(merger);
            //构建header
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Authorization", "Basic " + strBase64);

            string content = "grant_type=authorization_code&code=" + code + "&redirect_uri=" + EleConfig.REDIRECT_URL + "&client_id=" + EleConfig.APP_KEY;
            string res     = HttpCommon.Post(EleConfig.TOKEN_URL, "application/json;charset=utf-8", headers, content);

            return(res);
        }
Exemplo n.º 17
0
        public Result Consume(JObject data)
        {
            string msg = "";

            string[] codes = data["Codes"].ToString().Trim(',').Split(',');

            for (int i = 0; i < codes.Length; i++)
            {
                try
                {
                    var model = new
                    {
                        vendorShopId  = _shopNo,
                        couponCode    = codes[i].ToString(),
                        count         = 1,
                        eId           = data["OperNo"],
                        eName         = data["OperName"],
                        vendorOrderId = data["OrderID"]
                    };

                    string url = GetUrl("https://open-api.dianping.com/tuangou/coupon/consume", model);

                    var res = HttpCommon.Post(url, model);

                    JObject json = JObject.Parse(res);
                    if (json["code"].ToString() != "200")
                    {
                        msg += json["msg"];
                        break;
                    }
                }
                catch (Exception e)
                {
                    msg = e.Message;
                    break;
                }
            }

            if (msg != "")
            {
                return(Tools.ResultErr(msg));
            }
            else
            {
                return(Tools.ResultOk());
            }
        }
Exemplo n.º 18
0
        public Result Prepare(string codeNo)
        {
            var obj = new
            {
                couponCode   = codeNo,
                vendorShopId = _shopNo
            };

            string url = GetUrl("https://open-api.dianping.com/tuangou/coupon/prepare", obj);

            var res = HttpCommon.Post(url, obj);

            var model = JsonConvert.DeserializeObject <BasicResponseModel>(res);

            if (model.code != 200)
            {
                return(Tools.ResultErr(model.msg));
            }
            else
            {
                JObject content  = JObject.FromObject(model.content);
                JArray  jArray   = JArray.Parse(content["dealMenu"][0].ToString());
                string  prodList = "";
                for (int i = 0; i < jArray.Count; i++)
                {
                    prodList += (jArray[i]["content"] ?? "") + "  ";
                    prodList += (jArray[i]["specification"] ?? "") + "  ";
                    prodList += (jArray[i]["price"] ?? "") + "  ";
                    prodList += (jArray[i]["total"] ?? "") + ",";
                }

                var data = new
                {
                    CodeNo    = codeNo,
                    Name      = content["dealTitle"],
                    Type      = content["dealType"],
                    Price     = content["couponBuyPrice"],
                    EndTime   = content["couponEndTime"],
                    Money     = content["dealValue"],
                    ProdCount = jArray.Count,
                    ProdList  = prodList
                };

                return(Tools.ResultOk(data));
            }
        }
Exemplo n.º 19
0
        public Result UpdateStateSingle(int state, IEnumerable <JToken> data)
        {
            var foodDataSellStatusList = new List <FoodDataSellStatus>();

            foreach (var grouping in data.GroupBy(a => a["ProdCode"]))
            {
                var code = grouping;
                var foodDataSellStatus = new FoodDataSellStatus()
                {
                    app_food_code = code.Key.ToString()
                };
                var tokens            = data.Where(a => a["ProdCode"] == code.Key);
                var skuSellStatusList = new List <SkuSellStatus>();
                foreach (var token in tokens)
                {
                    skuSellStatusList.Add(new SkuSellStatus()
                    {
                        sku_id = token["ProdNo"].ToString()
                    });
                }

                foodDataSellStatus.skus = skuSellStatusList;
                foodDataSellStatusList.Add(foodDataSellStatus);
            }
            var data1 = new
            {
                timestamp    = ToolsCommon.GetTimestamp().ToString(),
                app_id       = _waimaiAppId,
                app_poi_code = _shopNo,
                food_data    = JsonConvert.SerializeObject(foodDataSellStatusList),
                sell_status  = state
            };
            var data2 = new
            {
                app_poi_code = _shopNo,
                food_data    = JsonConvert.SerializeObject(foodDataSellStatusList),
                sell_status  = state
            };

            return(Tools.ResultMt(HttpCommon.Post(GetUrl("https://waimaiopen.meituan.com/api/v1/food/sku/sellStatus", data1), data2)));
        }
Exemplo n.º 20
0
        public Result GetRiderInfoPhoneNumber()
        {
            var model = new
            {
                timestamp    = ToolsCommon.GetTimestamp(),
                app_id       = _waimaiAppId,
                app_poi_code = _shopNo,
                offset       = 0,
                limit        = 999
            };

            var modelBody = new
            {
                app_poi_code = _shopNo,
                offset       = 0,
                limit        = 999
            };

            string url = GetUrl("https://waimaiopen.meituan.com/api/v1/order/getRiderInfoPhoneNumber", model);

            return(Tools.ResultMt(HttpCommon.Post(url, modelBody)));
        }
Exemplo n.º 21
0
        public Result Query(string codeNo)
        {
            var obj = new
            {
                couponCode   = codeNo,
                vendorShopId = _shopNo
            };

            string url = GetUrl("https://open-api.dianping.com/tuangou/coupon/status/query", obj);

            var res = HttpCommon.Post(url, obj);

            var model = JsonConvert.DeserializeObject <BasicResponseModel>(res);

            if (model.code != 200)
            {
                return(Tools.ResultErr(model.msg));
            }
            else
            {
                var couponStatus = model.content as CouponStatusQueryResponse;

                var data = new
                {
                    CodeNo    = codeNo,
                    Type      = couponStatus.dealType,
                    Name      = couponStatus.dealTitle,
                    Price     = couponStatus.dealPrice,
                    Money     = couponStatus.dealValue,
                    ProdCount = couponStatus.dealSkuMappingDetail.count,
                    ProdList  = string.Join(",", couponStatus.dealSkuMappingDetail.vendorSkus)
                };

                return(Tools.ResultOk(data));
            }
        }
Exemplo n.º 22
0
        public List <ShopInfo> QueryMapped(List <ShopInfo> list)
        {
            int x = 49;
            int y = list.Count() / x + 1;

            Parallel.For(0, y, i => {
                var modelSys = new
                {
                    appKey  = _tuangouAppKey,
                    ts      = ToolsCommon.GetTimestamp(),
                    version = "2.0"
                };

                List <string> vendorShopIdList = new List <string>();
                for (int j = i * x; j < (i + 1) * x; j++)
                {
                    if (j >= list.Count())
                    {
                        break;
                    }
                    vendorShopIdList.Add(list[j].ShopNo);
                }
                JArray dpShopIdList = new JArray();
                var model           = new
                {
                    dpShopIdList     = dpShopIdList,
                    vendorShopIdList = vendorShopIdList.ToArray(),
                    businessType     = 101
                };

                string url    = CreateUrl("https://open-api.dianping.com/vendor/shopMapping/query", modelSys, model);
                string result = HttpCommon.Post(url, model);

                JObject json = JObject.Parse(result);

                if (json["code"].ToString() == "200")
                {
                    JArray jArray = JArray.Parse(json["content"].ToString());
                    for (int k = 0; k < jArray.Count; k++)
                    {
                        var shopInfo = list.FirstOrDefault(a => a.ShopNo == (jArray[k]["vendorShopId"].ToString()));
                        if (shopInfo != null)
                        {
                            shopInfo.IsMapped = true;
                        }
                    }
                }
            });

            #region
            //for (int i = 0; i < y; i++)
            //{
            //    var modelSys = new {
            //        appKey = _tuangouAppKey,
            //        ts = ToolsCommon.GetTimestamp(),
            //        version = "2.0"
            //    };

            //    List<string> vendorShopIdList = new List<string>();
            //    for (int j = i * x; j < (i + 1) * x; j++)
            //    {
            //        if (j >= list.Count()) break;
            //        vendorShopIdList.Add(list[j].ShopNo);
            //    }
            //    JArray dpShopIdList = new JArray();
            //    var model = new {
            //        dpShopIdList= dpShopIdList,
            //        vendorShopIdList= vendorShopIdList.ToArray(),
            //        businessType = 101
            //    };

            //    string url = CreateUrl("https://open-api.dianping.com/vendor/shopMapping/query", modelSys, model);
            //    string result = HttpCommon.Post(url, model);

            //    JObject json = JObject.Parse(result);

            //    if (json["code"].ToString() == "200")
            //    {
            //        JArray jArray = JArray.Parse(json["content"].ToString());
            //        for (int k = 0; k < jArray.Count; k++)
            //        {
            //            var shopInfo = list.FirstOrDefault(a => a.ShopNo == (jArray[k]["vendorShopId"].ToString()));
            //            if (shopInfo != null)
            //                shopInfo.IsMapped = true;
            //        }
            //    }
            //}
            #endregion

            return(list);
        }
Exemplo n.º 23
0
        public Result SkuStock(JArray data)
        {
            //var listFoodData = new List<FoodData>();

            //var codes = data.GroupBy(a => a["ProdCode"]);
            //foreach (var code in codes)
            //{
            //    var foodData = new FoodData() { app_food_code = code.Key.ToString() };

            //    var skus = data.Where(a => a["ProdCode"] == code.Key);

            //    var listSku = new List<Sku>();
            //    foreach (var sku in skus)
            //    {
            //        listSku.Add(new Sku() { sku_id = sku["ProdNo"].ToString(), stock = sku["Stock"].ToString() });
            //    }

            //    foodData.skus = listSku;
            //    listFoodData.Add(foodData);
            //}

            //var model = new
            //{
            //    timestamp = ToolsCommon.GetTimestamp().ToString(),
            //    app_id = _waimaiAppId,
            //    app_poi_code = _shopNo,
            //    food_data = JsonConvert.SerializeObject(listFoodData)
            //};

            //var modelBody = new
            //{
            //    app_poi_code = _shopNo,
            //    food_data = JsonConvert.SerializeObject(listFoodData)
            //};

            //string url = GetUrl("https://waimaiopen.meituan.com/api/v1/food/sku/stock", model);

            //var res = HttpCommon.Post(url, modelBody);

            //return Tools.ResultMt(res);

            int    num1 = data.Count <JToken>();
            int    size = 50;
            int    num2 = size;
            int    num3 = (num1 + num2 - 1) / size;
            string msg  = "";

            for (int index = 0; index < num3; ++index)
            {
                IEnumerable <JToken> source = data.Skip <JToken>(index * size).Take <JToken>(size);
                System.Collections.Generic.List <FoodData> foodDataList = new System.Collections.Generic.List <FoodData>();
                foreach (IGrouping <JToken, JToken> grouping in source.GroupBy <JToken, JToken>((Func <JToken, JToken>)(a => a[(object)"ProdCode"])))
                {
                    IGrouping <JToken, JToken> code = grouping;
                    FoodData foodData = new FoodData()
                    {
                        app_food_code = code.Key.ToString()
                    };
                    IEnumerable <JToken> jtokens = source.Where <JToken>((Func <JToken, bool>)(a => a[(object)"ProdCode"] == code.Key));
                    System.Collections.Generic.List <Sku> skuList = new System.Collections.Generic.List <Sku>();
                    foreach (JToken jtoken in jtokens)
                    {
                        skuList.Add(new Sku()
                        {
                            sku_id = jtoken[(object)"ProdNo"].ToString(),
                            stock  = jtoken[(object)"Stock"].ToString()
                        });
                    }
                    foodData.skus = (ICollection <Sku>)skuList;
                    foodDataList.Add(foodData);
                }
                var data1 = new
                {
                    timestamp    = ToolsCommon.GetTimestamp().ToString(),
                    app_id       = this._waimaiAppId,
                    app_poi_code = this._shopNo,
                    food_data    = JsonConvert.SerializeObject((object)foodDataList)
                };
                var data2 = new
                {
                    app_poi_code = this._shopNo,
                    food_data    = JsonConvert.SerializeObject((object)foodDataList)
                };
                Result result = Tools.ResultMt(HttpCommon.Post(this.GetUrl("https://waimaiopen.meituan.com/api/v1/food/sku/stock", (object)data1), (object)data2));
                msg += result.Msg;
            }
            return(string.IsNullOrEmpty(msg) ? Tools.ResultOk() : Tools.ResultErr(msg));
        }