Ejemplo n.º 1
0
 /// <summary>
 /// 修改订单
 /// </summary>
 /// <param name="openId"></param>
 /// <param name="transaction_id"></param>
 /// <param name="tbl_Order"></param>
 private void UpdateOrder(Tbl_Order tbl_Order, string transaction_id)
 {
     tbl_Order.OrderStatus = (int)OrderStatusType.Success;
     tbl_Order.PayTime     = DateTime.Now;//付款时间
     tbl_Order.PayTradeNo  = transaction_id;
     _orderRepository.Update(tbl_Order);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 创建订单
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        public Tbl_Order AddOrderForNoPay(OrderInfoModel order)
        {
            //创建订单号
            string orderNo = OrderHelper.GenerateOrderNo();
            //订单
            Tbl_Order list = new Tbl_Order
            {
                OrderNo           = orderNo,
                TicketSource      = order.TicketSource,
                PayType           = order.PayType,
                PayAccount        = "",
                PayTradeNo        = "",
                SellerId          = 0,
                Price             = 0,
                Linkman           = order.Linkman,
                Mobile            = order.Mobile,
                OrderStatus       = (int)OrderDataStatus.NoPay,
                CreateTime        = DateTime.Now,
                ValidityDateStart = order.ValidityDate,
                ValidityDateEnd   = order.ValidityDate,
                UsedQuantity      = 0,
                Remark            = "TVM购票",
                IDCard            = "",
                CreateUserId      = 0,
                OrderType         = 0,
                OTABusinessName   = "",
                GroupWay          = 0
            };

            return(list);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 创建订单详情
        /// </summary>
        /// <param name="order"></param>
        /// <param name="tbl_Order"></param>
        /// <returns></returns>
        public List <Tbl_OrderDetail> AddOrderDetail(OrderInfo order, Tbl_Order tbl_Order)
        {
            List <Tbl_OrderDetail> orderDetails = new List <Tbl_OrderDetail>();

            orderDetails.AddRange(addQrCodeTicketOrderDetail(order, tbl_Order));
            return(orderDetails);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 创建订单
        /// </summary>
        /// <param name="orderCreateDto"></param>
        /// <returns></returns>
        private Tbl_Order AddOrderForRecharge(OrderRechargeDto orderRechargeDto)
        {
            //创建订单号
            string orderNo = OrderHelper.GenerateOrderNo();
            //订单
            Tbl_Order tbl_Order = new Tbl_Order
            {
                OrderNo           = orderNo,
                OpenId            = orderRechargeDto.OpenId,
                TicketName        = "充值",
                TotalAmount       = orderRechargeDto.Amount,
                PayType           = (int)PayType.Wechat,
                OrderStatus       = (int)OrderStatusType.NoPay,
                ValidityDateStart = DateTime.Now,
                ValidityDateEnd   = DateTime.Now,
                OrderType         = (int)OrderType.Recharge,
                CreateTime        = DateTime.Now,
                BookCount         = 1,
                Linkman           = "",
                Mobile            = "",
                TicketSource      = 1,
                PayAccount        = "",
                PayTradeNo        = "",
                SellerId          = 0,
                Price             = 0,
                UsedQuantity      = 0,
                Remark            = "",
                IDCard            = "",
                CreateUserId      = 0,
            };

            _orderRepository.Add(tbl_Order);
            return(tbl_Order);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 修改用户余额--余额充值
        /// </summary>
        /// <param name="tbl_Order"></param>
        public void UpdateForBalanceRecharge(Tbl_Order tbl_Order)
        {
            var tbl_WeiXin_User = GetByOpenId(tbl_Order.OpenId);

            if (tbl_WeiXin_User != null)
            {
                tbl_WeiXin_User.Balance += tbl_Order.TotalAmount;
                _weiXinUserRepository.Update(tbl_WeiXin_User);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 从统一下单成功返回的数据中获取微信浏览器调起jsapi支付所需的参数
 /// 门票支付
 /// </summary>
 /// <returns></returns>
 public string PayOrderForTicket(Tbl_Order tbl_Order)
 {
     return(_paymentGateway.PayOrder(new PayRequest
     {
         Body = "[兄弟连] 购买门票支付",
         OpenId = tbl_Order.OpenId,
         OutTradeNo = tbl_Order.OrderNo,
         TotalFee = tbl_Order.TotalAmount
     }));
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 再次支付
        /// </summary>
        /// <param name="orderCreateDto"></param>
        /// <returns></returns>
        public OrderCreateViewDto PayAgain(Tbl_Order tbl_Order)
        {
            var jsApiParameters = _wxPayService.PayOrderForTicket(tbl_Order);

            return(new OrderCreateViewDto
            {
                OrderNo = tbl_Order.OrderNo,
                JsApiParameters = jsApiParameters
            });
        }
Ejemplo n.º 8
0
 /// <summary>
 /// 添加用户积分--微信消费
 /// </summary>
 /// <param name="tbl_Order"></param>
 public void AddForWechatConsumption(Tbl_Order tbl_Order)
 {
     AddIntegral(new IntegralDetailsCreateDto
     {
         OpenId  = tbl_Order.OpenId,
         Amount  = tbl_Order.TotalAmount,
         Name    = "购买景区门票",
         Type    = IntegralType.Consumption,
         PayType = PayType.Wechat
     });
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 添加用户积分--充值
 /// </summary>
 /// <param name="tbl_Order"></param>
 public void AddForRecharge(Tbl_Order tbl_Order)
 {
     AddIntegral(new IntegralDetailsCreateDto
     {
         OpenId  = tbl_Order.OpenId,
         Amount  = tbl_Order.TotalAmount,
         Name    = "购买景区门票",
         Type    = IntegralType.Recharge,
         PayType = PayType.Balance
     });
 }
Ejemplo n.º 10
0
        /// <summary>
        /// 余额支付 返回订单号
        /// </summary>
        /// <param name="orderCreateDto"></param>
        /// <returns></returns>
        public string BalancePay(OrderCreateDto orderCreateDto)
        {
            var tbl_Order = new Tbl_Order();

            //余额支付
            using (var unitOfWork = new UnitOfWork())
            {
                tbl_Order = _orderService.BalancePay(orderCreateDto);
                unitOfWork.Commit();
            }
            return(tbl_Order.OrderNo);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 修改订单--小径平台
        /// </summary>
        /// <param name="tbl_Order"></param>
        /// <param name="request"></param>
        public void UpdateOrder(Tbl_Order tbl_Order, XJ_Order request)
        {
            var person = request.ContactPerson;

            tbl_Order.IDType            = GetIdCardType(person.CardType);
            tbl_Order.IDCard            = person.CardNo;
            tbl_Order.Mobile            = person.Mobile;
            tbl_Order.Linkman           = person.Name;
            tbl_Order.ValidityDateStart = request.VisitDate;
            tbl_Order.ValidityDateEnd   = request.VisitDate;
            _orderRepository.Update(tbl_Order);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 修改订单
        /// </summary>
        /// <param name="tbl_Order"></param>
        /// <param name="request"></param>
        public void UpdateOrder(Tbl_Order tbl_Order, OrderUpdateRequest request)
        {
            var person = request.Body.OrderInfo.ContactPerson;

            tbl_Order.IDType            = GetIdCardType(person.CardType);
            tbl_Order.IDCard            = person.CardNo;
            tbl_Order.Mobile            = person.Mobile;
            tbl_Order.Linkman           = person.Name;
            tbl_Order.ValidityDateStart = request.Body.OrderInfo.VisitDate.ToDataTime();
            tbl_Order.ValidityDateEnd   = request.Body.OrderInfo.VisitDate.ToDataTime();
            _orderRepository.Update(tbl_Order);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 创建单个产品订单详情
        /// </summary>
        /// <param name="order"></param>
        /// <param name="tbl_Order"></param>
        /// <returns></returns>
        public Tbl_OrderDetail AddOrderDetail(OrderSingleInfo order, Tbl_Order tbl_Order, Tbl_Ticket tbl_Ticket)
        {
            var ticketRule = _ticketRuleRepository.FirstOrDefault(a => a.Id == tbl_Ticket.RuleId);
            //二维码票: 每种门票 一个订单详情,多个数量
            Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail
            {
                Number            = Guid.NewGuid(),
                OrderNo           = tbl_Order.OrderNo,
                EnterpriseId      = tbl_Ticket.EnterpriseId,
                ScenicId          = tbl_Ticket.ScenicId,
                WindowId          = 0,
                SellerId          = 0,
                SellerType        = 1,
                OtaOrderDetailId  = 0,
                OrderSource       = (int)OrderSource.OTA,
                TicketSource      = (int)TicketSourceStatus.Ota,
                TicketCategory    = (int)TicketCategoryStatus.QrCodeElectronTicket,
                UsedQuantity      = 0,
                TicketId          = tbl_Ticket.TicketId,
                TicketName        = tbl_Ticket.TicketName,
                Price             = tbl_Ticket.SalePrice,
                SettlementPrice   = tbl_Ticket.SettlementPrice,
                Quantity          = order.Ticket.Quantity,
                BarCode           = "",
                Stub              = "",
                CertificateNO     = "",
                OrderStatus       = (int)OrderDetailsDataStatus.NoPay,
                CreateTime        = DateTime.Now,
                ValidityDateStart = order.VisitDate.ToDataTime(),
                ValidityDateEnd   = order.VisitDate.ToDataTime(),
                PrintCount        = 0,
                QRcodeUrl         = "",
                QRcode            = "",
                Mobile            = order.ContactPerson.Mobile,
                IDCard            = tbl_Order.IDCard,
                Linkman           = order.ContactPerson.Name,
                CanModify         = ticketRule.CanModify,
                CanRefund         = ticketRule.CanRefund
            };

            UpdateOrderDetailRefundTimeAndModifyTime(order.VisitDate.ToDataTime(), tbl_Ticket, tbl_OrderDetail, ticketRule);


            //修改订单信息
            tbl_Order.EnterpriseId = tbl_OrderDetail.EnterpriseId;
            tbl_Order.ScenicId     = tbl_OrderDetail.ScenicId;
            tbl_Order.TicketName   = tbl_OrderDetail.TicketName;
            tbl_Order.TotalAmount  = tbl_Ticket.SalePrice * order.Ticket.Quantity;
            tbl_Order.BookCount    = order.Ticket.Quantity;
            return(tbl_OrderDetail);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 添加订单出行通知
        /// </summary>
        /// <param name="tbl_Order"></param>
        /// <param name="tbl_OrderDetail"></param>
        /// <param name="business"></param>
        public void Add(Tbl_Order tbl_Order, Tbl_OTABusiness business)
        {
            var tbl_OrderTravelNotice = new Tbl_OrderTravelNotice
            {
                SequenceId  = DateTime.Now.ToString("yyyyMMdd") + Guid.NewGuid().ToString("N"),
                ScenicId    = tbl_Order.ScenicId,
                IdentityKey = business.IdentityKey,
                OrderNo     = tbl_Order.OrderNo,
                OtaOrderId  = tbl_Order.OTAOrderNo,
                RunCount    = 0,
                CreateTime  = DateTime.Now
            };

            _orderTravelNoticeRepository.Add(tbl_OrderTravelNotice);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 更新用户余额--余额支付
        /// </summary>
        /// <param name="tbl_WeiXin_User"></param>
        /// <param name="amount"></param>
        public void UpdateForBalancePay(Tbl_Order tbl_Order)
        {
            var tbl_WeiXin_User = GetByOpenId(tbl_Order.OpenId);

            tbl_WeiXin_User.Balance -= tbl_Order.TotalAmount;
            if (tbl_WeiXin_User.SaleMoney.HasValue)
            {
                tbl_WeiXin_User.SaleMoney += tbl_Order.TotalAmount;
            }
            else
            {
                tbl_WeiXin_User.SaleMoney = tbl_Order.TotalAmount;
            }
            _weiXinUserRepository.Update(tbl_WeiXin_User);
        }
        /// <summary>
        /// 二维码支付,生成验票信息,自动激活
        /// </summary>
        /// <param name="order"></param>
        /// <param name="orderDetails"></param>
        /// <returns></returns>
        public List <Tbl_Ticket_Testing> addTicketTestings(Tbl_Order order, List <Tbl_OrderDetail> orderDetails)
        {
            List <Tbl_Ticket_Testing> ticketTestings = new List <Tbl_Ticket_Testing>();

            foreach (var orderDetail in orderDetails)
            {
                orderDetail.OrderStatus = (int)OrderDetailsDataStatus.Success;

                if (orderDetail.TicketCategory != 1)
                {
                    //生成凭证号
                    orderDetail.CertificateNO = OrderHelper.GetCertificateNo();

                    //二维码订单支付,生成二维码串,自动激活
                    orderDetail.OrderStatus = (int)OrderDetailsDataStatus.Activate;

                    //生成二维码串
                    orderDetail.QRcode = OrderHelper.GenerateQRCode();

                    //生成一张二维码图片,返回图片地址
                    string imgpath = string.Empty;
                    //OrderHelper.CreateCode_Simple(orderDetail.QRcode, out imgpath);
                    orderDetail.QRcodeUrl = imgpath;

                    //二维码支付,生成验票信息,自动激活
                    Tbl_Ticket_Testing tbl_Ticket_Testing = new Tbl_Ticket_Testing
                    {
                        OrderDetailNumber = orderDetail.Number,
                        OrderDetailId     = orderDetail.OrderDetailId,
                        OrderNo           = orderDetail.OrderNo,
                        EnterpriseId      = orderDetail.EnterpriseId,
                        ScenicId          = orderDetail.ScenicId,
                        TicketCategory    = orderDetail.TicketCategory,
                        TicketId          = orderDetail.TicketId,
                        TicketName        = orderDetail.TicketName,
                        BarCode           = orderDetail.BarCode,
                        CertificateNO     = orderDetail.CertificateNO,
                        QRcode            = orderDetail.QRcode,
                        DataStatus        = 1,
                        Quantity          = orderDetail.Quantity,
                        IDCard            = orderDetail.IDCard
                    };
                    ticketTestings.Add(tbl_Ticket_Testing);
                }
            }
            return(ticketTestings);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 下单
        /// </summary>
        /// <param name="orderCreateDto"></param>
        /// <returns></returns>
        public OrderCreateViewDto Create(OrderCreateDto orderCreateDto)
        {
            var tbl_Order = new Tbl_Order();

            using (var unitOfWork = new UnitOfWork())
            {
                tbl_Order = _orderService.Create(orderCreateDto);
                unitOfWork.Commit();
            }
            var jsApiParameters = _wxPayService.PayOrderForTicket(tbl_Order);

            return(new OrderCreateViewDto
            {
                OrderNo = tbl_Order.OrderNo,
                JsApiParameters = jsApiParameters
            });
        }
        /// <summary>
        /// 添加订单消费通知
        /// </summary>
        /// <param name="tbl_Order"></param>
        /// <param name="tbl_OrderDetail"></param>
        /// <param name="business"></param>
        public void Add(Tbl_Order tbl_Order, Tbl_OrderDetail tbl_OrderDetail, Tbl_OTABusiness business)
        {
            var tbl_NoticeOrderConsumed = new Tbl_NoticeOrderConsumed
            {
                ScenicId          = tbl_Order.ScenicId,
                IdentityKey       = business.IdentityKey,
                OrderNo           = tbl_Order.OrderNo,
                OtaOrderId        = tbl_Order.OTAOrderNo,
                OrderDetailNumber = tbl_OrderDetail.Number,
                Count             = tbl_OrderDetail.Quantity,
                IsTaken           = false,
                RunCount          = 0,
                CreateTime        = DateTime.Now
            };

            _noticeOrderConsumedRepository.Add(tbl_NoticeOrderConsumed);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// 充值
        /// </summary>
        /// <param name="orderCreateDto"></param>
        public OrderCreateViewDto Recharge(OrderRechargeDto orderRechargeDto)
        {
            _weiXinUserService.CheckIsExist(orderRechargeDto.OpenId);
            var tbl_Order = new Tbl_Order();

            using (var unitOfWork = new UnitOfWork())
            {
                tbl_Order = _orderService.Recharge(orderRechargeDto);
                unitOfWork.Commit();
            }
            var jsApiParameters = _wxPayService.PayOrderForTicket(tbl_Order);

            return(new OrderCreateViewDto
            {
                OrderNo = tbl_Order.OrderNo,
                JsApiParameters = jsApiParameters
            });
        }
Ejemplo n.º 20
0
 /// <summary>
 /// 更改订单支付状态和可退款时间和可修改时间
 /// </summary>
 /// <param name="tbl_Order"></param>
 /// <param name="tbl_OrderDetails"></param>
 public void UpdateOrder(Tbl_Order tbl_Order, Tbl_OrderDetail tbl_OrderDetail)
 {
     //更改订单状态
     tbl_Order.PayTime     = DateTime.Now;
     tbl_Order.OrderStatus = (int)OrderDataStatus.Success;
     //更改可修改时间
     tbl_Order.CanModify = tbl_OrderDetail.CanModify;
     if (tbl_Order.CanModify)
     {
         tbl_Order.CanModifyTime = tbl_OrderDetail.CanModifyTime;
     }
     //更改可退款时间
     tbl_Order.CanRefund = tbl_OrderDetail.CanRefund;
     if (tbl_Order.CanRefund)
     {
         tbl_Order.CanRefundTime = tbl_OrderDetail.CanRefundTime;
     }
 }
Ejemplo n.º 21
0
        /// <summary>
        /// 创建订单余额支付
        /// </summary>
        /// <param name="orderCreateDto"></param>
        /// <returns></returns>
        private Tbl_Order AddOrderForBalancePay(OrderCreateDto orderCreateDto, Tbl_Ticket tbl_Ticket)
        {
            if (tbl_Ticket == null)
            {
                throw new SimplePromptException("门票未找到");
            }
            //创建订单号
            string orderNo = OrderHelper.GenerateOrderNo();
            //订单
            Tbl_Order tbl_Order = new Tbl_Order
            {
                OrderNo           = orderNo,
                OpenId            = orderCreateDto.OpenId,
                TicketSource      = 1,
                PayType           = (int)PayType.Balance,
                PayAccount        = "",
                PayTradeNo        = "",
                SellerId          = 0,
                Price             = 0,
                Linkman           = orderCreateDto.Linkman,
                Mobile            = orderCreateDto.Mobile,
                OrderStatus       = (int)OrderStatusType.Success,
                PayTime           = DateTime.Now,
                CreateTime        = DateTime.Now,
                ValidityDateStart = orderCreateDto.TravelTime,
                ValidityDateEnd   = orderCreateDto.TravelTime,
                BookCount         = orderCreateDto.BookCount,
                UsedQuantity      = 0,
                Remark            = "",
                IDCard            = "",
                CreateUserId      = 0,
                OrderType         = (int)OrderType.Ticket,
            };
            var ticketNames = tbl_Ticket.TicketName;

            if (ticketNames.Length > 50)
            {
                ticketNames = ticketNames.Substring(0, 50);
            }
            tbl_Order.TicketName  = ticketNames;
            tbl_Order.TotalAmount = tbl_Ticket.SalePrice * tbl_Order.BookCount;
            _orderRepository.Add(tbl_Order);
            return(tbl_Order);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 添加日志
        /// </summary>
        /// <param name="order"></param>
        public void Add(Tbl_Order order)
        {
            var model = new Tbl_SaleLog
            {
                EnterpriseId   = order.EnterpriseId,
                ScenicId       = order.ScenicId,
                LogContent     = ActionStatus.SaleTicket.GetDescriptionByName(),
                OrderNo        = order.OrderNo,
                TicketName     = order.TicketName,
                Quantity       = order.BookCount,
                TotalAmount    = order.TotalAmount,
                ActivationCode = "",
                CreateTime     = DateTime.Now,
                DataStatus     = 0,
                CreateUserId   = 0
            };

            _saleLogRepository.Add(model);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// 添加订单消费通知
        /// </summary>
        /// <param name="tbl_Order"></param>
        /// <param name="tbl_OrderDetail"></param>
        /// <param name="business"></param>
        public void Add(Tbl_Order tbl_Order, Tbl_OrderDetail tbl_OrderDetail, Tbl_OTABusiness business)
        {
            var tbl_NoticeOrderConsumed = new Tbl_NoticeOrderConsumed
            {
                SequenceId        = DateTime.Now.ToString("yyyyMMdd") + Guid.NewGuid().ToString("N"),
                ScenicId          = tbl_Order.ScenicId,
                IdentityKey       = business.IdentityKey,
                OrderNo           = tbl_Order.OrderNo,
                OtaOrderId        = tbl_Order.OTAOrderNo,
                OrderDetailNumber = tbl_OrderDetail.Number,
                OtaOrderDetailId  = tbl_OrderDetail.OtaOrderDetailId,
                Count             = tbl_OrderDetail.Quantity,
                IsTaken           = false,
                RunCount          = 0,
                CreateTime        = DateTime.Now
            };

            _noticeOrderConsumedRepository.Add(tbl_NoticeOrderConsumed);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// 添加订单详情 余额支付
        /// </summary>
        /// <param name="order"></param>
        /// <param name="tbl_Order"></param>
        /// <returns></returns>
        public Tbl_OrderDetail AddForBalancePay(Tbl_Order tbl_Order, Tbl_Ticket tbl_Ticket)
        {
            if (tbl_Ticket == null)
            {
                throw new SimplePromptException("门票未找到");
            }
            Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail
            {
                Number           = Guid.NewGuid(),
                OrderNo          = tbl_Order.OrderNo,
                OrderType        = tbl_Order.OrderType,
                SellerId         = 0,
                SellerType       = 1,
                OtaOrderDetailId = 0,
                OrderSource      = 1,
                TicketSource     = 1,
                TicketCategory   = 1,
                UsedQuantity     = 0,
                TicketId         = tbl_Ticket.TicketId,
                TicketName       = tbl_Ticket.TicketName,
                Price            = tbl_Ticket.SalePrice,
                Quantity         = tbl_Order.BookCount,
                BarCode          = "",
                Stub             = "",
                CertificateNO    = "",
                OrderStatus      = (int)OrderDetailStatusType.Success,

                CreateTime        = DateTime.Now,
                ValidityDateStart = tbl_Order.ValidityDateStart,
                ValidityDateEnd   = tbl_Order.ValidityDateEnd,
                QRcodeUrl         = "",
                QRcode            = "",
                Mobile            = tbl_Order.Mobile,
                IDCard            = "",
                Linkman           = tbl_Order.Linkman,
                BuyUserId         = tbl_Order.BuyUserId,
                CanModify         = true,
                CanRefund         = true,
            };

            _orderDetailRepository.Add(tbl_OrderDetail);
            return(tbl_OrderDetail);
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 创建订单--小径平台
        /// </summary>
        /// <param name="orderInfo"></param>
        /// <returns></returns>
        public Tbl_Order AddOrder(XJ_Order request)
        {
            //创建订单号
            string orderNo = OrderHelper.GenerateOrderNo();
            var    order   = Get(orderNo);

            if (order != null)
            {
                orderNo = OrderHelper.GenerateOrderNo();
            }
            int idType = GetIdCardType(request.ContactPerson.CardType);

            //订单
            Tbl_Order tbl_Order = new Tbl_Order
            {
                OrderNo           = orderNo,
                OTABusinessId     = request.OTABusinessId,
                OTAOrderNo        = request.OrderOtaId,
                TicketSource      = (int)TicketSourceStatus.Ota,
                PayType           = (int)PayStatus.NoPayStatus,
                PayAccount        = "",
                PayTradeNo        = "",
                SellerId          = 0,
                Price             = 0,
                Linkman           = request.ContactPerson.Name,
                Mobile            = request.ContactPerson.Mobile,
                OrderStatus       = (int)OrderDataStatus.NoPay,
                CreateTime        = DateTime.Now,
                ValidityDateStart = request.VisitDate,
                ValidityDateEnd   = request.VisitDate,
                UsedQuantity      = 0,
                Remark            = "",
                IDType            = idType,
                IDCard            = request.ContactPerson.CardNo,
                CreateUserId      = 0
            };

            return(tbl_Order);
        }
Ejemplo n.º 26
0
        /// <summary>
        /// 充值
        /// </summary>
        /// <param name="tbl_Order"></param>
        /// <returns></returns>
        public Tbl_OrderDetail AddForRecharge(Tbl_Order tbl_Order)
        {
            Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail
            {
                Number            = Guid.NewGuid(),
                OrderNo           = tbl_Order.OrderNo,
                OrderType         = tbl_Order.OrderType,
                SellerId          = 0,
                SellerType        = 1,
                OtaOrderDetailId  = 0,
                OrderSource       = 1,
                TicketSource      = 1,
                TicketCategory    = 1,
                UsedQuantity      = 0,
                TicketId          = 0,
                TicketName        = tbl_Order.TicketName,
                Price             = tbl_Order.TotalAmount,
                Quantity          = tbl_Order.BookCount,
                BarCode           = "",
                Stub              = "",
                CertificateNO     = "",
                OrderStatus       = (int)OrderDetailStatusType.NoPay,
                CreateTime        = DateTime.Now,
                ValidityDateStart = tbl_Order.ValidityDateStart,
                ValidityDateEnd   = tbl_Order.ValidityDateEnd,
                QRcodeUrl         = "",
                QRcode            = "",
                Mobile            = tbl_Order.Mobile,
                IDCard            = "",
                Linkman           = tbl_Order.Linkman,
                BuyUserId         = tbl_Order.BuyUserId,
                CanModify         = true,
                CanRefund         = true,
            };

            _orderDetailRepository.Add(tbl_OrderDetail);
            return(tbl_OrderDetail);
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 添加订单消费通知
        /// </summary>
        /// <param name="tbl_Order"></param>
        /// <param name="tbl_OrderDetail"></param>
        /// <param name="business"></param>
        public void Add(Tbl_Order tbl_Order, List <Tbl_OrderDetail> tbl_OrderDetails, Tbl_OTABusiness business)
        {
            var list = new List <Tbl_NoticeOrderConsumed>();

            foreach (var row in tbl_OrderDetails)
            {
                list.Add(new Tbl_NoticeOrderConsumed
                {
                    SequenceId        = DateTime.Now.ToString("yyyyMMdd") + Guid.NewGuid().ToString("N"),
                    ScenicId          = tbl_Order.ScenicId,
                    IdentityKey       = business.IdentityKey,
                    OrderNo           = tbl_Order.OrderNo,
                    OtaOrderId        = tbl_Order.OTAOrderNo,
                    OtaOrderDetailId  = row.OtaOrderDetailId,
                    OrderDetailNumber = row.Number,
                    Count             = row.Quantity,
                    IsTaken           = false,
                    RunCount          = 0,
                    CreateTime        = DateTime.Now
                });
            }
            _noticeOrderConsumedRepository.Add(list);
        }
Ejemplo n.º 28
0
        /// <summary>
        /// 更改订单支付状态和可退款时间和可修改时间
        /// </summary>
        /// <param name="tbl_Order"></param>
        /// <param name="tbl_OrderDetails"></param>
        public void UpdateOrder(Tbl_Order tbl_Order, List <Tbl_OrderDetail> tbl_OrderDetails)
        {
            //更改订单状态
            tbl_Order.PayTime     = DateTime.Now;
            tbl_Order.OrderStatus = (int)OrderDataStatus.Success;
            //更改可修改时间
            var isCanModify = tbl_OrderDetails.Count(a => a.CanModify == false);

            tbl_Order.CanModify = isCanModify > 0 ? false : true;
            if (tbl_Order.CanModify)
            {
                var tbl_OrderDetail = tbl_OrderDetails.OrderBy(a => a.CanModifyTime).FirstOrDefault();
                tbl_Order.CanModifyTime = tbl_OrderDetail.CanModifyTime;
            }
            //更改可退款时间
            var isCanRefund = tbl_OrderDetails.Count(a => a.CanRefund == false);

            tbl_Order.CanRefund = isCanRefund > 0 ? false : true;
            if (tbl_Order.CanRefund)
            {
                var tbl_OrderDetail = tbl_OrderDetails.OrderBy(a => a.CanRefundTime).FirstOrDefault();
                tbl_Order.CanRefundTime = tbl_OrderDetail.CanRefundTime;
            }
        }
Ejemplo n.º 29
0
        /// <summary>
        /// 创建订单详情 - 二维码票
        /// </summary>
        /// <param name="order"></param>
        /// <param name="tbl_Order"></param>
        /// <returns></returns>
        private List <Tbl_OrderDetail> addQrCodeTicketOrderDetail(OrderInfo order, Tbl_Order tbl_Order)
        {
            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.TicketList)
            {
                var ticket     = _ticketService.GetTicket(order.VisitDate.ToDataTime(), te.ProductId);
                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,
                    WindowId          = 0,
                    SellerId          = 0,
                    SellerType        = 1,
                    OtaOrderDetailId  = 0,
                    OrderSource       = (int)OrderSource.OTA,
                    TicketSource      = (int)TicketSourceStatus.Ota,
                    TicketCategory    = (int)TicketCategoryStatus.QrCodeElectronTicket,
                    UsedQuantity      = 0,
                    TicketId          = te.ProductId,
                    TicketName        = ticket.TicketName,
                    Price             = ticket.SalePrice,
                    SettlementPrice   = ticket.SettlementPrice,
                    Quantity          = te.Quantity,
                    BarCode           = "",
                    Stub              = "",
                    CertificateNO     = "",
                    OrderStatus       = (int)OrderDetailsDataStatus.NoPay,
                    CreateTime        = DateTime.Now,
                    ValidityDateStart = order.VisitDate.ToDataTime(),
                    ValidityDateEnd   = order.VisitDate.ToDataTime(),
                    PrintCount        = 0,
                    QRcodeUrl         = "",
                    QRcode            = "",
                    Mobile            = order.ContactPerson.Mobile,
                    IDCard            = tbl_Order.IDCard,
                    Linkman           = order.ContactPerson.Name,
                    CanModify         = ticketRule.CanModify,
                    CanRefund         = ticketRule.CanRefund
                };
                UpdateOrderDetailRefundTimeAndModifyTime(order.VisitDate.ToDataTime(), ticket, tbl_OrderDetail, ticketRule);
                orderDetails.Add(tbl_OrderDetail);
                //有效的门票信息
                EnterpriseID = ticket.EnterpriseId;
                ScenicID     = ticket.ScenicId;
                ticketNames += ticket.TicketName + ",";
                TotalMoney  += (ticket.SalePrice * te.Quantity);
                TotalCount  += te.Quantity;
            }
            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);
        }
Ejemplo n.º 30
0
        /// <summary>
        /// 创建订单详情 - 二维码票
        /// </summary>
        /// <param name="order"></param>
        /// <param name="tbl_Order"></param>
        /// <returns></returns>
        public List <Tbl_OrderDetail> AddOrderDetailForQrCodeNoPay(OrderInfoModel 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          = 0,
                    SellerType        = 1,
                    OtaOrderDetailId  = 0,
                    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            = order.Mobile,
                    IDCard            = "",
                    Linkman           = order.Linkman,
                    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);
        }