Exemplo n.º 1
0
        public Result List()
        {
            var model = new
            {
                timestamp    = ToolsCommon.GetTimestamp(),
                app_id       = _waimaiAppId,
                app_poi_code = _shopNo,
            };

            string url = GetUrl("https://waimaiopen.meituan.com/api/v1/food/list", model);
            string res = HttpCommon.Get(url);

            JObject json = JObject.Parse(res);

            if (json["error"] != null)
            {
                return(Tools.ResultErr(json["error"]["msg"].ToString()));
            }

            JArray data = JArray.Parse(json["data"].ToString());

            if (data == null)
            {
                return(Tools.ResultErr());
            }

            var list = new List <object>();

            foreach (var d in data)
            {
                JArray skus = JArray.Parse(d["skus"].ToString());
                foreach (var s in skus)
                {
                    if (d["app_food_code"] != null & s["sku_id"] != null)
                    {
                        if (d["app_food_code"].ToString() != "" && s["sku_id"].ToString() != "")
                        {
                            var prod = new
                            {
                                CateName = d["category_name"],
                                ProdCode = d["app_food_code"],
                                ProdNo   = s["sku_id"],
                                ProdName = d["name"],
                                Spec     = s["spec"],
                                Price    = s["price"],
                                Stock    = s["stock"].ToString() == "" ? "9999" : s["stock"],
                                State    = d["is_sold_out"]
                            };

                            list.Add(prod);
                        }
                    }
                }
            }

            return(Tools.ResultOk(list));
        }
Exemplo n.º 2
0
        public Result GetOrderDetail(string orderId)
        {
            var data = new
            {
                timestamp = ToolsCommon.GetTimestamp(),
                app_id    = _waimaiAppId,
                order_id  = orderId
            };

            return(Tools.ResultMt(HttpCommon.Get(this.GetUrl("https://waimaiopen.meituan.com/api/v1/order/getOrderDetail", data))));
        }
Exemplo n.º 3
0
        public IEnumerable <dynamic> GetMtFoods(Mt_AccountDTO account, string shopNo)
        {
            var model = new JObject()
            {
                { "timestamp", ToolsCommon.GetTimestamp() },
                { "app_id", account.WaimaiAppId },
                { "app_poi_code", shopNo }
            };

            var url = GetUrl(account.WaimaiAppSecret, "https://waimaiopen.meituan.com/api/v1/food/list", model);
            var res = HttpCommon.Get(url);

            var json = JObject.Parse(res);

            if (json["error"] != null)
            {
                return(new List <dynamic>());
            }

            var data = JArray.Parse(json["data"].ToString());

            var list = new List <dynamic>();

            foreach (var d in data)
            {
                var skus = JArray.Parse(d["skus"].ToString());
                foreach (var s in skus)
                {
                    if (d["app_food_code"] != null & s["sku_id"] != null)
                    {
                        if (d["app_food_code"].ToString() != "" && s["sku_id"].ToString() != "")
                        {
                            var prod = new
                            {
                                CateName = d["category_name"],
                                ProdCode = d["app_food_code"],
                                ProdNo   = s["sku_id"],
                                ProdName = d["name"],
                                Spec     = s["spec"],
                                Price    = s["price"],
                                Stock    = s["stock"].ToString() == "" ? "9999" : s["stock"],
                                State    = d["is_sold_out"]
                            };

                            list.Add(prod);
                        }
                    }
                }
            }

            return(list);
        }
Exemplo n.º 4
0
        public Result GetOrderIdByDaySeq(DateTime datetime, int daySeq)
        {
            var data = new
            {
                timestamp    = ToolsCommon.GetTimestamp(),
                app_id       = this._waimaiAppId,
                app_poi_code = this._shopNo,
                date_time    = datetime.ToString("yyyyMMdd"),
                day_seq      = daySeq
            };

            return(Tools.ResultMt(HttpCommon.Get(this.GetUrl("https://waimaiopen.meituan.com/api/v1/order/getOrderIdByDaySeq", (object)data))));
        }
Exemplo n.º 5
0
        public Result Confirm(string orderID)
        {
            var model = new
            {
                timestamp = ToolsCommon.GetTimestamp(),
                app_id    = _waimaiAppId,
                order_id  = orderID,
            };

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

            return(Tools.ResultMt(HttpCommon.Get(url)));
        }
