public async void PostPrecisePrice_WithInValidInput_ExpectReturn10000()
        {
            PostPrecisePriceRequest request = new PostPrecisePriceRequest()
            {
                Agent            = 103,
                Boli             = 1,
                Bujimianchesun   = 1,
                Bujimiandaoqiang = 1
            };
            var controller = new CarInsuranceController(_carInsuranceService.Object)
            {
                Request = new HttpRequestMessage
                {
                    Properties = { { HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration() } }
                }
            };

            _carInsuranceService.Setup(x => x.InsertUserInfo(request, controller.Request.GetQueryNameValuePairs()))
            .Returns(PostBaoJia);

            controller.ModelState.AddModelError("车牌号", "不能为空");

            HttpResponseMessage message = await controller.PostPrecisePrice(request);

            NUnit.Framework.Assert.AreEqual(-10000, message.Content.ReadAsAsync <GetReInfoViewModel>().Result.BusinessStatus);
        }
コード例 #2
0
        public static bx_userinfo FindByQuoteRequest(PostPrecisePriceRequest request, IUserInfoRepository infoRepository)
        {
            bx_userinfo userinfo       = null;
            bool        isCarLicenseno = false;

            if (!string.IsNullOrWhiteSpace(request.LicenseNo))
            {
                isCarLicenseno = CommonHelper.IsValidLicenseno(request.LicenseNo);
            }

            if (isCarLicenseno)
            {
                userinfo = infoRepository.FindByOpenIdAndLicense(request.CustKey, request.LicenseNo,
                                                                 request.Agent.ToString(), request.RenewalCarType);
            }
            else
            {
                //modify20181124,由根据车架+发动机号查询改为只根据车架查询。
                //目前已支持单车架号续保,所以这里匹配报价数据只根据车架号查
                userinfo = infoRepository.FindByCarvin(request.CarVin, request.CustKey,
                                                       request.Agent.ToString(), request.RenewalCarType);
            }

            return(userinfo);
        }
コード例 #3
0
        public async Task <HttpResponseMessage> PostPrecisePrice([FromUri] PostPrecisePriceRequest request)
        {
            _logAppInfo.Info(string.Format("请求报价/核保接口请求串:{0}", Request.RequestUri));
            var viewModel = new BaseViewModel();

            if (!ModelState.IsValid)
            {
                viewModel.BusinessStatus = -10000;
                string msg = ModelState.Values.Where(item => item.Errors.Count == 1).Aggregate(string.Empty, (current, item) => current + (item.Errors[0].ErrorMessage + ";   "));
                viewModel.StatusMessage = "输入参数错误," + msg;
                return(viewModel.ResponseToJson());
            }
            viewModel = await _appAchieveService.PostPrecisePrice(request, Request.GetQueryNameValuePairs(), Request.RequestUri);

            //_logAppInfo.Info(string.Format("请求报价/核保接口返回值:{0}", viewModel.ToJson()));
            return(viewModel.ResponseToJson());
        }
コード例 #4
0
        /// <summary>
        /// 请求报价,校验请求参数
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public BaseViewModel CheckRequest(PostPrecisePriceRequest request)
        {
            BaseViewModel viewModel = new BaseViewModel();

            //基础信息、车辆信息等校验
            viewModel = _checkReqBaseInfo.CheckBaseInfo(request);
            if (viewModel.BusinessStatus == -10000)
            {
                return(viewModel);
            }
            //险种相关校验
            viewModel = _checkReqInsurance.CheckInsurance(request);
            if (viewModel.BusinessStatus == -10000)
            {
                return(viewModel);
            }

            return(viewModel);
        }
コード例 #5
0
        public async Task <BaseViewModel> PostPrecisePrice(PostPrecisePriceRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri)
        {
            //返回对象
            var viewModel = new BaseViewModel();

            #region 参数校验
            //校验请求串
            var baseRequest = new AppBaseRequest()
            {
                Agent      = request.Agent,
                SecCode    = request.SecCode,
                CustKey    = request.CustKey,
                BhToken    = request.BhToken,
                ChildAgent = request.ChildAgent
            };
            //校验返回值
            var baseResponse = _appVerifyService.Verify(baseRequest, pairs);
            if (baseResponse.ErrCode != 1)
            {
                viewModel.BusinessStatus = baseResponse.ErrCode;
                viewModel.StatusMessage  = baseResponse.ErrMsg;
                return(viewModel);
            }
            #endregion
            #region 业务逻辑
            //拼接请求串
            string strUrl = string.Format("http://{0}:{1}/api/CarInsurance/PostPrecisePrice", uri.Host, uri.Port);
            //3,请求报价/核保
            BaseResponse rep = await SimulateGet(strUrl, pairs);

            if (rep.ErrCode == 1)
            {
                viewModel = rep.ErrMsg.FromJson <BaseViewModel>();
            }
            else
            {
                viewModel.BusinessStatus = rep.ErrCode;
                viewModel.StatusMessage  = rep.ErrMsg;
            }
            #endregion
            return(viewModel);
        }
コード例 #6
0
        public long QuoteAdd(PostPrecisePriceRequest request, string _url, IUserInfoRepository repository, int topAgentId = 0)
        {
            //如果是直接报价,没有传递车牌号,直接用车架号替换
            if (string.IsNullOrWhiteSpace(request.LicenseNo))
            {
                request.LicenseNo = request.CarVin.ToUpper();
            }
            var insertUserinfo = new bx_userinfo
            {
                agent_id       = request.Agent,
                top_agent_id   = topAgentId,
                IsLastYear     = 0,
                LastYearSource = -1,
                Source         = request.IntentionCompany,
                //Mobile = agentModel.Mobile,
                LicenseNo = request.LicenseNo,
                Agent     = request.Agent.ToString(),
                //UserId = account.UserId,
                OpenId   = request.CustKey,
                CityCode = request.CityCode.ToString(),
                //IsPublic = 0,
                QuoteStatus    = -1,
                CreateTime     = DateTime.Now,
                IsSingleSubmit = request.IsSingleSubmit,
                // CarType = request.CarType,
                // IsNewCar = request.IsNewCar,
                // CarUsedType = request.CarUsedType,
                CarVIN       = request.CarVin.ToUpper(),
                MoldName     = request.MoldName,
                RegisterDate = request.RegisterDate,
                EngineNo     = request.EngineNo.ToUpper(),
                RenewalType  = request.RenewalType,
                // SeatCout = request.SeatCount,
                // TonCount = request.TonCount,
                NeedEngineNo     = 0,
                IsDistributed    = 0,
                UpdateTime       = DateTime.Now,
                RenewalStatus    = -1,
                OwnerIdCardType  = -1,
                IsReView         = 0,
                IsTest           = 0,
                RenewalCarType   = request.RenewalCarType,
                IsChangeRelation = 0//修改关系人状态改为0;17/10/23bygpjadd。//提交订单会判断此字段是否为1
            };

            if (!string.IsNullOrWhiteSpace(request.Mobile))
            {
                insertUserinfo.Mobile = request.Mobile;
            }
            //分配逻辑
            //if (request.RenewalType == 2)
            //{
            //    insertUserinfo.IsDistributed = 0; //未分配
            //}
            //else
            //{
            //    if (request.ChildAgent == request.Agent)
            //    {
            //        insertUserinfo.IsDistributed = 0; //未分配
            //    }
            //    else
            //    {
            //        insertUserinfo.IsDistributed = 2; //已 分配
            //    }
            //}
            //此新车报价,如果有就更新 ,没有直接报价
            if (!string.IsNullOrWhiteSpace(request.UpdateLicenseNo))
            {
                insertUserinfo.LicenseNo = request.UpdateLicenseNo;
            }
            if (!string.IsNullOrWhiteSpace(request.Email))
            {
                insertUserinfo.Email = request.Email;
            }
            //#region 费改地区身份证完善
            if (!string.IsNullOrWhiteSpace(request.CarOwnersName))
            {
                //insertUserinfo.UserName = request.CarOwnersName;
                insertUserinfo.LicenseOwner = request.CarOwnersName;
                //insertUserinfo.InsuredName = request.CarOwnersName;
            }
            if (!string.IsNullOrWhiteSpace(request.IdCard))
            {
                insertUserinfo.IdCard = request.IdCard.ToUpper();
                //insertUserinfo.InsuredIdCard = request.IdCard.ToUpper();
                //insertUserinfo.InsuredIdType = 1;//小龙端 需要此属性
            }
            //#endregion
            #region 车主信息
            if (!string.IsNullOrWhiteSpace(request.IdCard))
            {
                insertUserinfo.IdCard = request.IdCard;
                //if (request.IdCard.IsValidIdCard())
                //{
                //    request.OwnerIdCardType = 1;
                //}
            }
            if (request.OwnerIdCardType > 0)
            {
                insertUserinfo.OwnerIdCardType = request.OwnerIdCardType;
            }
            insertUserinfo.OwnerSex      = request.OwnerSex;
            insertUserinfo.OwnerBirthday = request.OwnerBirthday;
            insertUserinfo.OwnerIssuer   = request.OwnerAuthority;
            insertUserinfo.OwnerNation   = request.OwnerNation;
            #endregion
            #region 投保人为空 按照被保人信息保存
            var isPosterValid = false ||
                                !string.IsNullOrWhiteSpace(request.HolderName) &&
                                !string.IsNullOrWhiteSpace(request.HolderIdCard) && request.HolderIdType > 0;
            var isInsuredValid = false || !string.IsNullOrWhiteSpace(request.InsuredName) &&
                                 !string.IsNullOrWhiteSpace(request.InsuredIdCard) && request.InsuredIdType > 0;
            if (!isPosterValid && isInsuredValid)
            {
                request.HolderName   = request.InsuredName;
                request.HolderIdCard = request.InsuredIdCard;
                request.HolderIdType = request.InsuredIdType;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredMobile) && string.IsNullOrWhiteSpace(request.HolderMobile))
            {
                request.HolderMobile = request.InsuredMobile;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredEmail) && string.IsNullOrWhiteSpace(request.HolderEmail))
            {
                request.HolderEmail = request.InsuredEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredAddress) &&
                string.IsNullOrWhiteSpace(request.HolderAddress))
            {
                request.HolderAddress = request.InsuredAddress;
            }
            #endregion
            #region 被保险人信息
            if (!string.IsNullOrWhiteSpace(request.InsuredEmail))
            {
                insertUserinfo.InsuredEmail = request.InsuredEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredName))
            {
                insertUserinfo.InsuredName = request.InsuredName.Trim();
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredIdCard))
            {
                insertUserinfo.InsuredIdCard = request.InsuredIdCard.ToUpper();
                //if (request.InsuredIdCard.IsValidIdCard())
                //{
                //    request.InsuredIdType = 1;
                //}
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredMobile))
            {
                insertUserinfo.InsuredMobile = request.InsuredMobile.Trim();
            }
            if (request.InsuredIdType != 0)
            {
                insertUserinfo.InsuredIdType = request.InsuredIdType;
            }
            insertUserinfo.InsuredAddress        = request.InsuredAddress;
            insertUserinfo.InsuredCertiStartdate = request.InsuredCertiStartdate;
            insertUserinfo.InsuredCertiEnddate   = request.InsuredCertiEnddate;
            insertUserinfo.InsuredSex            = request.InsuredSex;
            insertUserinfo.InsuredBirthday       = request.InsuredBirthday;
            insertUserinfo.InsuredIssuer         = request.InsuredAuthority;
            insertUserinfo.InsuredNation         = request.InsuredNation;

            #endregion
            #region 投保人信息
            if (!string.IsNullOrWhiteSpace(request.HolderEmail))
            {
                insertUserinfo.HolderEmail = request.HolderEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.HolderName))
            {
                insertUserinfo.HolderName = request.HolderName.Trim();
            }
            if (!string.IsNullOrWhiteSpace(request.HolderIdCard))
            {
                insertUserinfo.HolderIdCard = request.HolderIdCard.ToUpper();
                //if (request.HolderIdCard.IsValidIdCard())
                //{
                //    request.HolderIdType = 1;
                //}
            }
            if (!string.IsNullOrWhiteSpace(request.HolderMobile))
            {
                insertUserinfo.HolderMobile = request.HolderMobile.Trim();
            }
            if (request.HolderIdType != 0)
            {
                insertUserinfo.HolderIdType = request.HolderIdType;
            }
            insertUserinfo.HolderAddress        = request.HolderAddress;
            insertUserinfo.HolderCertiStartdate = request.HolderCertiStartdate;
            insertUserinfo.HolderCertiEnddate   = request.HolderCertiEnddate;
            insertUserinfo.HolderSex            = request.HolderSex;
            insertUserinfo.HolderBirthday       = request.HolderBirthday;
            insertUserinfo.HolderIssuer         = request.HolderAuthority;
            insertUserinfo.HolderNation         = request.HolderNation;

            #endregion

            //此处品牌型号改在外层获取
            //if (insertUserinfo.CarVIN.Length > 5)
            //{
            //    var frontCarVin = insertUserinfo.CarVIN.Substring(0, 5);
            //    if (!insertUserinfo.CarVIN.StartsWith("L") && insertUserinfo.MoldName.ToUpper().IndexOf(frontCarVin, System.StringComparison.Ordinal) >= 0)
            //    {
            //        using (var client = new HttpClient())
            //        {
            //            client.BaseAddress = new Uri(_url);
            //            var getUrl = string.Format("api/taipingyang/gettaipycarinfoby?carvin={0}", insertUserinfo.CarVIN);
            //            HttpResponseMessage responseVin = client.GetAsync(getUrl).Result;
            //            var resultVin = responseVin.Content.ReadAsStringAsync().Result;
            //            var carinfo = resultVin.FromJson<WaGetTaiPyCarInfoResponse>();
            //            if (carinfo != null && carinfo.CarInfo != null)
            //            {
            //                insertUserinfo.MoldName = carinfo.CarInfo.moldName;
            //            }
            //        }
            //    }
            //}

            var id = repository.Add(insertUserinfo);
            return(id);
        }
