예제 #1
0
        public ShopMapController()
        {
            IMtAccountService service = new MtAccountService();
            Mt_AccountDTO     account = service.GetAccount(Global.USER_ID);

            _tuangouAppKey    = account.TuangouAppKey;
            _tuangouAppSecret = account.TuangouAppSecret;
        }
예제 #2
0
        public MtCouponService(string userNo, string shopNo)
        {
            IMtAccountService service = new MtAccountService();
            Mt_AccountDTO     account = service.GetAccount(userNo);

            _tuangouAppKey    = account.TuangouAppKey;
            _tuangouAppSecret = account.TuangouAppSecret;
            _shopNo           = shopNo;
        }
예제 #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);
        }
예제 #4
0
        public MtBaseApiService(string userId, string shopNo)
        {
            IMtAccountService service = new MtAccountService();
            Mt_AccountDTO     account = service.GetAccount(userId);

            if (account is null)
            {
                return;
            }

            _waimaiAppId     = account.WaimaiAppId;
            _waimaiAppSecret = account.WaimaiAppSecret;
            _shopNo          = shopNo;
        }
예제 #5
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);
            }
        }
예제 #6
0
        public ActionResult Edit(Guid id)
        {
            Mt_AccountDTO  account = _accountService.GetAccount(id);
            List <UserDTO> list    = _userService.GetAll().Where(a => a.Id != "admin").ToList();

            return(View(new MtAccountEditGet()
            {
                Id = account.Id,
                UserId = account.UserId,
                AccountNo = account.AccountNo,
                AccountName = account.AccountName,
                WaimaiAppId = account.WaimaiAppId,
                WaimaiAppSecret = account.WaimaiAppSecret,
                TuangouAppKey = account.TuangouAppKey,
                TuangouAppSecret = account.TuangouAppSecret,
                Description = account.Description,
                Users = list
            }));
        }
예제 #7
0
        //售卖状态,1表下架,0表上架
        private async Task MtUpDown(Mt_AccountDTO account, string shopNo, IEnumerable <StockModel> models)
        {
            //上架
            var upData = models.Where(x => x.CurrentStock > x.MtMarkStock);

            if (!upData.Any())
            {
                return;
            }
            await _jobService.MtUpdateState(account.WaimaiAppId, account.WaimaiAppSecret, shopNo, 0, upData);

            //下架
            var downData = models.Where(x => x.CurrentStock <= x.MtMarkStock);

            if (!downData.Any())
            {
                return;
            }
            await _jobService.MtUpdateState(account.WaimaiAppId, account.WaimaiAppSecret, shopNo, 1, downData);

            //上架时更新库存
            {
                var foods = await _jobService.MtFoods(account.WaimaiAppId, account.WaimaiAppSecret, shopNo);

                //结合接口获取的商品,得到ProdCode
                var data = from a in upData
                           join b in foods on a.ProdNo equals b.ProdNo
                           select new StockModel()
                {
                    ProdCode     = b.ProdCode,
                    ProdNo       = a.ProdNo,
                    CurrentStock = a.CurrentStock
                };

                await _jobService.MtUpdateStock(account.WaimaiAppId, account.WaimaiAppSecret, shopNo, data);
            }
        }