根据asp.net mvc5中多供应商电子商务商店中的商店订单限制计算购物车的商店折扣

我有一个多供应商电子商务商店,每个商店经理都可以管理商店订单和商品的折扣。购物车模型如下:


    namespace myapp.Models

     public class Cart

     {

        [Key]

        public int RecordId { get; set; }

        public string CartId { get; set; }

        public Guid ItemId { get; set; }

        public Guid StoreId { get; set; }


        public Decimal? ShopDiscount { get; set; }

        public long ShopId { get; set; }

        [Display(Name = "Discount Time")]

        public string Duration { get; set; }

        [StringLength(100, ErrorMessage = "Must be less than 100 characters")]

        public string StoreName { get; set; }

        public decimal? Giftback { get; set; }

        [Display(Name = "Min order For Disc")]

        public Decimal? OrderLimit { get; set; }

        public int Count { get; set; }

        public decimal? Discount { get; set; }

        public System.DateTime DateCreated { get; set; }

        public virtual Item Item { get; set; }

      }

    }

我使用了带有代码优先脚手架的实体框架。此外,在我的购物车模型类中,我使用了 shopdeal() 方法来计算商店级别折扣,但它始终返回 0 并且确实如此。我认为这个方法有问题。


    // shopdeal method to calculate shopdiscount for all items in cart 

     // 


            public decimal? ShopDeal()

        {

            decimal? shopdeal = 0;

           //get record with different shops so that calculate shop total 

     //separatly

            var results = db.Carts.Select(m => new { m.CartId, m.StoreId, 

    m.OrderLimit, m.ShopDiscount, m.Duration }).Distinct().ToList();


              // calculate total price of all items for a particular shop  

            foreach (var item in results)

            {

                decimal? shoptotal = (from cartItems in db.Carts

                                      where cartItems.CartId == ShoppingCartId

                                      && cartItems.Item.StoreId == 

    item.StoreId


在上面的方法中,我们尝试计算特定商店的所有商品的总价,然后将 shoptotal 与该商店的 shopdiscount (orderlimit) 进行比较,并检查其时间段(是否开始),如果两个条件都为 true,则为该商店应用 shopdiscount。如果用户从多个商店购买,则对所有商店应用相同的条件(使用 foreach 循环)。如果有解决方法可以获取每个商店的总价格并应用商店折扣并获取总商店交易(总商店折扣),请帮忙。

九州编程
浏览 80回答 1
1回答

慕斯王

谢谢大家,经过大量努力,以下工作按预期为我工作    public decimal? ShopDeal()        {            decimal? shopdeal = 0;            var results = (from cartItems in db.Carts                           where cartItems.CartId == ShoppingCartId                           select new { cartItems.StoreId,cartItems.OrderLimit,cartItems.Duration,cartItems.ShopDiscount }).Distinct().ToList();                //db.Carts.Select(m => new { m.StoreId, m.OrderLimit, m.ShopDiscount, m.Giftback, m.Duration }.where()).Distinct().ToList();            foreach (var item in results)            {                decimal? shoptotal = (from cartItems in db.Carts                                      where cartItems.CartId == ShoppingCartId                                      && cartItems.Item.StoreId == item.StoreId                                      select (decimal?)cartItems.Item.Price).Sum();                if (shoptotal >= item.OrderLimit && item.Duration == "Started")                {                    shopdeal = shopdeal + shoptotal * item.ShopDiscount / 100;                }            }            return shopdeal;        }regards fiaz ahmed ranjha
打开App,查看更多内容
随时随地看视频慕课网APP