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); }
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); }
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()); }
/// <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); }
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); }
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); }
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); }
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()); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
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()); }
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); }