Exemplo n.º 6
0
        /// <summary>
        /// »ñÈ¡ÅäËͶ©µ¥×´Ì¬
        /// </summary>
        /// <param name="orderID"></param>
        /// <returns></returns>
        public Result GetLogisticsStatus(string orderID)
        {
            var model = new
            {
                timestamp       = ToolsCommon.GetTimestamp(),
                app_id          = _waimaiAppId,
                order_id        = orderID,
                is_mt_logistics = 1
            };

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

            return(Tools.ResultMt(HttpCommon.Get(url)));
        }
Exemplo n.º 7
0
        public Result RefundReject(string orderID, JObject data)
        {
            var model = new
            {
                timestamp = ToolsCommon.GetTimestamp(),
                app_id    = _waimaiAppId,
                order_id  = orderID,
                reason    = data["Reason"]
            };

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

            return(Tools.ResultMt(HttpCommon.Get(url)));
        }
Exemplo n.º 8
0
        public void MtUpdateStock(Mt_AccountDTO account, string shopNo, IEnumerable <StockModel> data)
        {
            var num1 = data.Count();
            var size = 50;
            var num2 = size;
            var num3 = (num1 + num2 - 1) / size;
            var msg  = "";

            for (var index = 0; index < num3; ++index)
            {
                var source       = data.Skip(index * size).Take(size);
                var foodDataList = new List <FoodData>();
                foreach (var grouping in source.GroupBy(a => a["ProdCode"]))
                {
                    var code     = grouping;
                    var foodData = new FoodData()
                    {
                        app_food_code = code.Key.ToString()
                    };
                    var tokens  = source.Where(a => a["ProdCode"] == code.Key);
                    var skuList = new List <Sku>();
                    foreach (var jtoken in tokens)
                    {
                        skuList.Add(new Sku()
                        {
                            sku_id = jtoken["ProdNo"]?.ToString(),
                            stock  = jtoken["Stock"]?.ToString()
                        });
                    }
                    foodData.skus = skuList;
                    foodDataList.Add(foodData);
                }
                var model = new JObject()
                {
                    { "timestamp", ToolsCommon.GetTimestamp().ToString() },
                    { "app_id", account.WaimaiAppId },
                    { "app_poi_code", shopNo },
                    { "food_data", JsonConvert.SerializeObject(foodDataList) }
                };

                var url = GetUrl(account.WaimaiAppSecret, "https://waimaiopen.meituan.com/api/v1/food/sku/stock", model);
                model.Remove("timestamp");
                model.Remove("app_id");

                var response = HttpCommon.PostJObject(url, model);
            }
        }
Exemplo n.º 9
0
        public async Task <IEnumerable <StockModel> > MtFoods(string waimaiAppId, string waimaiAppSecret, string shopNo)
        {
            var model = new JObject()
            {
                { "timestamp", ToolsCommon.GetTimestamp() },
                { "app_id", waimaiAppId },
                { "app_poi_code", shopNo }
            };

            var url = GetUrl(waimaiAppSecret, "https://waimaiopen.meituan.com/api/v1/food/list", model);
            var res = HttpCommon.Get(url);

            var json = JObject.Parse(res);

            if (json["error"] != null)
            {
                return(new List <StockModel>());
            }

            var data = JArray.Parse(json["data"].ToString());

            var list = new List <StockModel>();

            foreach (var d in data)
            {
                var skus = JArray.Parse(d["skus"].ToString());
                foreach (var s in skus)
                {
                    if (d["app_food_code"] != null & s["sku_id"] != null)
                    {
                        if (d["app_food_code"].ToString() != "" && s["sku_id"].ToString() != "")
                        {
                            var prod = new StockModel()
                            {
                                ProdCode = d["app_food_code"].ToString(),
                                ProdNo   = s["sku_id"].ToString(),
                            };

                            list.Add(prod);
                        }
                    }
                }
            }

            return(list);
        }
Exemplo n.º 10
0
        /// <summary>
        /// 取Sign
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        protected SignParams GetSign(string token, object obj, string action)
        {
            long    timestamp = ToolsCommon.GetTimestamp();
            JObject jObj      = JObject.FromObject(obj);

            jObj.Add("app_key", EleConfig.APP_KEY);
            jObj.Add("timestamp", timestamp);
            string sortJson = JsonSort.SortJson(jObj, null);

            ////替换掉属性排序关键字
            //Regex reg = new Regex("[a-z]__");
            //sortJson = reg.Replace(sortJson, "");
            jObj = JObject.Parse(sortJson);
            List <JProperty> listProperty = jObj.Properties().ToList();
            StringBuilder    buff         = new StringBuilder();

            foreach (JProperty attr in listProperty)
            {
                string pKey   = attr.Name;
                string pValue = attr.Value.ToString(Newtonsoft.Json.Formatting.None);
                if (attr.Value.Type == JTokenType.String)
                {
                    pValue = "\"" + attr.Value.ToString() + "\"";
                }
                else if (attr.Value.Type == JTokenType.Float)
                {
                    pValue = float.Parse(pValue).ToString();
                }
                else if (attr.Value.Type == JTokenType.Object)
                {
                }
                buff.Append(pKey + "=" + pValue);
            }

            //完整拼接字符串
            string     fullParams  = action + token + buff.ToString() + EleConfig.APP_SECRET;
            string     sign        = ToolsCommon.GetMD5(fullParams).ToUpper();
            SignParams pSignParams = new SignParams();

            pSignParams.sign      = sign;
            pSignParams.timestamp = timestamp;
            pSignParams.token     = token;
            pSignParams.action    = action;
            return(pSignParams);
        }