コード例 #7
0
        public long QuoteUpdate(PostPrecisePriceRequest request, bx_userinfo userinfo, string _url, IUserInfoRepository repository)
        {
            userinfo.IsSingleSubmit = request.IsSingleSubmit;//是否对单个公司进行核保  1:是 0: 否
            userinfo.Source         = request.IntentionCompany;
            // userinfo.CarType = request.CarType;
            // userinfo.IsNewCar = request.IsNewCar;
            // userinfo.CarUsedType = request.CarUsedType;
            userinfo.CityCode = request.CityCode.ToString();
            if (!string.IsNullOrWhiteSpace(request.CarVin))
            {
                userinfo.CarVIN = request.CarVin.ToUpper();
            }
            if (!string.IsNullOrWhiteSpace(request.MoldName))
            {
                userinfo.MoldName = request.MoldName;
            }
            if (!string.IsNullOrWhiteSpace(request.RegisterDate))
            {
                userinfo.RegisterDate = request.RegisterDate;
            }
            if (!string.IsNullOrWhiteSpace(request.EngineNo))
            {
                userinfo.EngineNo = request.EngineNo.ToUpper();
            }
            userinfo.UpdateTime     = DateTime.Now;
            userinfo.NeedEngineNo   = 0;
            userinfo.RenewalCarType = request.RenewalCarType;
            if (!string.IsNullOrWhiteSpace(request.Mobile))
            {
                userinfo.Mobile = request.Mobile;
            }
            //if (isNeedUpdateLicensen)
            //{
            //    userinfo.LicenseNo = request.UpdateLicenseNo;
            //}
            ////如果没有车牌号,则默认按照车架号走
            //if (request.IsNewCar == 1)
            //{
            //    if (string.IsNullOrWhiteSpace(request.LicenseNo))
            //    {
            //        userinfo.LicenseNo = request.CarVin.ToUpper();
            //    }
            //}
            //此新车报价,如果有就更新 ,没有直接报价
            if (!string.IsNullOrWhiteSpace(request.UpdateLicenseNo))
            {
                userinfo.LicenseNo = request.UpdateLicenseNo;
            }
            if (!string.IsNullOrWhiteSpace(request.Email))
            {
                userinfo.Email = request.Email;
            }
            //  userinfo.SeatCout = request.SeatCount;
            //  userinfo.TonCount = request.TonCount;
            //#region 费改地区身份证完善
            if (!string.IsNullOrWhiteSpace(request.CarOwnersName))
            {
                //userinfo.UserName = request.CarOwnersName;
                userinfo.LicenseOwner = request.CarOwnersName;
                //userinfo.InsuredName = request.CarOwnersName;
            }
            if (!string.IsNullOrWhiteSpace(request.IdCard))
            {
                userinfo.IdCard = request.IdCard.ToUpper();
                //userinfo.InsuredIdCard = request.IdCard.ToUpper();
                //userinfo.InsuredIdType = 1;
            }
            //#endregion
            #region 车主信息
            if (!string.IsNullOrWhiteSpace(request.IdCard))
            {
                userinfo.IdCard = request.IdCard;
                //if (request.IdCard.IsValidIdCard())
                //{
                //    request.OwnerIdCardType = 1;
                //}
            }
            if (request.OwnerIdCardType > 0)
            {
                userinfo.OwnerIdCardType = request.OwnerIdCardType;
            }
            userinfo.OwnerSex      = request.OwnerSex;
            userinfo.OwnerBirthday = request.OwnerBirthday;
            userinfo.OwnerIssuer   = request.OwnerAuthority;
            userinfo.OwnerNation   = request.OwnerNation;
            #endregion
            #region 投保人为空 按照被保人信息保存
            var isPosterValid = false ||
                                !string.IsNullOrWhiteSpace(request.HolderName) &&
                                !string.IsNullOrWhiteSpace(request.HolderIdCard) && request.HolderIdType > 0;
            var isInsuredValid = false || !string.IsNullOrWhiteSpace(request.InsuredName) &&
                                 !string.IsNullOrWhiteSpace(request.InsuredIdCard) && request.InsuredIdType > 0;
            if (!isPosterValid && isInsuredValid)
            {
                request.HolderName   = request.InsuredName;
                request.HolderIdCard = request.InsuredIdCard;
                request.HolderIdType = request.InsuredIdType;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredMobile) && string.IsNullOrWhiteSpace(request.HolderMobile))
            {
                request.HolderMobile = request.InsuredMobile;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredEmail) && string.IsNullOrWhiteSpace(request.HolderEmail))
            {
                request.HolderEmail = request.InsuredEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredAddress) &&
                string.IsNullOrWhiteSpace(request.HolderAddress))
            {
                request.HolderAddress = request.InsuredAddress;
            }
            #endregion
            #region 被保险人信息
            if (!string.IsNullOrWhiteSpace(request.InsuredName))
            {
                userinfo.InsuredName = request.InsuredName.Trim();
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredIdCard))
            {
                userinfo.InsuredIdCard = request.InsuredIdCard.ToUpper();
                //if (request.InsuredIdCard.IsValidIdCard())
                //{
                //    request.InsuredIdType = 1;
                //}
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredEmail))
            {
                userinfo.InsuredEmail = request.InsuredEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredMobile))
            {
                userinfo.InsuredMobile = request.InsuredMobile.Trim();
            }
            if (request.InsuredIdType != 0)
            {
                userinfo.InsuredIdType = request.InsuredIdType;
            }
            userinfo.InsuredAddress        = request.InsuredAddress;
            userinfo.InsuredCertiStartdate = request.InsuredCertiStartdate;
            userinfo.InsuredCertiEnddate   = request.InsuredCertiEnddate;
            userinfo.InsuredSex            = request.InsuredSex;
            userinfo.InsuredBirthday       = request.InsuredBirthday;
            userinfo.InsuredIssuer         = request.InsuredAuthority;
            userinfo.InsuredNation         = request.InsuredNation;

            #endregion
            #region 投保人信息
            if (!string.IsNullOrWhiteSpace(request.HolderEmail))
            {
                userinfo.HolderEmail = request.HolderEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.HolderName))
            {
                userinfo.HolderName = request.HolderName.Trim();
            }
            if (!string.IsNullOrWhiteSpace(request.HolderIdCard))
            {
                userinfo.HolderIdCard = request.HolderIdCard.ToUpper();
                //if (request.HolderIdCard.IsValidIdCard())
                //{
                //    request.HolderIdType = 1;
                //}
            }
            if (!string.IsNullOrWhiteSpace(request.HolderMobile))
            {
                userinfo.HolderMobile = request.HolderMobile.Trim();
            }
            if (request.HolderIdType != 0)
            {
                userinfo.HolderIdType = request.HolderIdType;
            }
            userinfo.HolderAddress        = request.HolderAddress;
            userinfo.HolderCertiStartdate = request.HolderCertiStartdate;
            userinfo.HolderCertiEnddate   = request.HolderCertiEnddate;
            userinfo.HolderSex            = request.HolderSex;
            userinfo.HolderBirthday       = request.HolderBirthday;
            userinfo.HolderIssuer         = request.HolderAuthority;
            userinfo.HolderNation         = request.HolderNation;

            #endregion

            #region 老的获取品牌型号方法
            //此处方法获取品牌型号放在外层获取
            //if (userinfo.CarVIN.Length > 5)
            //{
            //    var frontCarVin = userinfo.CarVIN.Substring(0, 5);
            //    if (!userinfo.CarVIN.StartsWith("L") && userinfo.MoldName.ToUpper().IndexOf(frontCarVin, System.StringComparison.Ordinal) >= 0)
            //    {
            //        using (HttpClient client = new HttpClient())
            //        {
            //            client.BaseAddress = new Uri(_url);
            //            var getUrl = string.Format("api/taipingyang/gettaipycarinfoby?carvin={0}", userinfo.CarVIN);
            //            HttpResponseMessage responseVin = client.GetAsync(getUrl).Result;
            //            var resultVin = responseVin.Content.ReadAsStringAsync().Result;
            //            var carinfo = resultVin.FromJson<WaGetTaiPyCarInfoResponse>();
            //            if (carinfo != null && carinfo.CarInfo != null)
            //            {
            //                userinfo.MoldName = carinfo.CarInfo.moldName;
            //            }
            //        }
            //    }
            //}
            #endregion
            userinfo.IsChangeRelation = 0;//修改关系人状态改为0;17/10/23bygpjadd。//提交订单会判断此字段是否为1
            repository.Update(userinfo);
            return(userinfo.Id);
        }
