public async Task <IActionResult> Product(string productid) { CacheProductList ProductList = await _YoungoServer.GetCacheProductList(); ProductWap _product = new ProductWap(); ProductModel product = ProductList.ProductList.Find(a => a.ProductID == productid); ResponseResult <ProductResources> responseResult = await _YoungoServer.GetProductResources(productid); ProductResources resources = new ProductResources(); if (responseResult.IsSuccess) { resources = responseResult.Content; } _product.ProductID = productid; _product.Name = product.CnName; _product.PurchasePrice = product.PurchasePrice; _product.Introduce = product.Introduce; _product.Type = product.Type; _product.SalesVolume = product.SalesVolume; _product.Explain = ProductList.ExpressList.Find(a => a.ExpressCode == product.ExpressCode).Explain; _product.Remarks = product.Remarks; _product.CostPrice = product.CostPrice; _product.ResourcesList = resources.ResourcesList; _product.CommentList = resources.CommentList; _product.Brand = product.Brand; ViewBag.Title = "产品详情"; return(View(_product)); }
/// <summary> /// 获取商品资源 /// </summary> /// <param name="productId"></param> /// <returns></returns> public ProductResources GetProductResources(string productId) { if (string.IsNullOrEmpty(productId)) { throw new Exception("商品SKU不能为空!"); } ProductResources rp = NewMethod(); rp.ProductID = productId; string sql = @"SELECT cc.Id, c.UserName, cc.OrderID, cc.ProductID, cc.`Comment`, cc.Reply, cc.Star, cc.CreatTime FROM CustomerComment AS cc INNER JOIN Customer AS c ON c.Id = cc.CustomerID WHERE cc.ProductID=@productId"; SugarParameter[] parameters = new SugarParameter[] { new SugarParameter("@productId", productId) }; parameters[0].DbType = System.Data.DbType.String; rp.CommentList = _db.Ado.SqlQuery <ProductComment>(sql, parameters).ToList(); rp.ResourcesList = _db.Queryable <Resources>().Where(a => a.ProductID == productId && (a.Type == ResourcesEnum.Comment || a.Type == ResourcesEnum.Product)).ToList(); return(rp); }
public void Product(Resources yourResources, ref long coins, double farmersProductivity) { if (Number > 0) { List <double> yourResourcesList = yourResources.BuildList(); List <double> productResourcesList = ProductResources.BuildList(); List <double> neededResourcesList = NeededResources.BuildList(); if (farmersProductivity > 1) { farmersProductivity = 1; } double productivity = farmersProductivity * Number * productResourcesList.Max(); // maksymalna możliwa produkcja double productivityTmp; int i = 0; // obliczamy na jaką produktywnośc starczy nam surowców i na ile mamy miejsca foreach (double resource in neededResourcesList) { if (resource > 0) { productivityTmp = yourResourcesList[i]; if (productivityTmp < productivity) { productivity = productivityTmp; } } if (productResourcesList[i] > 0) { productivityTmp = 200 - yourResourcesList[i]; if (productivityTmp < productivity) { productivity = productivityTmp; } } i++; } //mnozymy produkowane zasoby i dodajemy do aktualnych Resources resultResources = Resources.MultResources(ProductResources, productivity / productResourcesList.Max()); yourResources.AddResources(resultResources); //mnozymy potrzebne zasoby i odejmujemy od aktualnych resultResources = Resources.MultResources(NeededResources, productivity); yourResources.SubResources(resultResources); coins -= WorkCost * Number / 4; } }