Exemplo n.º 11
0
        public async Task MtUpdateStock(string waimaiAppId, string waimaiAppSecret, string shopNo, IEnumerable <StockModel> models)
        {
            var size = 50;
            var loop = (models.Count() + size - 1) / size;

            for (var i = 0; i < loop; ++i)
            {
                var data         = models.Skip(i * size).Take(size);
                var foodDataList = new List <FoodData>();
                foreach (var grouping in data.GroupBy(a => a.ProdCode))
                {
                    var code     = grouping;
                    var foodData = new FoodData()
                    {
                        app_food_code = code.Key
                    };

                    foodData.skus = data
                                    .Where(a => a.ProdCode == code.Key)
                                    .Select(token => new Sku()
                    {
                        sku_id = token.ProdNo, stock = token.CurrentStock.ToString()
                    })
                                    .ToList();

                    foodDataList.Add(foodData);
                }

                var model = new JObject()
                {
                    { "timestamp", ToolsCommon.GetTimestamp().ToString() },
                    { "app_id", waimaiAppId },
                    { "app_poi_code", shopNo },
                    { "food_data", JsonConvert.SerializeObject(foodDataList) }
                };

                var url = GetUrl(waimaiAppSecret, "https://waimaiopen.meituan.com/api/v1/food/sku/stock", model);
                model.Remove("timestamp");
                model.Remove("app_id");

                var response = await HttpCommon.PostJObjectAsync(url, model);
            }
        }
Exemplo n.º 12
0
        public ActionResult GetUrl(string shopNo, string shopName, bool isMap)
        {
            var basicUrl = isMap ? "https://open-api.dianping.com/auth/shopMapping" : "https://open-api.dianping.com/auth/shopMapping/delete";

            if (isMap)
            {
                var model = new
                {
                    vendorShopId   = shopNo,
                    vendorShopName = shopName,
                    businessType   = "101",
                    appKey         = _tuangouAppKey,
                    ts             = ToolsCommon.GetTimestamp(),
                    version        = "2.0",
                };

                string url = CreateUrl(basicUrl, model, null);

                return(Json(new AjaxResult()
                {
                    state = "ok", msg = url
                }));
            }
            else
            {
                var model = new
                {
                    vendorShopId = shopNo,
                    businessType = "101",
                    appKey       = _tuangouAppKey,
                    ts           = ToolsCommon.GetTimestamp(),
                    version      = "2.0",
                };

                string url = CreateUrl(basicUrl, model, null);

                return(Json(new AjaxResult()
                {
                    state = "ok", msg = url
                }));
            }
        }
Exemplo n.º 13
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.º 14
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.º 15
0
        public async Task MtUpdateState(string waimaiAppId, string waimaiAppSecret, string shopNo, int state, IEnumerable <StockModel> models)
        {
            var data = models.Select(item => new FoodDataSellStatus()
            {
                app_food_code = item.ProdNo,
                skus          = new List <SkuSellStatus>()
                {
                    new SkuSellStatus()
                    {
                        sku_id = item.ProdNo
                    }
                }
            });

            //分批次提交
            var size = 50;
            var loop = (data.Count() + size - 1) / size;

            for (var j = 0; j < loop; j++)
            {
                var batchFoods = data.Skip(j * size).Take(size);

                var model = new JObject()
                {
                    { "timestamp", ToolsCommon.GetTimestamp().ToString() },
                    { "app_id", waimaiAppId },
                    { "app_poi_code", shopNo },
                    { "food_data", JsonConvert.SerializeObject(batchFoods) },
                    { "sell_status", state }
                };

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

                model.Remove("timestamp");
                model.Remove("app_id");
                var response = await HttpCommon.PostJObjectAsync(url, model);
            }
        }
Exemplo n.º 16
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.º 17
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));
        }