コード例 #8
0
        public BaseViewModel CheckBaseInfo(PostPrecisePriceRequest request)
        {
            BaseViewModel viewModel = new BaseViewModel();
            string        strMsg    = string.Empty;//错误消息返回

            #region 车牌号校验
            List <int> _renewalTypeLicenseNo = new List <int>()
            {
                4, 6, 7, 8
            };                                                               //crm、app、微信
            if (!_renewalTypeLicenseNo.Contains(request.RenewalType) && !request.LicenseNo.Equals(request.CarVin))
            {
                //不是crm、app、微信,并且车牌!=车架,需要走车牌的校验。
                //modify20181124,此处考虑到车架号发动机号续保时,请求报价的车牌需要传车架号,故将此限制去掉。
                if (request.IsNewCar != 1 && !(request.LicenseNo.IsValidLicenseno() ||
                                               (!string.IsNullOrWhiteSpace(request.UpdateLicenseNo) && !string.IsNullOrWhiteSpace(request.LicenseNo) && request.UpdateLicenseNo.IsValidLicenseno())))
                {
                    viewModel.StatusMessage = "输入参数错误,车牌号格式不正确";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            if (!string.IsNullOrWhiteSpace(request.CarVin))
            {
                if (request.CarVin.Length < 2 || request.CarVin.Length > 17)
                {
                    viewModel.StatusMessage = "输入参数错误,车架号格式不正确";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            #region 初登日期校验
            if (!string.IsNullOrWhiteSpace(request.RegisterDate))
            {
                if (!request.RegisterDate.IsValidDate())
                {
                    viewModel.StatusMessage = "输入参数错误,请检查初登日期";
                    return(FailedViewModel(viewModel, -10000));
                }
                DateTime dtRegisterDate = DateTime.Parse(request.RegisterDate);
                if (dtRegisterDate > DateTime.Now || dtRegisterDate < DateTime.Parse("1900-01-01"))
                {
                    viewModel.StatusMessage = "输入参数错误,请检查初登日期";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            #region 精友码、车型报价类型判断
            if (request.AutoMoldCodeSource > 4 || request.AutoMoldCodeSource < -1)
            {
                viewModel.StatusMessage = "输入参数错误,AutoModelCodeSource请参考" + "1用户选择续保续保车型报价,2用户选择自定义车型报价,3用户选择最低配置车型报价!";
                return(FailedViewModel(viewModel, -10000));
            }
            else
            {
                if (request.AutoMoldCodeSource > 0 && string.IsNullOrWhiteSpace(request.AutoMoldCode) && request.QuoteGroup != 2)
                {
                    viewModel.StatusMessage = "输入参数错误,您选择了车型报价类型,请完善精友码才可以继续报价(调用接口6)";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            #region Email判断
            if (!string.IsNullOrWhiteSpace(request.Email))
            {
                if (request.Email.Length > 50)
                {
                    viewModel.StatusMessage = "输入参数错误," + "Email长度过长!";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            #region 非平安报价带星判断:非平安的报价,关系人信息/车架号/发动机号不允许带星
            if (request.QuoteGroup != 2)
            {
                if (!string.IsNullOrWhiteSpace(request.CarOwnersName) && request.CarOwnersName.Contains("*") ||
                    !string.IsNullOrWhiteSpace(request.HolderName) && request.HolderName.Contains("*") ||
                    !string.IsNullOrWhiteSpace(request.InsuredName) && request.InsuredName.Contains("*"))
                {
                    viewModel.StatusMessage = "关系人信息加星只能投保平安,请输入完整的关系人信息或取消其他家的报价";
                    return(FailedViewModel(viewModel, -10000));
                }
                if (!string.IsNullOrWhiteSpace(request.CarVin) && request.CarVin.Contains("*"))
                {
                    viewModel.StatusMessage = "车辆信息加星只能投保平安,请输入完整的车辆信息或取消其他家的报价";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            #region 被保人/车主/投保人证件信息判断
            //车主
            strMsg = CheckRelation(request.QuoteGroup, "车主", request.CarOwnersName, request.OwnerIdCardType, request.IdCard);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            //被保人
            strMsg = CheckRelation(request.QuoteGroup, "被保险人", request.InsuredName, request.InsuredIdType, request.InsuredIdCard);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            //投保人
            strMsg = CheckRelation(request.QuoteGroup, "投保人", request.HolderName, request.HolderIdType, request.HolderIdCard);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            #endregion
            #region 车主/被保人证件有效期判断
            strMsg = CheckCertiStartdate("投保人", request.HolderIdType, request.HolderCertiStartdate, request.HolderCertiEnddate);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            strMsg = CheckCertiStartdate("投保人", request.InsuredIdType, request.InsuredCertiStartdate, request.InsuredCertiEnddate);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            #endregion
            #region 新车逻辑
            if (request.IsNewCar == 1)
            {
                if (string.IsNullOrWhiteSpace(request.CarVin) || string.IsNullOrWhiteSpace(request.EngineNo) ||
                    string.IsNullOrWhiteSpace(request.MoldName) || string.IsNullOrWhiteSpace(request.RegisterDate))
                {
                    viewModel.StatusMessage = "输入参数错误," + "新车报价 carvin,engineno,moldname,registerdate不能为空";
                    return(FailedViewModel(viewModel, -10000));
                }
                DateTime regdate;
                DateTime.TryParse(request.RegisterDate, out regdate);
                if (regdate > DateTime.Now.Date || regdate < DateTime.Now.AddDays(-90))
                {
                    viewModel.StatusMessage = "输入参数错误," + "新车报价初登日期只能是之前90天内(包含当日)";
                    return(FailedViewModel(viewModel, -10000));
                }
                //if (string.IsNullOrWhiteSpace(request.BizTimeStamp) && string.IsNullOrWhiteSpace(request.BizStartDate))
                //{
                //viewModel.StatusMessage = "输入参数错误," + "商业险起保日期不能是空";
                //return FailedViewModel(viewModel, -10000);
                //}
                DateTime bizdate;
                if (!string.IsNullOrWhiteSpace(request.BizStartDate))
                {
                    DateTime.TryParse(request.BizStartDate, out bizdate);
                    if (bizdate < DateTime.Now.Date && bizdate > DateTime.Now.AddDays(90))
                    {
                        viewModel.StatusMessage = "输入参数错误," + "商业险起保日期只能是90天内";
                        return(FailedViewModel(viewModel, -10000));
                    }
                }
                if (!string.IsNullOrWhiteSpace(request.BizTimeStamp))
                {
                    bizdate = request.BizTimeStamp.UnixTimeToDateTime();
                    if (bizdate < DateTime.Now.Date && bizdate > DateTime.Now.AddDays(90))
                    {
                        viewModel.StatusMessage = "输入参数错误," + "商业险起保日期只能是90天内";
                        return(FailedViewModel(viewModel, -10000));
                    }
                }
            }
            #endregion

            #region 验证传进来的渠道能用20180123
            if (!string.IsNullOrWhiteSpace(request.MultiChannels))
            {
                string newMultiChannels = string.Empty;
                viewModel             = _checkMultiChannels.CheckMultiChannelsUsed(request.MultiChannels, request.Agent, request.CityCode, request.QuoteGroup, out newMultiChannels);
                request.MultiChannels = newMultiChannels;
            }
            #endregion

            #region 车辆使用性质拦截  4,5,8 以及杭州之外的网约车(20)限制不支持报价

            if (request.CarUsedType == 4 || request.CarUsedType == 5 || request.CarUsedType == 8 ||
                (request.CarUsedType == 20 && request.CityCode != 9))
            {
                viewModel.StatusMessage = "输入参数错误,不支持使用性质是营业非营业、出租租赁、城市公交车辆报价";
                return(FailedViewModel(viewModel, -10001));
            }
            #endregion
            #region 跟单费率和销售费率校验
            strMsg = CheckRatio("实际销售费用交强险比率", request.ActualSalesForceRatio);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            strMsg = CheckRatio("实际销售费用商业险比率", request.ActualSalesBizRatio);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            strMsg = CheckRatio("实际跟单费用交强险比率", request.ActualDtaryForceRatio);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            strMsg = CheckRatio("实际跟单费用商业险比率", request.ActualDtaryBizRatio);
            if (!string.IsNullOrEmpty(strMsg))
            {
                viewModel.StatusMessage = strMsg;
                return(FailedViewModel(viewModel, -10000));
            }
            #endregion
            #region 修改座位数的校验
            if (request.SeatUpdated == 1 && request.SeatCount < 1)
            {
                viewModel.StatusMessage = "输入参数错误,如果修改座位数标识为1,请将座位数传大于0的值。";
                return(FailedViewModel(viewModel, -10000));
            }
            #endregion

            return(new BaseViewModel());
        }
コード例 #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public bool BackTempDemoShow(PostPrecisePriceRequest request, out string tempshowKey)
        {
            tempshowKey = string.Empty;
            //1是否吉利代理
            if (!_proxyAgent.Equals(request.Agent.ToString()))
            {
                return(false);
            }
            if (!_proxyLicense.Contains(request.LicenseNo))
            {
                return(false);
            }
            //2是否开启配置;1开启0关闭,控制权限请联系中心
            string isOpen = _getCenterValueService.GetValue("独立KV", "", "TempDemoShow");

            if (isOpen.Equals("0"))
            {
                logError.Info(string.Format("请求{0},{1},{2},中心开关开启", request.CustKey, request.LicenseNo, request.CarVin));
                return(false);
            }
            //3是否存在历史报价
            PostPrecisePriceRequest req = new PostPrecisePriceRequest();

            req = request;
            //...
            req.SecCode = null;
            //...
            req.InsuredMobile         = null;
            req.InsuredAddress        = null;
            req.InsuredEmail          = null;
            req.InsuredCertiStartdate = null;
            req.InsuredCertiEnddate   = null;
            //...
            req.HolderMobile         = null;
            req.HolderAddress        = null;
            req.HolderEmail          = null;
            req.HolderCertiStartdate = null;
            req.HolderCertiEnddate   = null;
            //...
            req.InsuredSex       = 0;
            req.HolderSex        = 0;
            req.OwnerSex         = 0;
            req.InsuredAuthority = null;
            req.HolderAuthority  = null;
            req.OwnerAuthority   = null;
            req.InsuredNation    = null;
            req.HolderNation     = null;
            req.OwnerNation      = null;
            req.InsuredBirthday  = null;
            req.HolderBirthday   = null;
            req.OwnerBirthday    = null;
            //...
            req.BhToken = null;
            //...
            req.Mobile                = null;
            req.Email                 = null;
            req.MultiChannels         = null;
            req.IsOrderChangeRelation = 0;

            tempshowKey = string.Format("{0}_{1}_{2}", request.Agent, request.CustKey.ToUpper(), req.ToJson().GetMd5());//顶级+custkey+seccode
            logError.Info(string.Format("缓存md5前的串:{0}", req.ToJson()));
            string cacheValue = CacheProvider.Get <string>(tempshowKey);

            if (string.IsNullOrWhiteSpace(cacheValue))
            {
                logError.Info(string.Format("请求{0},{1},{2},不存在历史报价", request.CustKey, request.LicenseNo, request.CarVin));
                //如果中间缓存报过价,继续往下走;如果没报过价,直接返回false
                return(false);
            }
            #region 4历史报价是否报价成功&&核保成功
            //4历史报价是否报价成功&&核保成功
            if (req.ChildAgent > 0)
            {
                req.Agent = req.ChildAgent;
            }
            //报价key
            string baojiaCacheKey =
                CommonCacheKeyFactory.CreateKeyWithLicenseAndAgentAndCustKey(request.LicenseNo, req.Agent, request.CustKey + request.RenewalCarType);
            List <int> oldquote = SourceGroupAlgorithm.ParseOldSource(request.QuoteGroup);
            if (!oldquote.Any())
            {
                //如果报价没值,直接返回false。<不过该情况不存在,quotegroup需要大于0>
                return(false);
            }
            foreach (var item in oldquote)
            {
                //取不同的保司,看缓存key是否都存在
                var baojiaKey        = string.Format("{0}-{1}-bj-{2}", baojiaCacheKey, item, "key");
                var cachebaojiavalue = CacheProvider.Get <string>(baojiaKey);
                if (string.IsNullOrWhiteSpace(cachebaojiavalue))
                {
                    cachebaojiavalue = "0";
                }
                if (!cachebaojiavalue.Equals("1"))
                {
                    logError.Info(string.Format("请求{0},{1},{2},报价{3},历史报价{4}失败", request.CustKey, request.LicenseNo, request.CarVin, request.QuoteGroup, item));
                    return(false);
                }
            }
            List <int> oldsubmit = SourceGroupAlgorithm.ParseOldSource(request.SubmitGroup);
            if (!oldsubmit.Any())
            {
                //如果核保没值,直接返回false
                return(false);
            }
            foreach (var item in oldquote)
            {
                //取不同的保司,看缓存key是否都存在
                var baojiaKey       = string.Format("{0}-{1}-hb-{2}", baojiaCacheKey, item, "key");
                var cachehebaovalue = CacheProvider.Get <string>(baojiaKey);
                if (string.IsNullOrWhiteSpace(cachehebaovalue))
                {
                    cachehebaovalue = "0";
                }
                if (!cachehebaovalue.Equals("1"))
                {
                    logError.Info(string.Format("请求{0},{1},{2},核保{3},历史核保{4}失败", request.CustKey, request.LicenseNo, request.CarVin, request.SubmitGroup, item));
                    return(false);
                }
            }
            #endregion
            //5如果成功,则保存seccode
            //6以上均成立返回true
            return(true);
        }
コード例 #10
0
        public string CheckRequestShebei(PostPrecisePriceRequest request)
        {
            var isallempty   = true;
            var registerDate = Convert.ToDateTime(request.RegisterDate);
            var startDte     = DateTime.Now;
            var paChannel    = (request.QuoteGroup & 2) == 2;

            if (!string.IsNullOrWhiteSpace(request.BizStartDate))
            {
                startDte = Convert.ToDateTime(request.BizStartDate);
            }
            if (!string.IsNullOrWhiteSpace(request.BizTimeStamp))
            {
                startDte = request.BizTimeStamp.UnixTimeToDateTime();
            }
            string msg = string.Empty;

            if (!paChannel)
            {
                if (string.IsNullOrWhiteSpace(request.DN1) && string.IsNullOrWhiteSpace(request.PD1) && request.DA1 == 0 &&
                    request.DD1 == 0 && request.DT1 == 0 && request.DQ1 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN1) || string.IsNullOrWhiteSpace(request.PD1) ||
                        request.DA1 == 0 || request.DQ1 == 0)
                    {
                        return("设备1参数都是必填项目");
                    }
                    else
                    {
                        //折旧
                        DateTime dt1 = Convert.ToDateTime(request.PD1);
                        if (dt1 > DateTime.Now || dt1 < registerDate)
                        {
                            return("设备1购买日期不对,应该在初登日期和今天之间的日期范围");
                        }
                        var datePeriod   = _getMonth.GetMonthValue(dt1, startDte);
                        var acturalPrice = request.DA1 / request.DQ1 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD1 / request.DQ1))
                        //{
                        //    return "设备1的DD1金额不对,应该是" + acturalPrice * request.DQ1;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN2) && string.IsNullOrWhiteSpace(request.PD2) && request.DA2 == 0 &&
                    request.DD2 == 0 && request.DT2 == 0 && request.DQ2 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN2) || string.IsNullOrWhiteSpace(request.PD2) ||
                        request.DA2 == 0 || request.DQ2 == 0)
                    {
                        return("设备2参数都是必填项目");
                    }
                    else
                    {
                        //折旧
                        DateTime dt1 = Convert.ToDateTime(request.PD2);
                        if (dt1 > DateTime.Now || dt1 < registerDate)
                        {
                            return("设备2购买日期不对,应该在初登日期和今天之间的日期范围");
                        }
                        var datePeriod   = _getMonth.GetMonthValue(dt1, startDte);
                        var acturalPrice = request.DA2 / request.DQ2 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD2 / request.DQ2))
                        //{
                        //    return "设备2的DD2金额不对,应该是" + acturalPrice * request.DQ2;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN3) && string.IsNullOrWhiteSpace(request.PD3) && request.DA3 == 0 &&
                    request.DD3 == 0 && request.DT3 == 0 && request.DQ3 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN3) || string.IsNullOrWhiteSpace(request.PD3) ||
                        request.DA3 == 0 || request.DQ3 == 0)
                    {
                        return("设备3参数都是必填项目");
                    }
                    else
                    {
                        //折旧
                        DateTime dt1 = Convert.ToDateTime(request.PD3);
                        if (dt1 > DateTime.Now || dt1 < registerDate)
                        {
                            return("设备3购买日期不对,应该在初登日期和今天之间的日期范围");
                        }
                        var datePeriod   = _getMonth.GetMonthValue(dt1, startDte);
                        var acturalPrice = request.DA3 / request.DQ3 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD3 / request.DQ3))
                        //{
                        //    return "设备3的DD3金额不对,应该是" + acturalPrice * request.DQ3;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN4) && string.IsNullOrWhiteSpace(request.PD4) && request.DA4 == 0 &&
                    request.DD4 == 0 && request.DT4 == 0 && request.DQ4 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN4) || string.IsNullOrWhiteSpace(request.PD4) ||
                        request.DA4 == 0 || request.DQ4 == 0)
                    {
                        return("设备4参数都是必填项目");
                    }
                    else
                    {
                        //折旧
                        DateTime dt1 = Convert.ToDateTime(request.PD4);
                        if (dt1 > DateTime.Now || dt1 < registerDate)
                        {
                            return("设备4购买日期不对,应该在初登日期和今天之间的日期范围");
                        }
                        var datePeriod   = _getMonth.GetMonthValue(dt1, startDte);
                        var acturalPrice = request.DA4 / request.DQ4 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD4/request.DQ4))
                        //{
                        //    return "设备4的DD4金额不对,应该是" + acturalPrice*request.DQ4;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN5) && string.IsNullOrWhiteSpace(request.PD5) && request.DA5 == 0 &&
                    request.DD5 == 0 && request.DT5 == 0 && request.DQ5 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN5) || string.IsNullOrWhiteSpace(request.PD5) ||
                        request.DA5 == 0 || request.DQ5 == 0)
                    {
                        return("设备5参数都是必填项目");
                    }
                    else
                    {
                        //折旧
                        DateTime dt1 = Convert.ToDateTime(request.PD5);
                        if (dt1 > DateTime.Now || dt1 < registerDate)
                        {
                            return("设备5购买日期不对,应该在初登日期和今天之间的日期范围");
                        }
                        var datePeriod   = _getMonth.GetMonthValue(dt1, startDte);
                        var acturalPrice = request.DA5 / request.DQ5 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD5/request.DQ5))
                        //{
                        //    return "设备5的DD5金额不对,应该是" + acturalPrice*request.DQ5;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN6) && string.IsNullOrWhiteSpace(request.PD6) && request.DA6 == 0 &&
                    request.DD6 == 0 && request.DT6 == 0 && request.DQ6 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN6) || string.IsNullOrWhiteSpace(request.PD6) ||
                        request.DA6 == 0 || request.DQ6 == 0)
                    {
                        return("设备6参数都是必填项目");
                    }
                    else
                    {
                        //折旧
                        DateTime dt1 = Convert.ToDateTime(request.PD6);
                        if (dt1 > DateTime.Now || dt1 < registerDate)
                        {
                            return("设备6购买日期不对,应该在初登日期和今天之间的日期范围");
                        }
                        var datePeriod   = _getMonth.GetMonthValue(dt1, startDte);
                        var acturalPrice = request.DA6 / request.DQ6 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD6 / request.DQ6))
                        //{
                        //    return "设备6的DD6金额不对,应该是" + acturalPrice * request.DQ6;
                        //}
                    }
                }
            }
            else
            {
                if (string.IsNullOrWhiteSpace(request.DN1) && request.DA1 == 0 && request.DD1 == 0 && request.DT1 == 0 && request.DQ1 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN1) || request.DA1 == 0 || request.DQ1 == 0)
                    {
                        return("设备1的名称,购买金额,数量参数都是必填项目");
                    }
                    else
                    {
                        ////折旧
                        //DateTime dt1 = Convert.ToDateTime(request.PD1);
                        //if (dt1 > DateTime.Now || dt1 < registerDate)
                        //{
                        //    return "设备1购买日期不对,应该在初登日期和今天之间的日期范围";
                        //}
                        //var datePeriod = GetMonth(dt1, startDte);
                        //var acturalPrice = request.DA1 / request.DQ1 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD1 / request.DQ1))
                        //{
                        //    return "设备1的DD1金额不对,应该是" + acturalPrice * request.DQ1;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN2) && request.DA2 == 0 && request.DD2 == 0 && request.DT2 == 0 && request.DQ2 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN2) || request.DA2 == 0 || request.DQ2 == 0)
                    {
                        return("设备2名称,购买金额,数量参数都是必填项目");
                    }
                    else
                    {
                        //折旧
                        //DateTime dt1 = Convert.ToDateTime(request.PD2);
                        //if (dt1 > DateTime.Now || dt1 < registerDate)
                        //{
                        //    return "设备2购买日期不对,应该在初登日期和今天之间的日期范围";
                        //}
                        //var datePeriod = GetMonth(dt1, startDte);
                        //var acturalPrice = request.DA2 / request.DQ2 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD2 / request.DQ2))
                        //{
                        //    return "设备2的DD2金额不对,应该是" + acturalPrice * request.DQ2;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN3) && request.DA3 == 0 && request.DD3 == 0 && request.DT3 == 0 && request.DQ3 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN3) || request.DA3 == 0 || request.DQ3 == 0)
                    {
                        return("设备3名称,购买金额,数量参数都是必填项目");
                    }
                    else
                    {
                        ////折旧
                        //DateTime dt1 = Convert.ToDateTime(request.PD3);
                        //if (dt1 > DateTime.Now || dt1 < registerDate)
                        //{
                        //    return "设备3购买日期不对,应该在初登日期和今天之间的日期范围";
                        //}
                        //var datePeriod = GetMonth(dt1, startDte);
                        //var acturalPrice = request.DA3 / request.DQ3 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD3 / request.DQ3))
                        //{
                        //    return "设备3的DD3金额不对,应该是" + acturalPrice * request.DQ3;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN4) && request.DA4 == 0 && request.DD4 == 0 && request.DT4 == 0 && request.DQ4 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN4) || request.DA4 == 0 || request.DQ4 == 0)
                    {
                        return("设备4名称,购买金额,数量参数都是必填项目");
                    }
                    else
                    {
                        ////折旧
                        //DateTime dt1 = Convert.ToDateTime(request.PD4);
                        //if (dt1 > DateTime.Now || dt1 < registerDate)
                        //{
                        //    return "设备4购买日期不对,应该在初登日期和今天之间的日期范围";
                        //}
                        //var datePeriod = GetMonth(dt1, startDte);
                        //var acturalPrice = request.DA4 / request.DQ4 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD4/request.DQ4))
                        //{
                        //    return "设备4的DD4金额不对,应该是" + acturalPrice*request.DQ4;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN5) && request.DA5 == 0 && request.DD5 == 0 && request.DT5 == 0 && request.DQ5 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN5) || request.DA5 == 0 || request.DQ5 == 0)
                    {
                        return("设备5名称,购买金额,数量参数都是必填项目");
                    }
                    else
                    {
                        ////折旧
                        //DateTime dt1 = Convert.ToDateTime(request.PD5);
                        //if (dt1 > DateTime.Now || dt1 < registerDate)
                        //{
                        //    return "设备5购买日期不对,应该在初登日期和今天之间的日期范围";
                        //}
                        //var datePeriod = GetMonth(dt1, startDte);
                        //var acturalPrice = request.DA5 / request.DQ5 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD5/request.DQ5))
                        //{
                        //    return "设备5的DD5金额不对,应该是" + acturalPrice*request.DQ5;
                        //}
                    }
                }
                if (string.IsNullOrWhiteSpace(request.DN6) && request.DA6 == 0 && request.DD6 == 0 && request.DT6 == 0 && request.DQ6 == 0)
                {
                }
                else
                {
                    isallempty = false;
                    if (string.IsNullOrWhiteSpace(request.DN6) || request.DA6 == 0 || request.DQ6 == 0)
                    {
                        return("设备6名称,购买金额,数量参数都是必填项目");
                    }
                    else
                    {
                        ////折旧
                        //DateTime dt1 = Convert.ToDateTime(request.PD6);
                        //if (dt1 > DateTime.Now || dt1 < registerDate)
                        //{
                        //    return "设备6购买日期不对,应该在初登日期和今天之间的日期范围";
                        //}
                        //var datePeriod = GetMonth(dt1, startDte);
                        //var acturalPrice = request.DA6 / request.DQ6 - datePeriod * 6;
                        //if (acturalPrice < 0 || acturalPrice != (request.DD6 / request.DQ6))
                        //{
                        //    return "设备6的DD6金额不对,应该是" + acturalPrice * request.DQ6;
                        //}
                    }
                }
            }

            if (isallempty)
            {
                return("选择了投保新增设备险,必须要添加一类设备");
            }
            return(string.Empty);
        }
コード例 #11
0
        /// <summary>
        /// 险种校验
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public string CheckRequestXianZhong(PostPrecisePriceRequest request)
        {
            string msg = string.Empty;

            if (request.QuoteGroup > 0)
            {
                if (request.QuoteGroup < request.SubmitGroup)
                {
                    msg = "参数SubmitGroup不能大于QuoteGroup";
                    return(msg);
                }
                //if ((request.QuoteGroup & request.SubmitGroup)!= request.SubmitGroup)
                //{
                //    msg = "请核对SubmitGroup参数是否是QuoteGroup中的资源组合";
                //    return msg;
                //}
            }

            if (request.CheSun == 0 && request.BuJiMianCheSun == 1)
            {
                msg = "不选择车辆损失险,不能选择不计免车损";
                return(msg);
            }
            if (request.SanZhe == 0 && request.BuJiMianSanZhe > 0)
            {
                msg = "不选择第三者责任险,不能选择不计免三者";
                return(msg);
            }
            //if ((request.SiJi == 0 && request.ChengKe == 0) && request.BuJiMianRenYuan > 0)
            //{
            //    msg = "不选择司机座位险或者乘客座位险,不能选择不计免人员险";
            //    return msg;
            //}
            if (request.DaoQiang == 0 && request.BuJiMianDaoQiang > 0)
            {
                msg = "不选择盗抢险,不能选择不计免盗抢";
                return(msg);
            }
            //2.1.5版本修改
            if (request.ChengKe == 0 && request.BuJiMianChengKe == 1)
            {
                msg = "不选择乘客座位险,不能选择不计免乘客";
                return(msg);
            }
            if (request.SiJi == 0 && request.BuJiMianSiJi == 1)
            {
                msg = "不选择司机座位险,不能选择不计免司机";
                return(msg);
            }
            if (request.HuaHen == 0 && request.BuJiMianHuaHen == 1)
            {
                msg = "不选择划痕险,不能选择不计免划痕";
                return(msg);
            }
            if (request.SheShui == 0 && request.BuJiMianSheShui == 1)
            {
                msg = "不选择涉水险,不能选择不计免涉水";
                return(msg);
            }
            if (request.ZiRan == 0 && request.BuJiMianZiRan == 1)
            {
                msg = "不选择自燃险,不能选择不计免自燃";
                return(msg);
            }
            if (request.HcJingShenSunShi == 1 && request.SiJi <= 0 && request.ChengKe <= 0 && request.SanZhe <= 0)
            {
                msg = "投保精神损失险,三者、司机、乘客至少有一个要投保";
                return(msg);
            }
            if (request.HcJingShenSunShi == 0 && request.BuJiMianJingShenSunShi == 1)
            {
                msg = "不选择精神损失险,不能选择不计免精神损失";
                return(msg);
            }
            if (request.ForceTax == 0 && string.IsNullOrWhiteSpace(request.BizStartDate) && string.IsNullOrWhiteSpace(request.BizTimeStamp))
            {
                msg = "单商业,商业险开始日期BizStartDate不能为空";
                return(msg);
            }
            if (request.SheBeiSunshi == 0 && request.BjmSheBeiSunshi == 1)
            {
                msg = "不选择新增设备损失险,不能选择不计免新增设备损失险";
                return(msg);
            }
            //单交强
            if (request.ForceTax == 2)
            {
                if (request.CheSun > 0 || request.BuJiMianCheSun > 0 || request.DaoQiang > 0 || request.BuJiMianDaoQiang > 0 || request.BuJiMianSanZhe > 0 || request.BuJiMianSanZhe > 0 ||
                    request.SiJi > 0 || request.ChengKe > 0 ||
                    request.HuaHen > 0 || request.BoLi > 0 || request.ZiRan > 0 || request.SheShui > 0 || request.SanZhe > 0
                    )
                {
                    msg = "单交强,商业险不能选择险种";
                    return(msg);
                }
            }
            //险种选择
            #region 划痕
            var huahenlist = new List <double>
            {
                2000,
                5000,
                10000,
                20000
            };
            if (request.HuaHen > 0)
            {
                if (!huahenlist.Any(x => x == request.HuaHen))
                {
                    msg = "划痕险请选择正确的保额";
                    return(msg);
                }
            }
            #endregion
            #region 司机&乘客
            var sijilist = new List <double>
            {
                10000,
                20000,
                30000,
                40000,
                50000,
                100000,
                200000,
                250000,//国寿财用
                300000
            };
            if (request.SiJi > 0)
            {
                //if (!sijilist.Any(x => x == request.SiJi))
                //{
                //    msg = "车上人员责任险(司机)请选择正确的保额";
                //    return msg;
                //}
                if (request.SiJi < 1000 || request.SiJi > 1000000)
                {
                    msg = "车上人员责任险(司机)请选择正确的保额";
                    return(msg);
                }
            }
            if (request.ChengKe > 0)
            {
                //if (!sijilist.Any(x => x == request.ChengKe))
                //{
                //    msg = "车上人员责任险(乘客)请选择正确的保额";
                //    return msg;
                //}
                if (request.ChengKe < 1000 || request.ChengKe > 1000000)
                {
                    msg = "车上人员责任险(乘客)请选择正确的保额";
                    return(msg);
                }
            }
            #endregion
            #region  者
            if (request.SanZhe > 0)
            {
                var sanzelist = new List <double>
                {
                    50000,
                    100000,
                    150000,
                    200000,
                    300000,
                    500000,
                    1000000,
                    1500000,
                    2000000,//国寿财用
                    2500000,
                    3000000,
                    5000000,
                    8000000,
                    10000000,
                };
                if (request.SanZhe < 1000 || request.SanZhe > 10000000)
                {
                    msg = "三者险请选择正确的保额";
                    return(msg);
                }
            }
            #endregion
            #region 修理厂险判断
            //人保以外的其他保司,国产的范围是0.1-0.3,进口的范围是0.15-0.6
            if (request.HcXiuLiChang > 0 && request.QuoteGroup != 4)
            {
                if (request.HcXiuLiChangType == 0)
                {
                    if (!string.IsNullOrWhiteSpace(request.CarVin) && !request.CarVin.StartsWith("L"))
                    {
                        //车架号国产是L开头
                        return("如果车架号非L开头,指定修理厂类型须为进口");
                    }
                    if (request.HcXiuLiChang > 0.3 || request.HcXiuLiChang < 0.1)
                    {
                        return("如果指定修理厂类型为国产,修理厂险的范围是0.1-0.3");
                    }
                }
                else if (request.HcXiuLiChangType == 1)
                {
                    if (!string.IsNullOrWhiteSpace(request.CarVin) && request.CarVin.StartsWith("L"))
                    {
                        //车架号进口不是L开头
                        return("如果车架号L开头,指定修理厂类型须为国产");
                    }
                    if (request.HcXiuLiChang > 0.6 || request.HcXiuLiChang < 0.15)
                    {
                        return("如果指定修理厂类型为进口,修理厂险的范围是0.15-0.6");
                    }
                }
                else
                {
                    request.HcXiuLiChangType = -1;
                    request.HcXiuLiChang     = 0;
                }
            }
            #endregion
            #region 车损和不计免规则
            if (request.HuaHen > 0 || request.BoLi > 0 || request.ZiRan > 0 || request.SheShui > 0 || request.HcSanFangTeYue == 1 || request.HcXiuLiChang > 0 || request.Fybc > 0 || request.SheBeiSunshi > 0)
            {
                if (request.CheSun == 0)
                {
                    return("选择了划痕、玻璃、自燃、涉水、三方特约、指定修理厂、费用补偿、设备损失等附加险,必须选择车辆损失险");
                }
            }
            #endregion
            #region 如果上精神损失、车上货物责任险(费改后暂不支持)、法定节假日责任限额翻倍,必须上三者
            if (request.HcJingShenSunShi > 0 || request.HcHuoWuZeRen > 0 || request.SanZheJieJiaRi > 0)
            {
                if (request.SanZhe == 0)
                {
                    return("选择了精神损失险、车上货物责任险、法定节假日责任限额翻倍等附加险,必须选择三者险");
                }
            }
            #endregion
            return(msg);
        }
コード例 #12
0
        /// <summary>
        /// 报价更新userinfo
        /// </summary>
        /// <param name="request"></param>
        /// <param name="userinfo"></param>
        /// <param name="_url"></param>
        /// <param name="repository"></param>
        /// <returns></returns>
        public static long QuoteUpdate(PostPrecisePriceRequest request, bx_userinfo userinfo, string _url, IUserInfoRepository repository, int topAgentId = 0)
        {
            userinfo.IsSingleSubmit = request.IsSingleSubmit;//是否对单个公司进行核保  1:是 0: 否
            userinfo.Source         = request.IntentionCompany;
            // userinfo.CarType = request.CarType;
            // userinfo.IsNewCar = request.IsNewCar;
            // userinfo.CarUsedType = request.CarUsedType;
            userinfo.CityCode = request.CityCode.ToString();
            if (!string.IsNullOrWhiteSpace(request.CarVin))
            {
                userinfo.CarVIN = request.CarVin.ToUpper();
            }
            if (!string.IsNullOrWhiteSpace(request.MoldName))
            {
                userinfo.MoldName = request.MoldName;
            }
            if (!string.IsNullOrWhiteSpace(request.RegisterDate))
            {
                userinfo.RegisterDate = request.RegisterDate;
            }
            if (!string.IsNullOrWhiteSpace(request.EngineNo))
            {
                userinfo.EngineNo = request.EngineNo.ToUpper();
            }
            userinfo.UpdateTime      = DateTime.Now;
            userinfo.LatestQuoteTime = DateTime.Now;//20181030跟路航沟通报价前后都改此值,modifyby gpj
            userinfo.NeedEngineNo    = 0;
            userinfo.RenewalCarType  = request.RenewalCarType;
            if (!string.IsNullOrWhiteSpace(request.Mobile))
            {
                userinfo.Mobile = request.Mobile;
            }
            //if (isNeedUpdateLicensen)
            //{
            //    userinfo.LicenseNo = request.UpdateLicenseNo;
            //}
            ////如果没有车牌号,则默认按照车架号走
            //if (request.IsNewCar == 1)
            //{
            //    if (string.IsNullOrWhiteSpace(request.LicenseNo))
            //    {
            //        userinfo.LicenseNo = request.CarVin.ToUpper();
            //    }
            //}
            //此新车报价,如果有就更新 ,没有直接报价
            if (!string.IsNullOrWhiteSpace(request.UpdateLicenseNo))
            {
                userinfo.LicenseNo = request.UpdateLicenseNo;
            }
            if (!string.IsNullOrWhiteSpace(request.Email))
            {
                userinfo.Email = request.Email;
            }
            //  userinfo.SeatCout = request.SeatCount;
            //  userinfo.TonCount = request.TonCount;
            //#region 费改地区身份证完善
            if (!string.IsNullOrWhiteSpace(request.CarOwnersName))
            {
                //userinfo.UserName = request.CarOwnersName;
                userinfo.LicenseOwner = request.CarOwnersName;
                //userinfo.InsuredName = request.CarOwnersName;
            }
            if (!string.IsNullOrWhiteSpace(request.IdCard))
            {
                userinfo.IdCard = request.IdCard.ToUpper();
                //userinfo.InsuredIdCard = request.IdCard.ToUpper();
                //userinfo.InsuredIdType = 1;
            }
            //#endregion
            #region 车主信息
            if (!string.IsNullOrWhiteSpace(request.IdCard))
            {
                userinfo.IdCard = request.IdCard;
                //if (request.IdCard.IsValidIdCard())
                //{
                //    request.OwnerIdCardType = 1;
                //}
                if (!string.IsNullOrEmpty(_isAddIdCardBack6) && _isAddIdCardBack6.Equals("1") && string.IsNullOrEmpty(userinfo.SixDigitsAfterIdCard) && !userinfo.IdCard.Contains("*") && userinfo.IdCard.Length > 6)
                {
                    //原先证件6位不为空&&证件不包含*&&证件长度大于6位
                    userinfo.SixDigitsAfterIdCard = userinfo.IdCard.Substring(userinfo.IdCard.Length - 6, 6);
                }
            }
            if (request.OwnerIdCardType > 0)
            {
                userinfo.OwnerIdCardType = request.OwnerIdCardType;
            }
            userinfo.OwnerSex      = request.OwnerSex;
            userinfo.OwnerBirthday = request.OwnerBirthday;
            userinfo.OwnerIssuer   = request.OwnerAuthority;
            userinfo.OwnerNation   = request.OwnerNation;
            #endregion
            #region 投保人为空 按照被保人信息保存
            var isPosterValid = false ||
                                !string.IsNullOrWhiteSpace(request.HolderName) &&
                                !string.IsNullOrWhiteSpace(request.HolderIdCard) && request.HolderIdType > 0;
            var isInsuredValid = false || !string.IsNullOrWhiteSpace(request.InsuredName) &&
                                 !string.IsNullOrWhiteSpace(request.InsuredIdCard) && request.InsuredIdType > 0;
            if (!isPosterValid && isInsuredValid)
            {
                request.HolderName   = request.InsuredName;
                request.HolderIdCard = request.InsuredIdCard;
                request.HolderIdType = request.InsuredIdType;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredMobile) && string.IsNullOrWhiteSpace(request.HolderMobile))
            {
                request.HolderMobile = request.InsuredMobile;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredEmail) && string.IsNullOrWhiteSpace(request.HolderEmail))
            {
                request.HolderEmail = request.InsuredEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredAddress) &&
                string.IsNullOrWhiteSpace(request.HolderAddress))
            {
                request.HolderAddress = request.InsuredAddress;
            }
            #endregion
            #region 被保险人信息
            if (!string.IsNullOrWhiteSpace(request.InsuredName))
            {
                userinfo.InsuredName = request.InsuredName.Trim();
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredIdCard))
            {
                userinfo.InsuredIdCard = request.InsuredIdCard.ToUpper();
                //if (request.InsuredIdCard.IsValidIdCard())
                //{
                //    request.InsuredIdType = 1;
                //}
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredEmail))
            {
                userinfo.InsuredEmail = request.InsuredEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredMobile))
            {
                userinfo.InsuredMobile = request.InsuredMobile.Trim();
            }
            if (request.InsuredIdType != 0)
            {
                userinfo.InsuredIdType = request.InsuredIdType;
            }
            userinfo.InsuredAddress        = request.InsuredAddress;
            userinfo.InsuredCertiStartdate = request.InsuredCertiStartdate;
            userinfo.InsuredCertiEnddate   = request.InsuredCertiEnddate;
            userinfo.InsuredSex            = request.InsuredSex;
            userinfo.InsuredBirthday       = request.InsuredBirthday;
            userinfo.InsuredIssuer         = request.InsuredAuthority;
            userinfo.InsuredNation         = request.InsuredNation;

            #endregion
            #region 投保人信息
            if (!string.IsNullOrWhiteSpace(request.HolderEmail))
            {
                userinfo.HolderEmail = request.HolderEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.HolderName))
            {
                userinfo.HolderName = request.HolderName.Trim();
            }
            if (!string.IsNullOrWhiteSpace(request.HolderIdCard))
            {
                userinfo.HolderIdCard = request.HolderIdCard.ToUpper();
                //if (request.HolderIdCard.IsValidIdCard())
                //{
                //    request.HolderIdType = 1;
                //}
            }
            if (!string.IsNullOrWhiteSpace(request.HolderMobile))
            {
                userinfo.HolderMobile = request.HolderMobile.Trim();
            }
            if (request.HolderIdType != 0)
            {
                userinfo.HolderIdType = request.HolderIdType;
            }
            userinfo.HolderAddress        = request.HolderAddress;
            userinfo.HolderCertiStartdate = request.HolderCertiStartdate;
            userinfo.HolderCertiEnddate   = request.HolderCertiEnddate;
            userinfo.HolderSex            = request.HolderSex;
            userinfo.HolderBirthday       = request.HolderBirthday;
            userinfo.HolderIssuer         = request.HolderAuthority;
            userinfo.HolderNation         = request.HolderNation;

            #endregion

            #region 老的获取品牌型号方法
            //此处方法获取品牌型号放在外层获取
            //if (userinfo.CarVIN.Length > 5)
            //{
            //    var frontCarVin = userinfo.CarVIN.Substring(0, 5);
            //    if (!userinfo.CarVIN.StartsWith("L") && userinfo.MoldName.ToUpper().IndexOf(frontCarVin, System.StringComparison.Ordinal) >= 0)
            //    {
            //        using (HttpClient client = new HttpClient())
            //        {
            //            client.BaseAddress = new Uri(_url);
            //            var getUrl = string.Format("api/taipingyang/gettaipycarinfoby?carvin={0}", userinfo.CarVIN);
            //            HttpResponseMessage responseVin = client.GetAsync(getUrl).Result;
            //            var resultVin = responseVin.Content.ReadAsStringAsync().Result;
            //            var carinfo = resultVin.FromJson<WaGetTaiPyCarInfoResponse>();
            //            if (carinfo != null && carinfo.CarInfo != null)
            //            {
            //                userinfo.MoldName = carinfo.CarInfo.moldName;
            //            }
            //        }
            //    }
            //}
            #endregion
            //20181126去掉配置
            //if (userinfo.zs_zuoxi_id == 0)
            //{
            //    //车店连呼特殊配置CLHZuoXiAgentId
            //    var strzuoxiagent = ConfigurationManager.AppSettings["CLHZuoXiAgentId"];
            //    if (!string.IsNullOrEmpty(strzuoxiagent))
            //    {
            //        string[] reAgent = strzuoxiagent.Split(',');
            //        //取配置里的数组,如果匹配上,则将子集代理id赋值给zuoxiid
            //        if (Array.IndexOf(reAgent, topAgentId.ToString()) != -1)
            //            userinfo.zs_zuoxi_id = request.Agent;
            //    }
            //}
            userinfo.IsChangeRelation = 0;//修改关系人状态改为0;17/10/23bygpjadd。//提交订单会判断此字段是否为1
            repository.Update(userinfo);
            return(userinfo.Id);
        }
