private static string AddOrder(ShopCarViewModel shopCarViewModel) { string str = ""; var db = ConnHelper.CreateDb(); Random random = new Random(); var orderId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + random.Next(0, 9); List <GoodsMessage> items; if (shopCarViewModel.CardInfo.Count == 0) { items = shopCarViewModel.TicketInfo; str = "购买票"; } else { items = shopCarViewModel.CardInfo; str = "购买年卡"; } foreach (var item in items) { if (item.SumCount == 0) { continue; } var orderInfoEntity = new Order_Info(); orderInfoEntity.ClassID = item.ClassId; orderInfoEntity.Cred = "身份证"; orderInfoEntity.CredNo = shopCarViewModel.UserInfo.UserCard; orderInfoEntity.Cren = 0; orderInfoEntity.Email = ""; orderInfoEntity.Isfs = 0; orderInfoEntity.IsLingPiao = 0; orderInfoEntity.Lren = 0; orderInfoEntity.Mobile = shopCarViewModel.UserInfo.Phone; orderInfoEntity.MunPrice = item.SumPrice; orderInfoEntity.OrderID = orderId; orderInfoEntity.RTime = shopCarViewModel.UserInfo.GoDate.ToShortDateString(); orderInfoEntity.Rtong = item.SumCount; orderInfoEntity.State = 0; orderInfoEntity.Ticket = shopCarViewModel.UserInfo.Name; orderInfoEntity.Ticketer = shopCarViewModel.UserInfo.Name; orderInfoEntity.Type = 0; orderInfoEntity.AddTime = DateTime.Now; orderInfoEntity.Detail = "手机网站"; orderInfoEntity.IsPost = 0; orderInfoEntity.IsSMPost = 0; db.Order_Info.Add(orderInfoEntity); } db.SaveChanges(); LogHelper.CreateLog("游客开始在官方网站下订单->当前未支付!(" + str + ")", orderId.ToString()); return(orderId.ToString()); }
/// <summary> /// 订单应答构造方法 /// </summary> public OrderInfoResponse(Order_Info order, List <Tuple <string, string> > tuples) { //订单ID this.Id = order.Id; //用户id this.UserId = order.UserId; //收货人信息id this.AddressId = order.AddressId; //总价 this.TotalPrice = order.TotalPrice; //支付方式 this.PayType = order.PayType; //订单状态 this.Freight = order.Freight == null ? "0" : order.Freight; //状态 if (order.Status != null) { var tuple = tuples.Where(p => p.Item1 == order.Status.ToString()).FirstOrDefault(); this.Status = tuple == null ? "店家暂时没有处理" : tuple.Item2; } //订单编号 this.OrderNo = order.OrderNo; //订单时间 this.OrderTime = order.OrderTime.Value.ToString("yyyy-MM-dd hh:mm:ss"); //购买人名称 this.BuyName = order.BuyName; //购买人电话 this.Phone = order.Phone; //快递公司 this.ExpressCompany = order.ExpressCompany; //快递No this.ExpressNo = order.ExpressNo; //地址详情 this.Address = order.Address; //是否是erp订单 this.IsErp = order.ToErp; }
/// <summary> /// 数据条数 /// </summary> /// <param name="model">模型</param> /// <param name="connection">连接</param> /// <param name="transaction">事务</param> /// <returns>对象列表</returns> public int SelectCount(Order_Info model = null, IDbConnection connection = null, IDbTransaction transaction = null) { var query = new LambdaQuery <Order_Info>(); if (model != null) { if (!model.Id.IsNullOrEmpty()) { query.Where(p => p.Id == model.Id); } if (!model.UserId.IsNullOrEmpty()) { query.Where(p => p.UserId == model.UserId); } if (!model.AddressId.IsNullOrEmpty()) { query.Where(p => p.AddressId == model.AddressId); } if (!model.TotalPrice.IsNullOrEmpty()) { query.Where(p => p.TotalPrice == model.TotalPrice); } if (!model.DiscountPrice.IsNullOrEmpty()) { query.Where(p => p.DiscountPrice == model.DiscountPrice); } if (!model.DisCountResult.IsNullOrEmpty()) { query.Where(p => p.DisCountResult == model.DisCountResult); } if (!model.PayType.IsNullOrEmpty()) { query.Where(p => p.PayType == model.PayType); } if (!model.Status.IsNullOrEmpty()) { query.Where(p => p.Status == model.Status); } if (!model.OrderNo.IsNullOrEmpty()) { query.Where(p => p.OrderNo == model.OrderNo); } if (!model.OrderTime.IsNullOrEmpty()) { query.Where(p => p.OrderTime == model.OrderTime); } if (!model.OrderType.IsNullOrEmpty()) { query.Where(p => p.OrderType == model.OrderType); } if (!model.BuyName.IsNullOrEmpty()) { query.Where(p => p.BuyName == model.BuyName); } if (!model.Address.IsNullOrEmpty()) { query.Where(p => p.Address == model.Address); } if (!model.Phone.IsNullOrEmpty()) { query.Where(p => p.Phone == model.Phone); } if (!model.ExpressCompany.IsNullOrEmpty()) { query.Where(p => p.ExpressCompany == model.ExpressCompany); } if (!model.ExpressNo.IsNullOrEmpty()) { query.Where(p => p.ExpressNo == model.ExpressNo); } if (!model.Invoice.IsNullOrEmpty()) { query.Where(p => p.Invoice == model.Invoice); } if (!model.InvoiceId.IsNullOrEmpty()) { query.Where(p => p.InvoiceId == model.InvoiceId); } if (!model.LastCodeTime.IsNullOrEmpty()) { query.Where(p => p.LastCodeTime == model.LastCodeTime); } if (!model.WechatFaild.IsNullOrEmpty()) { query.Where(p => p.WechatFaild == model.WechatFaild); } if (!model.ToErp.IsNullOrEmpty()) { query.Where(p => p.ToErp == model.ToErp); } if (!model.IsDelete.IsNullOrEmpty()) { query.Where(p => p.IsDelete == model.IsDelete); } if (!model.Freight.IsNullOrEmpty()) { query.Where(p => p.Freight == model.Freight); } if (!model.UserDesign.IsNullOrEmpty()) { query.Where(p => p.UserDesign == model.UserDesign); } if (!model.IsAdmin.IsNullOrEmpty()) { query.Where(p => p.IsAdmin == model.IsAdmin); } if (!model.AdminName.IsNullOrEmpty()) { query.Where(p => p.AdminName == model.AdminName); } if (!model.WechatTime.IsNullOrEmpty()) { query.Where(p => p.WechatTime == model.WechatTime); } } return(query.GetQueryCount(connection, transaction)); }
/// <summary> /// 筛选全部数据 /// </summary> /// <param name="model">模型</param> /// <param name="connection">连接</param> /// <param name="transaction">事务</param> /// <returns>对象列表</returns> public List <Order_Info> SelectAll(Order_Info model = null, string SelectFiled = null, IDbConnection connection = null, IDbTransaction transaction = null) { var query = new LambdaQuery <Order_Info>(); if (model != null) { if (!model.Id.IsNullOrEmpty()) { query.Where(p => p.Id == model.Id); } if (!model.UserId.IsNullOrEmpty()) { query.Where(p => p.UserId == model.UserId); } if (!model.AddressId.IsNullOrEmpty()) { query.Where(p => p.AddressId == model.AddressId); } if (!model.TotalPrice.IsNullOrEmpty()) { query.Where(p => p.TotalPrice == model.TotalPrice); } if (!model.DiscountPrice.IsNullOrEmpty()) { query.Where(p => p.DiscountPrice == model.DiscountPrice); } if (!model.DisCountResult.IsNullOrEmpty()) { query.Where(p => p.DisCountResult == model.DisCountResult); } if (!model.PayType.IsNullOrEmpty()) { query.Where(p => p.PayType == model.PayType); } if (!model.Status.IsNullOrEmpty()) { query.Where(p => p.Status == model.Status); } if (!model.OrderNo.IsNullOrEmpty()) { query.Where(p => p.OrderNo == model.OrderNo); } if (!model.OrderTime.IsNullOrEmpty()) { query.Where(p => p.OrderTime == model.OrderTime); } if (!model.OrderType.IsNullOrEmpty()) { query.Where(p => p.OrderType == model.OrderType); } if (!model.BuyName.IsNullOrEmpty()) { query.Where(p => p.BuyName == model.BuyName); } if (!model.Address.IsNullOrEmpty()) { query.Where(p => p.Address == model.Address); } if (!model.Phone.IsNullOrEmpty()) { query.Where(p => p.Phone == model.Phone); } if (!model.ExpressCompany.IsNullOrEmpty()) { query.Where(p => p.ExpressCompany == model.ExpressCompany); } if (!model.ExpressNo.IsNullOrEmpty()) { query.Where(p => p.ExpressNo == model.ExpressNo); } if (!model.Invoice.IsNullOrEmpty()) { query.Where(p => p.Invoice == model.Invoice); } if (!model.InvoiceId.IsNullOrEmpty()) { query.Where(p => p.InvoiceId == model.InvoiceId); } if (!model.LastCodeTime.IsNullOrEmpty()) { query.Where(p => p.LastCodeTime == model.LastCodeTime); } if (!model.WechatFaild.IsNullOrEmpty()) { query.Where(p => p.WechatFaild == model.WechatFaild); } if (!model.ToErp.IsNullOrEmpty()) { query.Where(p => p.ToErp == model.ToErp); } if (!model.IsDelete.IsNullOrEmpty()) { query.Where(p => p.IsDelete == model.IsDelete); } if (!model.Freight.IsNullOrEmpty()) { query.Where(p => p.Freight == model.Freight); } if (!model.UserDesign.IsNullOrEmpty()) { query.Where(p => p.UserDesign == model.UserDesign); } if (!model.IsAdmin.IsNullOrEmpty()) { query.Where(p => p.IsAdmin == model.IsAdmin); } if (!model.AdminName.IsNullOrEmpty()) { query.Where(p => p.AdminName == model.AdminName); } if (!model.WechatTime.IsNullOrEmpty()) { query.Where(p => p.WechatTime == model.WechatTime); } } if (SelectFiled != null) { SelectFiled = SelectFiled.ToLowerInvariant(); if (SelectFiled.Contains("id,")) { query.Select(p => new { p.Id }); } if (SelectFiled.Contains("userid,")) { query.Select(p => new { p.UserId }); } if (SelectFiled.Contains("addressid,")) { query.Select(p => new { p.AddressId }); } if (SelectFiled.Contains("totalprice,")) { query.Select(p => new { p.TotalPrice }); } if (SelectFiled.Contains("discountprice,")) { query.Select(p => new { p.DiscountPrice }); } if (SelectFiled.Contains("discountresult,")) { query.Select(p => new { p.DisCountResult }); } if (SelectFiled.Contains("paytype,")) { query.Select(p => new { p.PayType }); } if (SelectFiled.Contains("status,")) { query.Select(p => new { p.Status }); } if (SelectFiled.Contains("orderno,")) { query.Select(p => new { p.OrderNo }); } if (SelectFiled.Contains("ordertime,")) { query.Select(p => new { p.OrderTime }); } if (SelectFiled.Contains("ordertype,")) { query.Select(p => new { p.OrderType }); } if (SelectFiled.Contains("buyname,")) { query.Select(p => new { p.BuyName }); } if (SelectFiled.Contains("address,")) { query.Select(p => new { p.Address }); } if (SelectFiled.Contains("phone,")) { query.Select(p => new { p.Phone }); } if (SelectFiled.Contains("expresscompany,")) { query.Select(p => new { p.ExpressCompany }); } if (SelectFiled.Contains("expressno,")) { query.Select(p => new { p.ExpressNo }); } if (SelectFiled.Contains("invoice,")) { query.Select(p => new { p.Invoice }); } if (SelectFiled.Contains("invoiceid,")) { query.Select(p => new { p.InvoiceId }); } if (SelectFiled.Contains("lastcodetime,")) { query.Select(p => new { p.LastCodeTime }); } if (SelectFiled.Contains("wechatfaild,")) { query.Select(p => new { p.WechatFaild }); } if (SelectFiled.Contains("toerp,")) { query.Select(p => new { p.ToErp }); } if (SelectFiled.Contains("isdelete,")) { query.Select(p => new { p.IsDelete }); } if (SelectFiled.Contains("freight,")) { query.Select(p => new { p.Freight }); } if (SelectFiled.Contains("userdesign,")) { query.Select(p => new { p.UserDesign }); } if (SelectFiled.Contains("isadmin,")) { query.Select(p => new { p.IsAdmin }); } if (SelectFiled.Contains("adminname,")) { query.Select(p => new { p.AdminName }); } if (SelectFiled.Contains("wechattime,")) { query.Select(p => new { p.WechatTime }); } } return(query.GetQueryList(connection, transaction)); }
public bool UpdateOrderStatus(Order_Info ord) { return(Order_InfoOper.Instance.Update(ord)); }
/// <summary> /// 更新模型 /// </summary> /// <param name="model">订单模型</param> /// <returns></returns> public bool UpdateModel(Order_Info model) { return(Order_InfoOper.Instance.Update(model)); }
/// <summary> /// 后台订单创建 /// </summary> /// <param name="orderType">订单类型:是否为PC订单</param> /// <param name="address">地址</param> /// <param name="name">用户名称</param> /// <param name="Phone">用户电话</param> /// <param name="invoice">发票信息</param> /// <param name="commId">商品id</param> /// <param name="PrintingMethod">印刷方式</param> /// <param name="AmountNum">数目</param> /// <param name="ColorId">颜色Id</param> /// <returns></returns> public bool CreateAdminOrder(int orderType, string address, string name, string Phone, string invoice, int commId, string PrintingMethod, int?AmountNum, int ColorId, string ErpUserName) { var MysqlHelper = SqlHelper.GetMySqlHelper("transaction"); var connection = MysqlHelper.CreatConn(); var transaction = MysqlHelper.GetTransaction(); try { #region 单 var orderNo = DateTime.Now.ToString("yyMMdd") + (TodayorderOper.Instance.SelectAll(null, null, connection, transaction).FirstOrDefault().OrderCount + 1).ToString("000"); #region 订单信息处理 Order_Info info = new Order_Info { Address = address, OrderNo = orderNo, OrderTime = DateTime.Now, OrderType = orderType, PayType = 1, Status = 1, UserId = 0, BuyName = name, Phone = Phone.Trim(), Invoice = invoice, LastCodeTime = DateTime.Now, IsAdmin = true, AdminName = ErpUserName }; #endregion #region 订单明细处理 #region 判断商品是否存在 var commdity = CommodityOper.Instance.SelectById(commId, connection, transaction); if (commdity == null) { transaction.Rollback(); connection.Close(); return(false); } #endregion var commdityList = new List <int?>(); commdityList.Add(commdity.Id); var MaterialIdList = new List <string>(); MaterialIdList.Add(commdity.MaterialId.Value.ToString()); var StockList = Materials_Stock_ViewOper.Instance.SelectByKeys("Raw_materialsId", MaterialIdList, connection, transaction); var materials = Raw_MaterialsOper.Instance.SelectById(commdity.MaterialId.Value, connection, transaction); var StorageList = StorageOper.Instance.SelectByKeys("Raw_materialsId", MaterialIdList, connection, transaction); var list = CommodityPriceFunc.Instance.SelectByIds(commdityList); List <Order_Detail> listDetail = new List <Order_Detail>(); var priceArray = new List <Tuple <int?, decimal?> >(); #region 获取商品价格 if (materials.SalesInfoList == null) { var priceItemList = list.Where(p => p.CommodityId == commdity.Id).OrderByDescending(p => p.StageAmount); foreach (var priceitem in priceItemList) { priceArray.Add(new Tuple <int?, decimal?>(item1: priceitem.StageAmount, item2: priceitem.StagePrice)); } } else { var saleinfo = materials.SalesInfoList.Split(';').Where(p => !string.IsNullOrEmpty(p)).ToList(); foreach (var saleitem in saleinfo) { var saledetailInfo = saleitem.Split('|').Where(p => !string.IsNullOrEmpty(p)).ToList(); if (PrintingMethod == "PrintFunc2") { priceArray.Add(new Tuple <int?, decimal?>(item1: saledetailInfo[0].ParseInt(), item2: saledetailInfo[2].ParseDecimal())); } else if (PrintingMethod == "PrintFunc3") { priceArray.Add(new Tuple <int?, decimal?>(item1: saledetailInfo[0].ParseInt(), item2: saledetailInfo[3].ParseDecimal())); } else { priceArray.Add(new Tuple <int?, decimal?>(item1: saledetailInfo[0].ParseInt(), item2: saledetailInfo[1].ParseDecimal())); } } var priceInfo = list.Where(p => p.StageAmount == 0).FirstOrDefault(); if (priceInfo != null) { priceArray.Add(new Tuple <int?, decimal?>(item1: 0, item2: priceInfo.StagePrice)); } } var price = priceArray.Where(p => p.Item1 < AmountNum).OrderByDescending(p => p.Item1).FirstOrDefault(); #endregion #region 判断库存是否足够 var Stock = StockList.Where(p => p.ColorId == ColorId).FirstOrDefault(); if (Stock == null || (Stock.available_stock == null ? 0 : Stock.available_stock) < AmountNum) { transaction.Rollback(); connection.Close(); return(false); } var ThisStorageList = StorageList.Where(p => p.Color == Stock.SKU).ToList(); #region 修改库存数量 var Amount = AmountNum; foreach (var Storage in ThisStorageList) { if (Storage.stock > Storage.freeze_stock) { if ((Amount + Storage.freeze_stock) < Storage.stock) { Storage.freeze_stock = Storage.freeze_stock + Amount; Amount = 0; if (!StorageOper.Instance.Update(Storage, connection, transaction)) { transaction.Rollback(); connection.Close(); return(false); } break; } else { Amount = Amount - Storage.stock + Storage.freeze_stock; Storage.freeze_stock = Storage.stock; if (!StorageOper.Instance.Update(Storage, connection, transaction)) { transaction.Rollback(); connection.Close(); return(false); } } } } #endregion #endregion if (price != null && AmountNum != null) { decimal?payMoney = 0; payMoney = AmountNum * price.Item2.Value; Order_Detail detail = new Order_Detail { Color = ColorId, CommodityId = commId, Amount = AmountNum, PayMoney = payMoney, PrintingMethod = PrintingMethod }; listDetail.Add(detail); } else { transaction.Rollback(); connection.Close(); return(false); } #endregion #region 添加方法 info.TotalPrice = listDetail.Sum(p => p.PayMoney); if (info.TotalPrice < 10) { info.TotalPrice = 10; info.Freight = "10"; } else if (info.TotalPrice > 10 && info.TotalPrice < 100) { info.TotalPrice = info.TotalPrice + 10; info.Freight = "10"; } var OrderKey = Order_InfoOper.Instance.InsertReturnKey(info, connection, transaction); if (OrderKey <= 0) { transaction.Rollback(); connection.Close(); return(false); } info.Id = OrderKey; if (listDetail.Count == 0) { transaction.Rollback(); connection.Close(); return(false); } foreach (var item in listDetail) { item.OrderId = OrderKey; if (!Order_DetailOper.Instance.Insert(item, connection, transaction)) { transaction.Rollback(); connection.Close(); return(false); } } #endregion #endregion transaction.Commit(); connection.Close(); return(true); } catch (Exception e) { transaction.Rollback(); connection.Close(); return(false); } }
/// <summary> /// 创建订单 /// </summary> /// <param name="Address">地址</param> /// <param name="userId">用户ID</param> /// <param name="ShopCartIds">购物车列表</param> /// <param name="UserDecount">用户折扣</param> /// <param name="connection">链接</param> /// <param name="transaction">事务</param> /// <returns></returns> private Tuple <Order_Info, string> CreateOrder(int orderType, string Address, int userId, string ShopCartIds, decimal UserDecount, IDbConnection connection, IDbTransaction transaction, int PayType, string name, string Phone, string Invoice) { var orderNo = DateTime.Now.ToString("yyMMdd") + (TodayorderOper.Instance.SelectAll(null, null, connection, transaction).FirstOrDefault().OrderCount + 1).ToString("000"); #region 地址添加 //地址分割 //var ArrayAddress = Address.Split(' ').Where(p => !p.IsNullOrEmpty()).ToList(); //Address addr = new Address //{ // UserId = userId, // AddrArea = $"{ArrayAddress[0]},{ArrayAddress[1]},{ArrayAddress[2]}", // AddrDetail = ArrayAddress[3], // ContactName = name, // ContactPhone = Phone //}; //if (AddressFunc.Instance.SelectAll(addr).Count == 0) //{ // if (AddressFunc.Instance.AdressAdd(addr) <= 0) // { // return new Tuple<Order_Info, string>(null, "地址添加失败!"); // } //} #endregion #region 订单信息处理 Order_Info info = new Order_Info { Address = Address, OrderNo = orderNo, OrderTime = DateTime.Now, OrderType = orderType, PayType = PayType, Status = 1, UserId = userId, BuyName = name, Phone = Phone.Trim(), Invoice = Invoice, InvoiceId = Invoice.ParseInt(), LastCodeTime = DateTime.Now }; #endregion #region 订单明细处理 var listCart = ShopcartOper.Instance.SelectByIds(ShopCartIds.Split(',').ToList(), connection, transaction); var CommdityList = CommodityOper.Instance.SelectByKeys("id", listCart.Where(q => q != null).Select(p => p.CommodityId.Value.ToString()).ToList(), connection, transaction); var StockList = Materials_Stock_ViewOper.Instance.SelectByKeys("Raw_materialsId", CommdityList.Where(q => q.MaterialId != null).Select(p => p.MaterialId.Value.ToString()).ToList(), connection, transaction); var MaterialsList = Raw_MaterialsOper.Instance.SelectByKeys("Id", CommdityList.Where(q => q.MaterialId != null).Select(p => p.MaterialId.Value.ToString()).ToList(), connection, transaction); var StorageList = StorageOper.Instance.SelectByKeys("Raw_materialsId", CommdityList.Where(q => q.MaterialId != null).Select(p => p.MaterialId.Value.ToString()).ToList(), connection, transaction); var list = CommodityPriceFunc.Instance.SelectByIds(listCart.Select(p => p.CommodityId).ToList()); List <Order_Detail> listDetail = new List <Order_Detail>(); foreach (var item in listCart) { var commdity = CommdityList.Where(p => p.Id == item.CommodityId).FirstOrDefault(); var materials = MaterialsList.Where(p => p.Id == commdity.MaterialId).FirstOrDefault(); var priceArray = new List <Tuple <int?, decimal?> >(); if (materials.SalesInfoList == null) { var priceItemList = list.Where(p => p.CommodityId == commdity.Id).OrderByDescending(p => p.StageAmount); foreach (var priceitem in priceItemList) { priceArray.Add(new Tuple <int?, decimal?>(item1: priceitem.StageAmount, item2: priceitem.StagePrice)); } } else { var saleinfo = materials.SalesInfoList.Split(';').Where(p => !string.IsNullOrEmpty(p)).ToList(); foreach (var saleitem in saleinfo) { var saledetailInfo = saleitem.Split('|').Where(p => !string.IsNullOrEmpty(p)).ToList(); if (item.PrintingMethod == "PrintFunc2") { priceArray.Add(new Tuple <int?, decimal?>(item1: saledetailInfo[0].ParseInt(), item2: saledetailInfo[2].ParseDecimal())); } else if (item.PrintingMethod == "PrintFunc3") { priceArray.Add(new Tuple <int?, decimal?>(item1: saledetailInfo[0].ParseInt(), item2: saledetailInfo[3].ParseDecimal())); } else { priceArray.Add(new Tuple <int?, decimal?>(item1: saledetailInfo[0].ParseInt(), item2: saledetailInfo[1].ParseDecimal())); } } var priceInfo = list.Where(p => p.StageAmount == 0).FirstOrDefault(); if (priceInfo != null) { priceArray.Add(new Tuple <int?, decimal?>(item1: 0, item2: priceInfo.StagePrice)); } } var price = priceArray.Where(p => p.Item1 < item.Amount).OrderByDescending(p => p.Item1).FirstOrDefault(); #region 判断商品是否存在 var Commdity = CommdityList.Where(p => p.Id == item.CommodityId).FirstOrDefault(); if (Commdity == null) { return(new Tuple <Order_Info, string>(null, "商品不存在!")); } #endregion #region 判断库存是否足够 var Stock = StockList.Where(p => p.Raw_materialsId == Commdity.MaterialId && p.ColorName == item.Color).FirstOrDefault(); if (Stock == null || (Stock.available_stock == null ? 0 : Stock.available_stock) < item.Amount) { return(new Tuple <Order_Info, string>(null, "库存不足,请联系客服!")); } var ThisStorageList = StorageList.Where(p => p.Raw_materialsId == Commdity.MaterialId && p.Color == Stock.SKU).ToList(); #region 修改库存数量 var Amount = item.Amount; foreach (var Storage in ThisStorageList) { if (Storage.stock > Storage.freeze_stock) { if ((Amount + Storage.freeze_stock) < Storage.stock) { Storage.freeze_stock = Storage.freeze_stock + Amount; Amount = 0; if (!StorageOper.Instance.Update(Storage, connection, transaction)) { return(new Tuple <Order_Info, string>(null, "库存更新失败!")); } break; } else { Amount = Amount - Storage.stock + Storage.freeze_stock; Storage.freeze_stock = Storage.stock; if (!StorageOper.Instance.Update(Storage, connection, transaction)) { return(new Tuple <Order_Info, string>(null, "库存更新失败!")); } } } } #endregion #endregion if (price != null && item.Amount != null) { decimal?payMoney = 0; payMoney = item.Amount * price.Item2.Value * UserDecount; Order_Detail detail = new Order_Detail { Color = ColorinfoFunc.Instance.GetColorID(item.Color).ParseInt(), CommodityId = item.CommodityId, Amount = item.Amount, ShopCartId = item.Id, PayMoney = payMoney, PrintingMethod = item.PrintingMethod }; listDetail.Add(detail); } else { return(new Tuple <Order_Info, string>(null, "对不起,价格出现问题!")); } } #endregion #region 添加方法 info.TotalPrice = listDetail.Sum(p => p.PayMoney); if (info.TotalPrice < 10) { info.TotalPrice = 10; info.Freight = "10"; } else if (info.TotalPrice > 10 && info.TotalPrice < 100) { info.TotalPrice = info.TotalPrice + 10; info.Freight = "10"; } var OrderKey = Order_InfoOper.Instance.InsertReturnKey(info, connection, transaction); if (OrderKey <= 0) { return(new Tuple <Order_Info, string>(null, "订单添加失败!")); } info.Id = OrderKey; if (listDetail.Count == 0) { return(new Tuple <Order_Info, string>(null, "至少要有一件商品!")); } foreach (var item in listDetail) { item.OrderId = OrderKey; if (!Order_DetailOper.Instance.Insert(item, connection, transaction)) { return(new Tuple <Order_Info, string>(null, "至少要有一件商品!")); } } #endregion #region 除购物车 foreach (var item in listCart) { if (!ShopcartOper.Instance.DeleteById(item.Id, connection, transaction)) { return(new Tuple <Order_Info, string>(null, "购物车删除失败!")); } } #endregion return(new Tuple <Order_Info, string>(info, "成功!")); }
/// <summary> /// 数据条数 /// </summary> /// <param name="model">模型</param> /// <returns>对象列表</returns> public int SelectCount(Order_Info model) { return(Order_InfoOper.Instance.SelectCount(model)); }
/// <summary> /// 筛选全部数据 /// </summary> /// <param name="model">模型</param> /// <returns>对象列表</returns> public List <Order_Info> SelectByModel(Order_Info model) { return(Order_InfoOper.Instance.SelectAll(model)); }
/// <summary> /// 根据模型插入 /// </summary> /// <param name="model">模型</param> /// <returns>是否成功</returns> public int InsertReturnKey(Order_Info model) { return(Order_InfoOper.Instance.InsertReturnKey(model)); }
/// <summary> /// 根据模型插入 /// </summary> /// <param name="model">模型</param> /// <returns>是否成功</returns> public bool Insert(Order_Info model) { return(Order_InfoOper.Instance.Insert(model)); }
/// <summary> /// 根据模型删除数据 /// </summary> /// <param name="model">模型</param> /// <returns>是否成功</returns> public bool DeleteModel(Order_Info model) { return(Order_InfoOper.Instance.DeleteModel(model)); }
/// <summary> /// 根据分页筛选数据 /// </summary> /// <param name="Key">主键</param> /// <param name="start">开始数据</param> /// <param name="PageSize">页面长度</param> /// <param name="desc">排序</param> /// <param name="model">对象</param> /// <returns>对象列表</returns> public List <Order_Info> SelectByPage(string Key, int start, int PageSize, bool desc, Order_Info model, string SelectFiled) { return(Order_InfoOper.Instance.SelectByPage(Key, start, PageSize, desc, model)); }