/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
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 }); } }
/// <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); }
/// <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); }
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()); } }
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)); } }
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))); }
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))); }
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)); } }
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); }
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)); }