using System.Collections.Generic; using HK; namespace Runtime { public class ShoppingCart { private string _userName = string.Empty; private string _userModie = string.Empty; private string _userEmail = string.Empty; private string _orderID = string.Empty; private bool _isAgreeSubscribe = false; private List _datas = new List(); private string _totalQuantity = "0"; private string _itemsSubTotal = "0"; private string _discount = "0"; private string _totalAmount = "0"; private string _monetary = "RMB"; public string userName { get => _userName; set => _userName = value; } public string userModie { get => _userModie; set => _userModie = value; } public string userEmail { get => _userEmail; set => _userEmail = value; } public string orderID { get => _orderID; set => _orderID = value; } public bool isAgreeSubscribe { get => _isAgreeSubscribe; set => _isAgreeSubscribe = value; } public List datas => _datas; public string totalQuantity => _totalQuantity; public string itemsSubTotal => _itemsSubTotal; public string discount => _discount; public string totalAmount => _totalAmount; public string monetary { get => _monetary; set { _monetary = value; UpdateDatas(); } } public ShoppingCart() { var value = PlayerPersistent.GetString("monetary"); if (!string.IsNullOrEmpty(value)) { _monetary = value; } UpdateDatas(); } public void AddData(ShoppingCartData data) { datas.Add(data); UpdateDatas(); } public void RemoveData(ShoppingCartData data) { datas.Remove(data); UpdateDatas(); } public void Reset() { datas.Clear(); UpdateDatas(); } public void UpdateDatas() { _totalQuantity = string.Empty; _itemsSubTotal = string.Empty; _discount = string.Empty; _totalAmount = string.Empty; int i = 0, d = 0, t = 0, q = 0; foreach (var shoppingCartData in datas) { q += shoppingCartData.count; i += shoppingCartData.bookAmount * shoppingCartData.count; d += shoppingCartData.bookDiscount * shoppingCartData.count; t += shoppingCartData.bookAmount * shoppingCartData.count; } _totalQuantity = $"{q}"; _itemsSubTotal = $"{monetary} {i:F}"; _discount = $"{monetary} {d:F}"; _totalAmount = $"{monetary} {t:F}"; } } public class ShoppingCartData { /// /// name /// public string bookName; /// /// 价格 /// public int bookAmount; /// /// 优惠 /// public int bookDiscount; /// /// 数量 /// public int count; /// /// 预览图 /// public byte[] previewImage; /// /// 设计图 /// public byte[] designImage; } public class ShoppingCartManager : ManagerBase { private ShoppingCart shoppingCart = new(); public ShoppingCart ShoppingCart => shoppingCart; public void AddToCart(ShoppingCartData data) { shoppingCart.AddData(data); } public void RemoveFromCart(ShoppingCartData data) { shoppingCart.RemoveData(data); } public void RefreshCart() { shoppingCart.UpdateDatas(); } public void ResetCart() { shoppingCart.Reset(); } } }