コード例 #13
0
        /// <summary>
        /// 请求报价新增userinfo
        /// </summary>
        /// <param name="request"></param>
        /// <param name="_url"></param>
        /// <param name="repository"></param>
        /// <param name="topAgentId"></param>
        /// <returns></returns>
        public static long QuoteAdd(PostPrecisePriceRequest request, string _url, IUserInfoRepository repository, int topAgentId = 0)
        {
            //如果是直接报价,没有传递车牌号,直接用车架号替换
            if (string.IsNullOrWhiteSpace(request.LicenseNo))
            {
                request.LicenseNo = request.CarVin.ToUpper();
            }
            var insertUserinfo = new bx_userinfo
            {
                agent_id       = request.Agent,
                top_agent_id   = topAgentId,
                IsLastYear     = 0,
                LastYearSource = -1,
                Source         = request.IntentionCompany,
                //Mobile = agentModel.Mobile,
                LicenseNo = request.LicenseNo,
                Agent     = request.Agent.ToString(),
                //UserId = account.UserId,
                OpenId   = request.CustKey,
                CityCode = request.CityCode.ToString(),
                //IsPublic = 0,
                QuoteStatus    = -1,
                CreateTime     = DateTime.Now,
                IsSingleSubmit = request.IsSingleSubmit,
                // CarType = request.CarType,
                // IsNewCar = request.IsNewCar,
                // CarUsedType = request.CarUsedType,
                CarVIN       = request.CarVin.ToUpper(),
                MoldName     = request.MoldName,
                RegisterDate = request.RegisterDate,
                EngineNo     = request.EngineNo.ToUpper(),
                RenewalType  = request.RenewalType,
                // SeatCout = request.SeatCount,
                // TonCount = request.TonCount,
                NeedEngineNo     = 0,
                IsDistributed    = 0,
                UpdateTime       = DateTime.Now,
                LatestQuoteTime  = DateTime.Now,//20181030跟路航沟通报价前后都改此值,modifyby gpj
                RenewalStatus    = -1,
                OwnerIdCardType  = -1,
                IsReView         = 0,
                IsTest           = 0,
                RenewalCarType   = request.RenewalCarType,
                IsChangeRelation = 0//修改关系人状态改为0;17/10/23bygpjadd。//提交订单会判断此字段是否为1
            };

            if (!string.IsNullOrWhiteSpace(request.Mobile))
            {
                insertUserinfo.Mobile = request.Mobile;
            }
            //分配逻辑 如果是顶级,为未分配,否则为已分配(即自己试算数据)//modifyby20181119此处以前删除了,现在放开,因为调用crm接口的摄像头分配逻辑废弃了
            if (request.RenewalType == 2)
            {
                insertUserinfo.IsDistributed = 0; //未分配
            }
            else
            {
                if (request.ChildAgent == topAgentId)
                {
                    insertUserinfo.IsDistributed = 0; //未分配
                }
                else
                {
                    insertUserinfo.IsDistributed = 2; //已分配
                }
            }
            //此新车报价,如果有就更新 ,没有直接报价
            if (!string.IsNullOrWhiteSpace(request.UpdateLicenseNo))
            {
                insertUserinfo.LicenseNo = request.UpdateLicenseNo;
            }
            if (!string.IsNullOrWhiteSpace(request.Email))
            {
                insertUserinfo.Email = request.Email;
            }
            //#region 费改地区身份证完善
            if (!string.IsNullOrWhiteSpace(request.CarOwnersName))
            {
                //insertUserinfo.UserName = request.CarOwnersName;
                insertUserinfo.LicenseOwner = request.CarOwnersName;
                //insertUserinfo.InsuredName = request.CarOwnersName;
            }
            if (!string.IsNullOrWhiteSpace(request.IdCard))
            {
                insertUserinfo.IdCard = request.IdCard.ToUpper();
                //insertUserinfo.InsuredIdCard = request.IdCard.ToUpper();
                //insertUserinfo.InsuredIdType = 1;//小龙端 需要此属性
            }
            //#endregion
            #region 车主信息
            if (!string.IsNullOrWhiteSpace(request.IdCard))
            {
                insertUserinfo.IdCard = request.IdCard;
                //if (request.IdCard.IsValidIdCard())
                //{
                //    request.OwnerIdCardType = 1;
                //}
                if (!string.IsNullOrEmpty(_isAddIdCardBack6) && _isAddIdCardBack6.Equals("1") && string.IsNullOrEmpty(insertUserinfo.SixDigitsAfterIdCard) && !insertUserinfo.IdCard.Contains("*") && insertUserinfo.IdCard.Length > 6)
                {
                    //原先证件6位不为空&&证件不包含*&&证件长度大于6位
                    insertUserinfo.SixDigitsAfterIdCard = insertUserinfo.IdCard.Substring(insertUserinfo.IdCard.Length - 6, 6);
                }
            }
            if (request.OwnerIdCardType > 0)
            {
                insertUserinfo.OwnerIdCardType = request.OwnerIdCardType;
            }
            insertUserinfo.OwnerSex      = request.OwnerSex;
            insertUserinfo.OwnerBirthday = request.OwnerBirthday;
            insertUserinfo.OwnerIssuer   = request.OwnerAuthority;
            insertUserinfo.OwnerNation   = request.OwnerNation;
            #endregion
            #region 投保人为空 按照被保人信息保存
            var isPosterValid = false ||
                                !string.IsNullOrWhiteSpace(request.HolderName) &&
                                !string.IsNullOrWhiteSpace(request.HolderIdCard) && request.HolderIdType > 0;
            var isInsuredValid = false || !string.IsNullOrWhiteSpace(request.InsuredName) &&
                                 !string.IsNullOrWhiteSpace(request.InsuredIdCard) && request.InsuredIdType > 0;
            if (!isPosterValid && isInsuredValid)
            {
                request.HolderName   = request.InsuredName;
                request.HolderIdCard = request.InsuredIdCard;
                request.HolderIdType = request.InsuredIdType;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredMobile) && string.IsNullOrWhiteSpace(request.HolderMobile))
            {
                request.HolderMobile = request.InsuredMobile;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredEmail) && string.IsNullOrWhiteSpace(request.HolderEmail))
            {
                request.HolderEmail = request.InsuredEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredAddress) &&
                string.IsNullOrWhiteSpace(request.HolderAddress))
            {
                request.HolderAddress = request.InsuredAddress;
            }
            #endregion
            #region 被保险人信息
            if (!string.IsNullOrWhiteSpace(request.InsuredEmail))
            {
                insertUserinfo.InsuredEmail = request.InsuredEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredName))
            {
                insertUserinfo.InsuredName = request.InsuredName.Trim();
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredIdCard))
            {
                insertUserinfo.InsuredIdCard = request.InsuredIdCard.ToUpper();
                //if (request.InsuredIdCard.IsValidIdCard())
                //{
                //    request.InsuredIdType = 1;
                //}
            }
            if (!string.IsNullOrWhiteSpace(request.InsuredMobile))
            {
                insertUserinfo.InsuredMobile = request.InsuredMobile.Trim();
            }
            if (request.InsuredIdType != 0)
            {
                insertUserinfo.InsuredIdType = request.InsuredIdType;
            }
            insertUserinfo.InsuredAddress        = request.InsuredAddress;
            insertUserinfo.InsuredCertiStartdate = request.InsuredCertiStartdate;
            insertUserinfo.InsuredCertiEnddate   = request.InsuredCertiEnddate;
            insertUserinfo.InsuredSex            = request.InsuredSex;
            insertUserinfo.InsuredBirthday       = request.InsuredBirthday;
            insertUserinfo.InsuredIssuer         = request.InsuredAuthority;
            insertUserinfo.InsuredNation         = request.InsuredNation;

            #endregion
            #region 投保人信息
            if (!string.IsNullOrWhiteSpace(request.HolderEmail))
            {
                insertUserinfo.HolderEmail = request.HolderEmail;
            }
            if (!string.IsNullOrWhiteSpace(request.HolderName))
            {
                insertUserinfo.HolderName = request.HolderName.Trim();
            }
            if (!string.IsNullOrWhiteSpace(request.HolderIdCard))
            {
                insertUserinfo.HolderIdCard = request.HolderIdCard.ToUpper();
                //if (request.HolderIdCard.IsValidIdCard())
                //{
                //    request.HolderIdType = 1;
                //}
            }
            if (!string.IsNullOrWhiteSpace(request.HolderMobile))
            {
                insertUserinfo.HolderMobile = request.HolderMobile.Trim();
            }
            if (request.HolderIdType != 0)
            {
                insertUserinfo.HolderIdType = request.HolderIdType;
            }
            insertUserinfo.HolderAddress        = request.HolderAddress;
            insertUserinfo.HolderCertiStartdate = request.HolderCertiStartdate;
            insertUserinfo.HolderCertiEnddate   = request.HolderCertiEnddate;
            insertUserinfo.HolderSex            = request.HolderSex;
            insertUserinfo.HolderBirthday       = request.HolderBirthday;
            insertUserinfo.HolderIssuer         = request.HolderAuthority;
            insertUserinfo.HolderNation         = request.HolderNation;

            #endregion

            //此处品牌型号改在外层获取
            //if (insertUserinfo.CarVIN.Length > 5)
            //{
            //    var frontCarVin = insertUserinfo.CarVIN.Substring(0, 5);
            //    if (!insertUserinfo.CarVIN.StartsWith("L") && insertUserinfo.MoldName.ToUpper().IndexOf(frontCarVin, System.StringComparison.Ordinal) >= 0)
            //    {
            //        using (var client = new HttpClient())
            //        {
            //            client.BaseAddress = new Uri(_url);
            //            var getUrl = string.Format("api/taipingyang/gettaipycarinfoby?carvin={0}", insertUserinfo.CarVIN);
            //            HttpResponseMessage responseVin = client.GetAsync(getUrl).Result;
            //            var resultVin = responseVin.Content.ReadAsStringAsync().Result;
            //            var carinfo = resultVin.FromJson<WaGetTaiPyCarInfoResponse>();
            //            if (carinfo != null && carinfo.CarInfo != null)
            //            {
            //                insertUserinfo.MoldName = carinfo.CarInfo.moldName;
            //            }
            //        }
            //    }
            //}

            #region 车店连呼新增userinfo时权限相关特殊操作,bygpj
            //业务call liuzhenlong,qixinbo,lvshaobo
            if (request.ZuoXiId > 0)
            {
                //新增续保报价选择数据来源时用 20181218
                insertUserinfo.zs_zuoxi_id = request.ZuoXiId;
            }
            else
            {
                //20181126去掉配置//20181127只新增赋值zuoxiid
                //车店连呼特殊配置CLHZuoXiAgentId
                var strzuoxiagent = ConfigurationManager.AppSettings["CLHZuoXiAgentId"];
                if (!string.IsNullOrEmpty(strzuoxiagent))
                {
                    string[] reAgent = strzuoxiagent.Split(',');
                    //取配置里的数组,如果匹配上,则将子集代理id赋值给zuoxiid
                    if (Array.IndexOf(reAgent, topAgentId.ToString()) != -1)
                    {
                        insertUserinfo.zs_zuoxi_id = request.Agent;
                    }
                }
            }
            #endregion

            insertUserinfo.IsSingleLicenseno = 0;
            //20181009中心要求修改是否单车牌标识
            if (string.IsNullOrEmpty(insertUserinfo.CarVIN) || string.IsNullOrEmpty(insertUserinfo.EngineNo))
            {
                insertUserinfo.IsSingleLicenseno = 1;
            }
            var id = repository.Add(insertUserinfo);
            return(id);
        }
