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(); }
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创建保险记录 }
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(); }