/// <summary> /// 创建订单 /// </summary> /// <param name="order"></param> /// <returns></returns> public Tbl_Order AddOrder(OrderInfoCreateModel order) { //创建订单号 string orderNo = OrderHelper.GenerateOrderNo(); //订单 Tbl_Order list = new Tbl_Order { OrderNo = orderNo, TicketSource = order.TicketSource, PayType = order.PayType, PayAccount = "", PayTradeNo = "", SellerId = order.UserId, Price = 0, Linkman = order.Linkman, Mobile = order.Mobile, OrderStatus = (int)OrderDataStatus.NoPay, CreateTime = DateTime.Now, ValidityDateStart = order.ValidityDate, ValidityDateEnd = order.ValidityDate, UsedQuantity = 0, Remark = order.Remark, IDType = order.IdType, IDCard = order.IdCard, CreateUserId = order.UserId, OrderType = 0, OTABusinessName = "", GroupWay = 0 }; return(list); }
public TResult PayOrder(OrderCreateModel order) { var result = new TResult(); if (order.TicketItem.Count <= 0) { return(result.ErrorResult("请选择您要购买的产品")); } var userInfo = _enterpriseUserService.LoginForSession(); var orderInfo = new OrderInfoCreateModel { PayType = order.PayType, UserId = userInfo.UserId, ValidityDate = order.ValidityDate, Mobile = "", Linkman = "", TicketCategory = (int)TicketCategoryStatus.QrCodePrintTicket, TicketSource = (int)TicketSourceStatus.ScenicSpot, TicketItem = order.TicketItem }; List <int> productIds = orderInfo.TicketItem.Select(a => a.TicketId).ToList(); var tbl_Tickets = _ticketService.GetTickets(productIds); var tbl_Order = _orderService.AddOrder(orderInfo); var tbl_OrderDetails = _orderDetailService.AddOrderDetails(orderInfo, tbl_Order); _orderService.UpdateOrder(tbl_Order, tbl_OrderDetails); var tbl_Ticket_Testings = _ticketTestingService.addTicketTestings(tbl_Order, tbl_OrderDetails); _ticketService.UpdateTicketBySellCount(tbl_Tickets, tbl_OrderDetails); try { _orderService.BeginTran(); _orderService.Add(tbl_Order); _orderDetailService.Add(tbl_OrderDetails); _ticketTestingService.Add(tbl_Ticket_Testings); _saleLogService.Add(tbl_Order); _ticketService.Update(tbl_Tickets); //提交事物 _orderService.CommitTran(); } catch { _orderService.RollbackTran(); return(result.ErrorResult()); } //打印机打印 if (order.IsPrint && !string.IsNullOrEmpty(order.PrintKey)) { var isPrint = _printService.Print(tbl_Order.OrderNo, order.PrintKey); if (!isPrint.Success) { return(result.ErrorResult("门票创建成功," + isPrint.Message)); } } return(result.SuccessResult()); }
/// <summary> /// 创建订单详情 - 二维码票 /// </summary> /// <param name="order"></param> /// <param name="tbl_Order"></param> /// <returns></returns> public List <Tbl_OrderDetail> AddOrderDetails(OrderInfoCreateModel order, Tbl_Order tbl_Order) { if (order.TicketCategory == 1) { return(new List <Tbl_OrderDetail>()); } List <Tbl_OrderDetail> orderDetails = new List <Tbl_OrderDetail>(); string ticketNames = string.Empty; decimal TotalMoney = 0; int TotalCount = 0; //企业Id int EnterpriseID = 0; int ScenicID = 0; foreach (var te in order.TicketItem) { var ticket = _ticketService.GetTicket(order.ValidityDate, te.TicketId); var ticketRule = _ticketRuleRepository.FirstOrDefault(a => a.Id == ticket.RuleId); //二维码票: 每种门票 一个订单详情,多个数量 Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail { Number = Guid.NewGuid(), OrderNo = tbl_Order.OrderNo, EnterpriseId = ticket.EnterpriseId, ScenicId = ticket.ScenicId, OrderType = tbl_Order.OrderType, WindowId = 0, SellerId = tbl_Order.SellerId, SellerType = 1, OtaOrderDetailId = "", OrderSource = (int)OrderSource.My, TicketSource = order.TicketSource, TicketCategory = order.TicketCategory, UsedQuantity = 0, TicketId = te.TicketId, TicketName = ticket.TicketName, Price = ticket.SalePrice, Quantity = te.BookCount, BarCode = "", Stub = "", CertificateNO = "", OrderStatus = (int)OrderDetailsDataStatus.NoPay, CreateTime = DateTime.Now, ValidityDateStart = order.ValidityDate, ValidityDateEnd = order.ValidityDate, PrintCount = 0, QRcodeUrl = "", QRcode = "", Mobile = tbl_Order.Mobile, IDCard = tbl_Order.IDCard, Linkman = tbl_Order.Linkman, BuyUserId = tbl_Order.BuyUserId, CanModify = ticketRule.CanModify, CanRefund = ticketRule.CanRefund }; UpdateOrderDetailRefundTimeAndModifyTime(order.ValidityDate, ticket, tbl_OrderDetail, ticketRule); orderDetails.Add(tbl_OrderDetail); //有效的门票信息 EnterpriseID = ticket.EnterpriseId; ScenicID = ticket.ScenicId; ticketNames += ticket.TicketName + ","; TotalMoney += (ticket.SalePrice * te.BookCount); TotalCount += te.BookCount; } ticketNames = ticketNames.Substring(0, ticketNames.Length - 1); if (ticketNames.Length > 50) { ticketNames = ticketNames.Substring(0, 50); } tbl_Order.EnterpriseId = EnterpriseID; tbl_Order.ScenicId = ScenicID; tbl_Order.TicketName = ticketNames; tbl_Order.TotalAmount = TotalMoney; tbl_Order.BookCount = TotalCount; return(orderDetails); }