コード例 #14
0
        public BaseViewModel CheckInsurance(PostPrecisePriceRequest request)
        {
            BaseViewModel viewModel = new BaseViewModel();

            #region 短时起保业务
            if (!string.IsNullOrWhiteSpace(request.BizShortEndDate))
            {
                DateTime bizenddate = request.BizShortEndDate.UnixTimeToDateTime();
                if (bizenddate > DateTime.Now.AddYears(1) || bizenddate < DateTime.Now.AddDays(1))
                {
                    viewModel.StatusMessage = "输入参数错误,如果有商业险短时起保业务,请确保商业险截止日期在明天到一年后的今天范围之内";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            #region 实时起保的时间需要大于当前时间1小时,
            if (!string.IsNullOrWhiteSpace(request.BizTimeStamp) && request.ForceTax != 2)
            {//!=2是单交强
                if (DateTime.Parse(request.BizTimeStamp.UnixTimeToDateTime().ToString("yyyy-MM-dd HH") + ":00:00") < DateTime.Now.AddMinutes(60))
                {
                    viewModel.StatusMessage = "输入参数错误,如果选择实时起保,商业起保时间需晚于系统时间60分钟";
                    return(FailedViewModel(viewModel, -10000));
                }
            }

            if (!string.IsNullOrWhiteSpace(request.ForceTimeStamp) && request.ForceTax != 0)
            {//!=0是单商业
                if (DateTime.Parse(request.ForceTimeStamp.UnixTimeToDateTime().ToString("yyyy-MM-dd HH") + ":00:00") < DateTime.Now.AddMinutes(60))
                {
                    viewModel.StatusMessage = "输入参数错误,如果选择实时起保,交强起保时间需晚于系统时间60分钟";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion

            #region 折扣价格
            if (request.NegotiatePrice > 0)
            {
                if (string.IsNullOrWhiteSpace(request.BizStartDate) && string.IsNullOrWhiteSpace(request.BizTimeStamp))
                {
                    viewModel.StatusMessage = "输入参数错误,如果有浮动价格,请完善商业险起保日期、初登日期和购置价格(接口6获得的价格)";
                    return(FailedViewModel(viewModel, -10000));
                }
                if (string.IsNullOrWhiteSpace(request.RegisterDate))
                {
                    viewModel.StatusMessage = "输入参数错误,如果有浮动价格,请完善商业险起保日期、初登日期和购置价格(接口6获得的价格)";
                    return(FailedViewModel(viewModel, -10000));
                }
                if (request.PurchasePrice <= 0 && request.PurchasePrice > 7000000)
                {
                    viewModel.StatusMessage = "输入参数错误,如果有浮动价格,请完善商业险起保日期、初登日期和购置价格(接口6获得的价格)";
                    return(FailedViewModel(viewModel, -10000));
                }
                string bizdate = string.Empty;
                //时间戳支持
                if (!string.IsNullOrWhiteSpace(request.BizTimeStamp))
                {
                    bizdate = request.BizTimeStamp.UnixTimeToDateTime().ToString("yyyy-MM-dd");
                }
                else if (!string.IsNullOrWhiteSpace(request.BizStartDate))
                {
                    bizdate = request.BizStartDate;
                }
                var ticks = DateTime.Parse(bizdate).Ticks - DateTime.Parse(request.RegisterDate).Ticks;
                if (ticks < 0)
                {
                    viewModel.StatusMessage = "输入参数错误,请确定您的商业险起保日期和初等日期的先后关系";
                    return(FailedViewModel(viewModel, -10000));
                }
                //DepreciationPriceViewModel model = await GetPrice(request.BizTimeStamp, request.RegisterDate, request.PurchasePrice,request.CarType);
                //if (model.BusinessStatus == 1)
                //{
                //    if (request.NegotiatePrice < model.Item.DownPrice || request.NegotiatePrice > model.Item.UpPrice)
                //    {
                //        viewModel.StatusMessage = "请检查您的协商价格,该值应该在"+model.Item.DownPrice+"~"+model.Item.UpPrice+"范围内";
                //        return viewModel;
                //    }
                //}
                //else
                //{
                //    viewModel.StatusMessage = "调用保险中心折扣价格出现异常";
                //    return viewModel;
                //}
            }
            #endregion
            #region //单商业或者 双险的时候 ,商业险必须上
            if (request.ForceTax == 0 || request.ForceTax == 1)
            {
                if (request.CheSun == 0 && request.SanZhe == 0 && request.DaoQiang == 0 && request.SiJi == 0 && request.ChengKe == 0)
                {
                    var s = string.Empty;
                    if (request.ForceTax == 0)
                    {
                        s = "您选择的是单商业,请选择相关的商业险险种组合去报价";
                    }
                    if (request.ForceTax == 1)
                    {
                        s = "您选择的是交强+商业险,请选择相关的商业险险种组合去报价";
                    }
                    viewModel.StatusMessage = "输入参数错误," + s;
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            //三责节假日险特殊判断,只有私家车和上三者的才能报
            //if (!(request.SanZhe > 0 && request.CarUsedType == 1))
            //{
            //    if (request.SanZheJieJiaRi > 0)
            //    {
            //        viewModel.StatusMessage = "输入参数错误,只有家庭自用车选择了第三者责任险,才可以选择三责险附加法定节假日限额翻倍险";
            //        return FailedViewModel(viewModel, -10000);
            //    }
            //}
            #region 修理期间费用补偿险
            if ((request.FybcDays < 0 || request.FybcDays > 90) || (request.Fybc < 0 || request.Fybc > 300))
            {
                viewModel.StatusMessage = "输入参数错误," + "修理期间费用补偿险,费用只能是 100,200,300,天数必须在(1-90)范围内";
                return(FailedViewModel(viewModel, -10000));
            }

            if ((request.Fybc > 0 && request.FybcDays <= 0) || (request.Fybc <= 0 && request.FybcDays > 0))
            {
                viewModel.StatusMessage = "输入参数错误," + "修理期间费用补偿险,费用和金额都必须大于0";
                return(FailedViewModel(viewModel, -10000));
            }
            if (request.Fybc > 0)
            {
                List <double> rge = new List <double>()
                {
                    100, 200, 300
                };
                if (!rge.Contains(request.Fybc))
                {
                    viewModel.StatusMessage = "输入参数错误," + "修理期间费用补偿险,费用只能是 100,200,300";
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            #region 新增设备校验
            if (request.SheBeiSunshi == 1)
            {
                var shebeimsg = _checkShebei.CheckRequestShebei(request);
                if (!string.IsNullOrWhiteSpace(shebeimsg))
                {
                    viewModel.StatusMessage = shebeimsg;
                    return(FailedViewModel(viewModel, -10000));
                }
            }
            #endregion
            #region 其他一般险种校验
            var checkMsg = _checkXianZhong.CheckRequestXianZhong(request);
            if (!string.IsNullOrWhiteSpace(checkMsg))
            {
                string msg = checkMsg;
                viewModel.StatusMessage = "输入参数错误," + msg;
                //靠,不知道这里谁改成-10001的,导致校验直接跳过去报价了。
                return(FailedViewModel(viewModel, -10000));
            }
            #endregion

            //特约险判断
            if (!string.IsNullOrWhiteSpace(request.SpecialOption))
            {
                List <long>             sources           = SourceGroupAlgorithm.ParseSource(request.QuoteGroup);
                List <bx_specialoption> specialOptionList = new List <bx_specialoption>();
                List <SpecialOption>    requestList       = request.SpecialOption.FromJson <List <SpecialOption> >();
                foreach (var item in requestList)
                {
                    if (!sources.Contains(item.Source))
                    {
                        viewModel.StatusMessage = "输入参数错误,有部分特约不属于所指定的报价公司";
                        return(FailedViewModel(viewModel, -10000));
                    }
                }
            }
            return(new BaseViewModel());
        }
コード例 #15
0
        public static void QuoteAdd(PostPrecisePriceRequest request, long buid, int publictype, IQuoteReqCarinfoRepository repository)
        {
            bx_quotereq_carinfo newquotereq = new bx_quotereq_carinfo
            {
                is_loans      = request.IsLoans,
                b_uid         = buid,
                car_type      = request.CarType,
                car_used_type = request.CarUsedType,
                seat_count    = request.SeatCount,
                is_newcar     = request.IsNewCar,
                car_ton_count = request.TonCount,
                create_time   = DateTime.Now,
                update_time   = DateTime.Now
            };

            //经办人、送修码、归属人等设置,重写source值
            //if (!string.IsNullOrWhiteSpace(request.ConfigCode))
            //{
            //    //将用户传的configcode的source改为旧值。
            //    var configcodemodel = request.ConfigCode.FromJson<Dictionary<string, Dictionary<string, string>>>();
            //    var newconfigcodemodel = new Dictionary<string, Dictionary<string, string>>();
            //    foreach (var item in configcodemodel)
            //    {
            //        newconfigcodemodel.Add(SourceGroupAlgorithm.GetOldSource(long.Parse(item.Key)).ToString(), item.Value);
            //    }
            //    request.ConfigCode = newconfigcodemodel.ToJson();
            //}
            newquotereq.account_relation = request.ConfigCode;

            //浮动价格
            if (request.NegotiatePrice >= 0)
            {
                newquotereq.co_real_value = request.NegotiatePrice;
            }
            else
            {
                newquotereq.co_real_value = 0;
            }
            //车型选择source
            if (request.VehicleSource > 0)
            {
                newquotereq.moldcode_company = request.VehicleSource;
            }
            //过户车日期逻辑
            if (!string.IsNullOrWhiteSpace(request.TransferDate))
            {
                newquotereq.transfer_date = DateTime.Parse(request.TransferDate);
            }
            else
            {
                newquotereq.transfer_date = null;
            }
            if (!string.IsNullOrWhiteSpace(request.BizStartDate))
            {
                newquotereq.biz_start_date = DateTime.Parse(request.BizStartDate);
            }
            else
            {
                newquotereq.biz_start_date = null;
            }
            if (!string.IsNullOrWhiteSpace(request.ForceStartDate))
            {
                newquotereq.force_start_date = DateTime.Parse(request.ForceStartDate);
            }
            else
            {
                newquotereq.force_start_date = null;
            }
            //精友编码
            if (!string.IsNullOrWhiteSpace(request.AutoMoldCode))
            {
                newquotereq.auto_model_code        = request.AutoMoldCode.Trim();
                newquotereq.auto_model_code_source = 2;
            }
            else
            {
                //20181119,解决续保车补充到其他保司的精友码,中心查到carmold的车型信息跟平安保司不匹配
                //如果是平安,则把数据库的精友码删掉
                if (request.QuoteGroup == 2)
                {
                    newquotereq.auto_model_code        = null;
                    newquotereq.auto_model_code_source = null;
                }
            }
            if (request.AutoMoldCodeSource > 0)
            {
                newquotereq.auto_model_code_source = request.AutoMoldCodeSource;
            }
            //平安备注
            if (!string.IsNullOrWhiteSpace(request.Remark))
            {
                newquotereq.pa_remark = request.Remark;
            }
            else
            {
                newquotereq.pa_remark = string.Empty;
            }
            //时间戳支持
            if (!string.IsNullOrWhiteSpace(request.BizTimeStamp))
            {
                newquotereq.biz_start_date =
                    DateTime.Parse(request.BizTimeStamp.UnixTimeToDateTime().ToString("yyyy-MM-dd HH") +
                                   ":00:00");
            }
            //else
            //{
            //    newquotereq.biz_start_date = null;
            //}
            if (!string.IsNullOrWhiteSpace(request.ForceTimeStamp))
            {
                newquotereq.force_start_date =
                    DateTime.Parse(request.ForceTimeStamp.UnixTimeToDateTime().ToString("yyyy-MM-dd HH") +
                                   ":00:00");
            }
            //else
            //{
            //    newquotereq.force_start_date = null;
            //}
            //商业险短时起保
            if (!string.IsNullOrWhiteSpace(request.BizShortEndDate))
            {
                newquotereq.biz_end_date =
                    DateTime.Parse(request.BizShortEndDate.UnixTimeToDateTime().ToString("yyyy-MM-dd HH") +
                                   ":00:00");
                newquotereq.IsShortQuote = 1;
            }
            else
            {
                newquotereq.biz_end_date = null;
                newquotereq.IsShortQuote = 0;
            }
            //if (request.IsPublic > 0)
            //{
            //    newquotereq.is_public = request.IsPublic;
            //}
            if (request.CarUsedType == 6 || request.CarUsedType == 7 || request.CarUsedType == 20)
            {
            }
            else
            {
                if (publictype > 0)
                {
                    newquotereq.is_public = publictype;
                }
            }
            if (request.ClauseType > 0)
            {
                newquotereq.clause_type = request.ClauseType;
            }
            if (request.FuelType > 0)
            {
                newquotereq.fuel_type = request.FuelType;
            }
            if (request.ProofType > 0)
            {
                newquotereq.proof_type = request.ProofType;
            }
            if (request.RunMiles > 0)
            {
                newquotereq.run_miles = request.RunMiles;
            }
            if (request.RateFactor4 > 0)
            {
                newquotereq.special_rate = request.RateFactor4;
            }
            if (request.LicenseColor > 0)
            {
                newquotereq.license_color = request.LicenseColor;
            }
            if (request.SeatCount > 0)
            {
                newquotereq.seat_count = request.SeatCount;
            }
            if (request.ExhaustScale > 0)
            {
                newquotereq.exhaust_scale = request.ExhaustScale;
            }
            if (request.PurchasePrice > 0)
            {
                newquotereq.PriceT = request.PurchasePrice;
            }
            newquotereq.drivlicense_cartype_name  = request.DriveLicenseTypeName;
            newquotereq.drivlicense_cartype_value = request.DriveLicenseTypeValue;
            if (!string.IsNullOrWhiteSpace(request.OwnerOrg))
            {
                newquotereq.ownerOrg = request.OwnerOrg;
            }
            if (!string.IsNullOrWhiteSpace(request.PolicyOrg))
            {
                newquotereq.policyOrg = request.PolicyOrg;
            }
            if (!string.IsNullOrWhiteSpace(request.RenBaoRateSplit))
            {
                newquotereq.renBaoRateSplit = request.RenBaoRateSplit; //.ToJson();
            }
            //特殊折扣申请
            if (request.SpecialDiscount > 0)
            {
                newquotereq.special_discount_application = request.SpecialDiscount;
            }
            //是否修改座位数
            if (request.SeatUpdated != -1)
            {
                newquotereq.seatflag = request.SeatUpdated;
            }
            //太平洋实际折扣系数 20180725by gpj
            newquotereq.ActualDiscounts = request.ActualDiscounts;
            newquotereq.VehicleAlias    = request.VehicleAlias;
            newquotereq.VehicleYear     = request.VehicleYear;

            if (string.IsNullOrWhiteSpace(request.DiscountJson))
            {
                newquotereq.TrCausesWhy           = "";
                newquotereq.SubmitRate            = 0;
                newquotereq.ChannelRate           = 0;
                newquotereq.actualdiscounts_ratio = "";
            }
            else
            {
                //前端传折扣json进来
                List <DiscountViewModel> dclist = new List <DiscountViewModel>();
                try
                {
                    //将折扣json转成对象
                    dclist = request.DiscountJson.FromJson <List <DiscountViewModel> >();
                }
                catch (Exception ex)
                {
                }
                if (dclist.Any())
                {
                    //拼接actualdiscounts_ratio的数组
                    Dictionary <int, decimal> dictionary = new Dictionary <int, decimal>();
                    foreach (var dc in dclist)
                    {
                        if (dc.Source == 1)
                        {//兼容之前逻辑,把太平洋单独字段存ActualDiscounts中
                            newquotereq.ActualDiscounts = dc.AD;
                        }
                        if (dc.Source == 2)
                        {//平安单独保存3个字段
                            newquotereq.TrCausesWhy = dc.TRCR;
                            newquotereq.SubmitRate  = dc.SR;
                            newquotereq.ChannelRate = dc.CR;
                        }
                        //其他折扣率直接存json
                        dictionary.Add(SourceGroupAlgorithm.GetOldSource(dc.Source), dc.AD);
                    }
                    //只有当折扣率有值的时候才保存进来//不过此处肯定有值,除非参数有问题
                    if (dictionary.Any())
                    {
                        newquotereq.actualdiscounts_ratio = dictionary.ToJson();
                    }
                }
            }


            newquotereq.ActualSalesForceRatio = request.ActualSalesForceRatio;
            newquotereq.ActualSalesBizRatio   = request.ActualSalesBizRatio;
            newquotereq.ActualDtaryForceRatio = request.ActualDtaryForceRatio;
            newquotereq.ActualDtaryBizRatio   = request.ActualDtaryBizRatio;
            //是否暂存
            newquotereq.IsTempStorage = request.IsTempStorage;

            //平安底价报价
            newquotereq.IsPaFloorPrice = request.IsPaFloorPrice;
            newquotereq.DriverCard     = request.DriverCard;
            newquotereq.DriverCardType = request.DriverCardType;
            repository.Add(newquotereq);
        }