为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
九州编程 2023-09-24 16:16:34
我有一个多供应商电子商务商店,每个商店经理都可以管理商店订单和商品的折扣。购物车模型如下:    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 循环)。如果有解决方法可以获取每个商店的总价格并应用商店折扣并获取总商店交易(总商店折扣),请帮忙。
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

谢谢大家,经过大量努力,以下工作按预期为我工作

    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


查看完整回答
反对 回复 2023-09-24
  • 1 回答
  • 0 关注
  • 53 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信