コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        /// <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);
        }