Ejemplo n.º 1
0
        public void BuyInsuranceByCashOrCredit(string OrderId, List <PassengerDto> passengerDtos, int payType, string pwd)
        {
            //构建保险订单数据结构
            var insuranceOrderBuilder = AggregationFactory.CreateBuiler <InsuranceOrderBuilder>();
            var insuranceOrder        = insuranceOrderBuilder.CreateInsuranceOrder();

            insuranceOrder.OrderId          = OrderId;
            insuranceOrder.InsuranceRecords = new List <InsuranceRecord>();

            var order = this._iOrderRepository.FindAll(p => p.OrderId == OrderId).FirstOrDefault();

            //填写Passenger信息
            foreach (var passer in order.Passengers)
            {
                foreach (var passengerDto in passengerDtos)
                {
                    if (passengerDto.Id == passer.Id)
                    {
                        passer.PassengerType = passengerDto.PassengerType;
                        passer.SexType       = passengerDto.SexType;
                        passer.Birth         = passengerDto.Birth;
                        passer.IdType        = passengerDto.IdType;
                        passer.CardNo        = passengerDto.CardNo;
                    }
                }
            }

            //转换请求数据结构
            InsuranceRecordBuilder insuranceRecordBuilder = new InsuranceRecordBuilder();

            foreach (var passer in passengerDtos)
            {
                foreach (var skyway in passer.SkyWays)
                {
                    if (skyway.InsuranceCount > 0)
                    {
                        InsuranceRecord record = insuranceRecordBuilder.CreateInsuranceRecord();
                        record.Count       = skyway.InsuranceCount;
                        record.SkyWayId    = skyway.SkyWayId;
                        record.PassengerId = passer.Id;
                        insuranceOrder.InsuranceRecords.Add(record);
                    }
                }
            }
            //如果没有需要申请的保险,则终止请求
            if (insuranceOrder.InsuranceRecords.Count == 0)
            {
                return;
            }

            var insuranceDomainService = ObjectFactory.GetInstance <InsuranceDomainService>();

            insuranceDomainService.SaveInsurance(insuranceOrder, AuthManager.GetCurrentUser(), true);

            this.unitOfWork.Commit();
        }
Ejemplo n.º 2
0
        public void BuyInsuranceManually(RequestBuyInsuranceManually request)
        {
            if (request == null)
            {
                throw new CustomException(10004, "请求不可为空。");
            }
            //构建保险订单数据结构
            var insuranceOrderBuilder = AggregationFactory.CreateBuiler <InsuranceOrderBuilder>();
            var insuranceOrder        = insuranceOrderBuilder.CreateInsuranceOrder();

            insuranceOrder.InsuranceRecords = new List <InsuranceRecord>();
            //转换请求数据结构
            InsuranceRecordBuilder insuranceRecordBuilder = new InsuranceRecordBuilder();
            InsuranceRecord        record = insuranceRecordBuilder.CreateInsuranceRecord();

            record.Count        = request.Count;
            record.FlightNumber = request.FlightNumber;
            record.IdType       = request.IdType;
            if (record.IdType == EnumIDType.BirthDate &&
                request.Birth != null)
            {
                record.CardNo = request.Birth.Value.ToString("yyyy-MM-dd");
            }
            else
            {
                record.CardNo = request.CardNo;
            }
            record.InsuranceLimitEndTime   = request.InsuranceLimitEndTime;
            record.InsuranceLimitStartTime = request.InsuranceLimitStartTime;
            record.InsuredName             = request.InsuredName;
            record.Mobile        = request.Mobile;
            record.PNR           = request.PNR;
            record.SexType       = request.SexType;
            record.ToCityName    = request.ToCityName;
            record.InsureType    = EnumInsureMethod.Manually;
            record.PassengerType = request.PassengerType;
            record.Birth         = request.Birth;
            record.StartDateTime = request.StartDateTime;

            insuranceOrder.InsuranceRecords.Add(record);

            //如果没有需要申请的保险,则终止请求
            if (insuranceOrder.InsuranceRecords.Count == 0)
            {
                return;
            }

            var insuranceDomainService = ObjectFactory.GetInstance <InsuranceDomainService>();

            insuranceDomainService.SaveInsurance(insuranceOrder, AuthManager.GetCurrentUser(), true, false);

            this.unitOfWork.Commit();
            //根据request创建保险记录
        }
Ejemplo n.º 3
0
        public void SaveInsurance(RequestInsurance req)
        {
            //request不能为空
            if (req == null)
            {
                throw new CustomException(111113, "传入保单信息为空");
            }

            //构建保险订单数据结构
            var insuranceOrderBuilder = AggregationFactory.CreateBuiler <InsuranceOrderBuilder>();
            var insuranceOrder        = insuranceOrderBuilder.CreateInsuranceOrder();

            insuranceOrder.OrderId          = req.OrderId;
            insuranceOrder.InsuranceRecords = new List <InsuranceRecord>();
            var order = this._iOrderRepository.FindAll(p => p.OrderId == req.OrderId).FirstOrDefault();

            //填写Passenger信息
            foreach (var passer in order.Passengers)
            {
                foreach (var passengerDto in req.UnexpectedPassenger)
                {
                    if (passengerDto.Id == passer.Id)
                    {
                        passer.PassengerType = passengerDto.PassengerType;
                        passer.SexType       = passengerDto.SexType;
                        passer.Birth         = passengerDto.Birth;
                        passer.IdType        = passengerDto.IdType;
                        passer.CardNo        = passengerDto.CardNo;
                        //极速退处理
                        if (passengerDto.IsInsuranceRefund)
                        {
                            passer.IsInsuranceRefund    = passengerDto.IsInsuranceRefund;
                            passer.InsuranceRefunrPrice = passengerDto.InsuranceRefunrPrice;
                        }
                    }
                }
            }

            InsuranceRecordBuilder insuranceRecordBuilder = new InsuranceRecordBuilder();

            if (req.BuyInsuranceAllCount > 0)
            {
                foreach (var passer in req.UnexpectedPassenger)
                {
                    foreach (var skyway in passer.SkyWays)
                    {
                        if (skyway.InsuranceCount > 0)
                        {
                            InsuranceRecord record = insuranceRecordBuilder.CreateInsuranceRecord();
                            record.Count       = skyway.InsuranceCount;
                            record.SkyWayId    = skyway.SkyWayId;
                            record.PassengerId = passer.Id;

                            insuranceOrder.InsuranceRecords.Add(record);
                        }
                    }
                }

                if (insuranceOrder.InsuranceRecords.Count > 0)
                {
                    var insuranceDomainService = ObjectFactory.GetInstance <InsuranceDomainService>();
                    insuranceDomainService.SaveInsurance(insuranceOrder, AuthManager.GetCurrentUser());
                }
            }


            this.unitOfWork.Commit();
        }