我有一个多供应商电子商务商店,每个商店经理都可以管理商店订单和商品的折扣。购物车模型如下:
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 循环)。如果有解决方法可以获取每个商店的总价格并应用商店折扣并获取总商店交易(总商店折扣),请帮忙。
慕斯王
相关分类