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));
        }
Example #2
0
        /// <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);
        }
Example #3
0
 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;
     }
 }