//public bool IsLicenseExist(GetReInfoRequest request) //{ // var buids = _userInfoRepository.FindBuidListByLicenseno(request.LicenseNo); // var fromAgentList = _transferRecordRepository.FindListByBuidList(buids); // var agents = _agentRepository.GetSonId(request.ChildAgent); // var agentsList = agents.Split(',').ToList(); // var isexist = fromAgentList.Any(x => agentsList.Contains(x.FromAgentId.ToString())); // return isexist; //} /// 判断是否有重复车辆 /// 一个顶级代理下只能续保一辆车 /// <param name="request"></param> /// <param name="isInAssign"></param> /// <returns></returns> public bx_userinfo IsExistLicense(GetReInfoRequest request, out bool isInAssign) { //是否在未分配的池子里 isInAssign = false; string topAgents = string.Empty; var listRecord = new List <bx_transferrecord>(); //根据车牌取出所有的当前agent var userinfos = _userInfoRepository.FindAgentListByLicenseNo(request.LicenseNo); //取出所有的agent的顶级代理 foreach (var item in userinfos) { if (!string.IsNullOrWhiteSpace(item.Agent)) { topAgents = _agentRepository.GetTopAgentId(int.Parse(item.Agent)); if (topAgents.Equals(request.Agent.ToString())) { listRecord = new List <bx_transferrecord>(); listRecord = _transferRecordRepository.FindByBuid(item.Id); if (listRecord.Any()) { if (listRecord[0].StepType == 6) { isInAssign = true; } } return(item); } } } return(null); }
public async void GetReInfo_WithNewLicense_ExpectCorrectResult(int agent, string licenseno, int citycode, string seccode) { GetReInfoRequest reInfoRequest = new GetReInfoRequest { AgentId = agent, LicenseNo = licenseno, CityCode = citycode, SecCode = seccode }; var pars = CommonHelper.EachProperties(reInfoRequest); _sutbAgentRepository.Setup(x => x.GetAgent(It.IsAny <int>())).Returns(new bx_agent { Id = 103, SecretKey = "1233", Mobile = "18310825788" }); _stubUserInfoRepository.Setup(x => x.FindByOpenIdAndLicense(It.IsAny <string>(), It.IsAny <string>())) .Returns(default(bx_userinfo)); _logService.Setup(x => x.LoginAccount(It.IsAny <string>())).Returns(GetAccount); _stubUserInfoRepository.Setup(x => x.Add(It.IsAny <bx_userinfo>())).Returns(1); ICarInsuranceService carInsuranceService = new CarInsuranceService(_stubSaveQuoteRepository.Object, _stubUserInfoRepository.Object, _logService.Object, _stubSubmitInfoRepository.Object, _stubQuoteResultRepository.Object, _stubLastInfoRepository.Object, _sutbAgentRepository.Object, _messageCenter.Object); var response = await carInsuranceService.GetReInfo(reInfoRequest, pars); Assert.AreEqual(HttpStatusCode.OK, response.Status); }
private async Task MoreCameraBindings(GetReInfoRequest request, string absolutori) { var apiConfig = ConfigurationManager.AppSettings["moreBindings"]; if (!string.IsNullOrWhiteSpace(apiConfig)) { var arr = apiConfig.Split(';'); foreach (string group in arr) { var agentlist = group.Split(','); for (int i = 0; i < agentlist.Length; i++) { if (i == 0 && request.Agent.ToString() == agentlist[0]) { for (int j = 1; j < agentlist.Length; j++) { await Task.Factory.StartNew(() => { GetRenewalRequest(int.Parse(agentlist[j]), (agentlist[j]).GetMd5().ToUpper(), request.LicenseNo, request.CityCode.ToString(), request.RenewalCarType.ToString(), absolutori, int.Parse(agentlist[j]), request.CameraId); }); } } else { break; } } } } }
public async Task <GetReInfoNewViewModel> GetReInfo(GetReInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri) { var viewModel = new GetReInfoNewViewModel(); #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/GetReInfo", uri.Host, uri.Port); //3,续保请求 BaseResponse rep = await SimulateGet(strUrl, pairs); if (rep.ErrCode == 1) { viewModel = rep.ErrMsg.FromJson <GetReInfoNewViewModel>(); } else { viewModel.BusinessStatus = rep.ErrCode; viewModel.StatusMessage = rep.ErrMsg; } bx_userinfo userinfo = _userInfoRepository.FindByOpenIdAndLicense(request.CustKey, request.LicenseNo, request.ChildAgent.ToString(), request.RenewalCarType); viewModel.Buid = userinfo != null ? userinfo.Id : 0; viewModel.Agent = baseResponse.Agent; viewModel.AgentName = baseResponse.AgentName; viewModel.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); viewModel.IsDistrib = userinfo != null ? userinfo.IsDistributed : 0; //添加续保通知,向bx_notice_xb插记录,商业险或交强险在90天范围之内 //20170111产品说再改吧,又不需要app的通知了 //if (userinfo != null) //{ // long noticeBuid = userinfo.Id; // _noticexbService.AddNoticexb(viewModel.UserInfo.LicenseNo, viewModel.UserInfo.BusinessExpireDate, // viewModel.UserInfo.ForceExpireDate, viewModel.UserInfo.NextBusinessStartDate, // viewModel.UserInfo.NextForceStartDate, viewModel.SaveQuote.Source, int.Parse(userinfo.Agent), noticeBuid, 1); //} #endregion return(viewModel); }
public long AddRenewalStatus(int status, GetReInfoRequest request) { bx_renewalstatus renewalStatus = new bx_renewalstatus { RenewalStatus = status, LicenseNo = request.LicenseNo, Agent = request.Agent.ToString(), CreateTime = DateTime.Now }; return(_renewalStatusrepository.Add(renewalStatus)); }
public GetReInfoNewViewModel GetReInfoDetail(GetReInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri) { var viewModel = new GetReInfoNewViewModel(); #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/Bjd/GetReInfoDetail", uri.Host, uri.Port); //3,续保请求 BaseResponse rep = SimulateSyncGet(strUrl, pairs); var model = new AppReInfoViewModel(); if (rep.ErrCode == 1) { model = rep.ErrMsg.FromJson <AppReInfoViewModel>(); viewModel.BusinessStatus = model.BusinessStatus; viewModel.StatusMessage = model.StatusMessage; viewModel.UserInfo = model.UserInfo; viewModel.SaveQuote = model.SaveQuote; viewModel.Buid = model.Buid; viewModel.Agent = baseResponse.Agent; viewModel.AgentName = baseResponse.AgentName; } else { viewModel.BusinessStatus = rep.ErrCode; viewModel.StatusMessage = rep.ErrMsg; bx_userinfo userinfo = _userInfoRepository.FindByOpenIdAndLicense(request.CustKey, request.LicenseNo, request.ChildAgent.ToString(), request.RenewalCarType); viewModel.Buid = userinfo != null ? userinfo.Id : 0; viewModel.Agent = baseResponse.Agent; viewModel.AgentName = baseResponse.AgentName; } #endregion return(viewModel); }
public HttpResponseMessage GetReInfoDetail([FromUri] GetReInfoRequest request) { _logAppInfo.Info(string.Format("获取续保详情接口请求串:{0}", Request.RequestUri)); var viewModel = new GetReInfoNewViewModel(); if (!ModelState.IsValid) { viewModel.BusinessStatus = -10000; string msg = ModelState.Values.Where(a => a.Errors.Count == 1).Aggregate(string.Empty, (current, a) => current + (a.Errors[0].ErrorMessage + "; ")); viewModel.StatusMessage = "输入参数错误," + msg; return(viewModel.ResponseToJson()); } viewModel = _appAchieveService.GetReInfoDetail(request, Request.GetQueryNameValuePairs(), Request.RequestUri); //_logAppInfo.Info(string.Format("获取续保详情接口返回值:{0}", viewModel.ToJson())); return(viewModel.ResponseToJson()); }
public static bx_userinfo Find(GetReInfoRequest request, IUserInfoRepository infoRepository) { bx_userinfo userinfo = null; switch (request.IsLastYearNewCar) { case 1: userinfo = infoRepository.FindByOpenIdAndLicense(request.CustKey, request.LicenseNo, request.Agent.ToString(), request.RenewalCarType); break; case 2: userinfo = infoRepository.FindByCarvin(request.CarVin, request.CustKey, request.Agent.ToString(), request.RenewalCarType); break; } return(userinfo); }
public async void GetReInfo_WithNotExistMobile_ExpectHttpStatusCode_Forbidden(int agent, string licenseno, int citycode, string seccode) { GetReInfoRequest reInfoRequest = new GetReInfoRequest { AgentId = agent, LicenseNo = licenseno, CityCode = citycode, SecCode = seccode }; var pars = CommonHelper.EachProperties(reInfoRequest); _sutbAgentRepository.Setup(x => x.GetAgent(It.IsAny <int>())).Returns <bx_agent>(null); ICarInsuranceService carInsuranceService = new CarInsuranceService(_stubSaveQuoteRepository.Object, _stubUserInfoRepository.Object, _logService.Object, _stubSubmitInfoRepository.Object, _stubQuoteResultRepository.Object, _stubLastInfoRepository.Object, _sutbAgentRepository.Object, _messageCenter.Object); var response = await carInsuranceService.GetReInfo(reInfoRequest, pars); Assert.AreEqual(HttpStatusCode.Forbidden, response.Status); }
public async void FetchReInsuranceInfo_Get_NoSaveQuote_Returns_10002() { GetReInfoRequest request = new GetReInfoRequest { AgentId = 103, CityCode = 1, SecCode = "XSFSDSFD" }; CarInsuranceController controller = new CarInsuranceController(_carInsuranceService.Object) { Request = new HttpRequestMessage { Properties = { { HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration() } } } }; _carInsuranceService.Setup(x => x.GetReInfo(request, controller.Request.GetQueryNameValuePairs())).Returns(GetReInfo_SaveQuote_NOFound); HttpResponseMessage message = await controller.FetchReInsuranceInfo(request); NUnit.Framework.Assert.AreEqual(-10002, message.Content.ReadAsAsync <GetReInfoViewModel>().Result.BusinessStatus); }
// [EnableThrottling()] public async Task <HttpResponseMessage> FetchReInsuranceInfo([FromUri] GetReInfoRequest request) { _logAppInfo.Info(string.Format("App请求续保接口请求串:{0}", Request.RequestUri)); var viewModel = new GetReInfoNewViewModel(); if (!ModelState.IsValid) { viewModel.BusinessStatus = -10000; string msg = ModelState.Values.Where(a => a.Errors.Count == 1).Aggregate(string.Empty, (current, a) => current + (a.Errors[0].ErrorMessage + "; ")); viewModel.StatusMessage = "输入参数错误," + msg; return(viewModel.ResponseToJson()); } //if (request.RenewalType == 6 || request.RenewalType == 7) //{ // viewModel.BusinessStatus = 0; // return viewModel.ResponseToJson(); //} viewModel = await _workOrderService.GetReInfo(request, Request.GetQueryNameValuePairs(), Request.RequestUri); _logAppInfo.Info(string.Format("App请求续保接口返回值:{0}", viewModel.ToJson())); return(viewModel.ResponseToJson()); }
public static GetReInfoViewModel GetReInfo(GetReInfoRequest request) { var viewModel = new GetReInfoViewModel(); UserInfoViewModel UserInfo = new UserInfoViewModel(); UserInfo.CarUsedType = 1; UserInfo.LicenseNo = "京FF1234"; UserInfo.LicenseOwner = "姚毅"; UserInfo.InsuredName = "姚毅"; UserInfo.PostedName = "姚毅"; UserInfo.IdType = 1; UserInfo.CredentislasNum = "110108196905241319"; UserInfo.CityCode = 1; UserInfo.EngineNo = "266832"; UserInfo.ModleName = "奥迪FV6461HBQWG多用途乘用车"; UserInfo.CarVin = "LFV3B28R4D3065341"; UserInfo.RegisterDate = "2014-01-26"; UserInfo.ForceExpireDate = "2017-01-19"; UserInfo.BusinessExpireDate = "2017-01-19"; UserInfo.NextForceStartDate = "2017-01-20"; UserInfo.NextBusinessStartDate = "2017-01-20"; UserInfo.PurchasePrice = 433710; UserInfo.SeatCount = 5; UserInfo.FuelType = 1; UserInfo.ProofType = 0; UserInfo.LicenseColor = 0; UserInfo.ClauseType = 0; UserInfo.RunRegion = 1; UserInfo.InsuredIdCard = "110108196905241319"; UserInfo.InsuredIdType = 1; UserInfo.InsuredMobile = ""; UserInfo.HolderIdCard = "110108196905241319"; UserInfo.HolderIdType = 1; UserInfo.HolderMobile = ""; UserInfo.RateFactor1 = 0; UserInfo.RateFactor2 = 0; UserInfo.RateFactor3 = 0; UserInfo.RateFactor4 = 0; viewModel.UserInfo = UserInfo; SaveQuoteViewModel SaveQuote = new SaveQuoteViewModel(); SaveQuote.Source = 0; SaveQuote.CheSun = 433710; SaveQuote.SanZhe = 500000; SaveQuote.DaoQiang = 342630.9; SaveQuote.SiJi = 0; SaveQuote.ChengKe = 0; SaveQuote.BoLi = 1; SaveQuote.HuaHen = 0; //SaveQuote.CheDeng = 0; SaveQuote.SheShui = 0; SaveQuote.ZiRan = 0; SaveQuote.BuJiMianChengKe = 0; SaveQuote.BuJiMianSiJi = 0; SaveQuote.BuJiMianHuaHen = 0; SaveQuote.BuJiMianSheShui = 0; SaveQuote.BuJiMianZiRan = 0; SaveQuote.BuJiMianJingShenSunShi = 0; SaveQuote.BuJiMianCheSun = 1; SaveQuote.BuJiMianSanZhe = 1; SaveQuote.BuJiMianDaoQiang = 1; // SaveQuote.BuJiMianRenYuan = 0; //SaveQuote.BuJiMianFuJia = 0; SaveQuote.HcSanFangTeYue = 0; SaveQuote.HcJingShenSunShi = 0; viewModel.SaveQuote = SaveQuote; viewModel.CustKey = request.CustKey; viewModel.BusinessStatus = 1; viewModel.StatusMessage = "续保成功"; return(viewModel); }
public async Task <HttpResponseMessage> FetchCarInfo([FromUri] GetReInfoRequest request) { return(null); }
public async Task <GetReInfoNewViewModel> GetReInfo(GetReInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri) { //返回对象 var viewModel = new GetReInfoNewViewModel(); #region 校验 //bhToken校验 if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) { viewModel.BusinessStatus = -300; viewModel.StatusMessage = "登录信息已过期,请重新登录"; return(viewModel); } //传参校验 if (!AppValidateReqest(pairs, request.SecCode)) { viewModel.BusinessStatus = -301; viewModel.StatusMessage = "参数校验失败"; return(viewModel); } //代理人信息校验 if (request.Agent == request.ChildAgent) { IBxAgent childagentModel = GetAgentModelFactory(request.ChildAgent); //1,当前代理人是否可用; if (!childagentModel.AgentCanUse()) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } //2,顶级代理人是否可用; if (!_agentService.IsTopAgentId(request.Agent)) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } } else { var childagentModel = GetAgentModelFactory(request.ChildAgent); if (!childagentModel.AgentCanUse()) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } var agentModel = GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } if (!_agentService.IsTopAgentId(request.Agent)) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } //3,当前代理人是否在顶级代理人下 if (!_agentRepository.GetTopAgentId(request.ChildAgent).Contains(request.Agent.ToString())) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } } #endregion //是否在未分配的池子里 //bool isInAssign = false; //1,校验重复数据 //userinfo 顶级代理下的所有代理,出过的车,存在就提示 //原来userinfo里的记录 //var bxUserinfo = IsExistLicense(request, out isInAssign); //拼接请求串 var sb = new StringBuilder(); sb.Append("?"); bool isAndroid = true; foreach (KeyValuePair <string, string> pair in pairs) { if (pair.Key.ToLower() == "renewaltype") { isAndroid = false; sb.Append(string.Format("{0}={1}&", pair.Key, pair.Value)); } //else if (pair.Key.ToLower() == "childagent") //{ // //******************** // //判断是否是新入店车辆 // sb.Append(bxUserinfo != null // ? string.Format("{0}={1}&", pair.Key, bxUserinfo.Agent) // : string.Format("{0}={1}&", pair.Key, pair.Value)); //} //else if (pair.Key.ToLower() == "custkey") //{ // //******************** // //判断是否是新入店车辆 // sb.Append(bxUserinfo != null // ? string.Format("{0}={1}&", pair.Key, bxUserinfo.OpenId) // : string.Format("{0}={1}&", pair.Key, pair.Value)); //} else { sb.Append(string.Format("{0}={1}&", pair.Key, pair.Value)); } } if (isAndroid) { sb.Append(string.Format("RenewalType={0}&", 7)); } sb.Remove(sb.Length - 1, 1); string geturl = string.Format("http://{0}/api/CarInsurance/GetReInfo{1}", uri.Host + ":" + uri.Port, sb.ToString()); //2,分配 //给续保车分配续保顾问 //******************** //判断是否是新入店车辆 //var advAgent = bxUserinfo != null ? GetAgentModelFactory(int.Parse(bxUserinfo.Agent)) : GetAgentModelFactory(request.ChildAgent); var advAgent = GetAgentModelFactory(request.ChildAgent); int userinfoAgent = 0;//查询原来的userinfo用 //******************** //判断是否是新入店车辆 //if (bxUserinfo != null) //{ // userinfoAgent = int.Parse(bxUserinfo.Agent); //} //else //{ userinfoAgent = request.ChildAgent > 0 ? request.ChildAgent : request.Agent; //} //3,续保 string strGetMsg = string.Empty; using (var client = new HttpClient()) { var clientResult = client.GetAsync(geturl).Result; if (clientResult.StatusCode.ToString().Equals("429")) { viewModel.BusinessStatus = -429; viewModel.StatusMessage = "请求客户端过多,请稍候再试"; return(viewModel); } if (clientResult.IsSuccessStatusCode) { strGetMsg = await clientResult.Content.ReadAsStringAsync(); } if (string.IsNullOrWhiteSpace(strGetMsg)) { viewModel.BusinessStatus = -10002; viewModel.StatusMessage = "获取到续保信息失败"; return(viewModel); } viewModel = strGetMsg.FromJson <GetReInfoNewViewModel>(); viewModel.Agent = advAgent.Id; //******************** //判断是否是新入店车辆 //if (bxUserinfo != null) //{ // viewModel.AgentName = !isInAssign ? advAgent.AgentName : "未分配"; //} //else //{ // viewModel.AgentName = "未分配"; //} viewModel.AgentName = advAgent.AgentName; } //插入意向 //4,插入续保修改人日志 // var newBxUserinfo = new bx_userinfo(); //******************** //判断是否是新入店车辆 //if (bxUserinfo == null) //{ newBxUserinfo = GetUserInfo(request.LicenseNo, userinfoAgent.ToString()); //if (newBxUserinfo == null) //{ // viewModel.BusinessStatus = -10002; // viewModel.StatusMessage = "获取到续保信息失败"; // return viewModel; //} //修改userinfo //newBxUserinfo.OpenId = advAgent.OpenId; //newBxUserinfo.Agent = advAgent.Id.ToString(); //if (_userInfoRepository.Update(newBxUserinfo) > 0) //{ // viewModel.CustKey = advAgent.OpenId; //} //} //if (bxUserinfo != null) //{ // //返回当前记录的buid // viewModel.Buid = bxUserinfo.Id; // //插入续保修改记录 // AddChangeLog(bxUserinfo.Id, userinfoAgent, request.ChildAgent, 1);//第一步 // if (!isInAssign) // {//如果不在未分配的池子里 // AddChangeLog(bxUserinfo.Id, request.ChildAgent, advAgent.Id, 2); //第二步 // } // else // { // AddChangeLog(bxUserinfo.Id, request.ChildAgent, advAgent.Id, 6); //第二步 // } //} //else //{ //返回当前记录的buid viewModel.Buid = newBxUserinfo.Id; //插入续保修改记录 AddChangeLog(newBxUserinfo.Id, userinfoAgent, 0, 1); //第一步 //AddChangeLog(newBxUserinfo.Id, userinfoAgent, advAgent.Id, 6); //第二步 //} //******************** //判断是否是新入店车辆 //if (bxUserinfo == null) //{ //5,添加分配通知 //20170405修改,不发分配通知 //var msgRequest = new AddMessageRequest //{ // Body = request.LicenseNo, // MsgType = 6, // ToAgentId = advAgent.Id, // MsgLevel = 1, // SendTime = DateTime.Now.ToString(), // ChildAgent = request.ChildAgent, // LicenseNo = request.LicenseNo, // Buid = newBxUserinfo.Id //}; //_messageService.AddMessage(msgRequest); //} //6,添加续保通知,向bx_notice_xb插记录,商业险或交强险在90天范围之内 //long noticeBuid = bxUserinfo != null ? bxUserinfo.Id : newBxUserinfo.Id; //if (viewModel.UserInfo != null) //{ // _noticexbService.AddNoticexb(viewModel.UserInfo.LicenseNo, viewModel.UserInfo.BusinessExpireDate, // viewModel.UserInfo.ForceExpireDate, viewModel.UserInfo.NextBusinessStartDate, // viewModel.UserInfo.NextForceStartDate, viewModel.SaveQuote.Source, advAgent.Id, noticeBuid, 1); //} return(viewModel); }
public string CheckXuBao(GetReInfoRequest request) { string msg = string.Empty; if (string.IsNullOrWhiteSpace(request.LicenseNo) && string.IsNullOrWhiteSpace(request.CarVin)) { msg = "请检查您的输入参数。1,如果按照车牌号续保,请填写 Licenseno参数;2,如果按照车架号和发动机号续保,请完善CarVin和Engineno参数(太平洋、平安只需要CarVin参数)"; } //校验车牌号 if (!string.IsNullOrWhiteSpace(request.LicenseNo) && string.IsNullOrWhiteSpace(request.CarVin)) { if (!request.LicenseNo.IsValidLicenseno()) { msg = "请输入正确的车牌号"; } } if (request.IsLastYearNewCar == 2 && string.IsNullOrWhiteSpace(request.CarVin)) { msg = "请检查您的输入参数,如果按照车架号和发动机号续保,请完善CarVin和Engineno参数(太平洋、平安只需要CarVin参数)"; } //续保特殊代理人只允许续保自己开通城市 try { #region 临时 if (request.Agent == 68612) { if (request.CityCode != 13 && request.CityCode != 14) { return("代理人还未开通该城市"); } } #endregion else { string strConfig = _getConfigValueService.GetConfigValue("ReInfoOnlyQuoteConfig", 1, "ReInfoOnlyQuoteConfig"); if (string.IsNullOrEmpty(strConfig)) { //如果配置没有信息,直接返回结果 return(msg); } #region 如果取到配置信息 //根据","拆分不同的代理人 string[] reAgent = strConfig.Split(','); //reAgent没配置直接返回msg if (reAgent.Length < 1) { return(msg); } //如果代理人不在配置内,直接返回之前的msg if (Array.IndexOf(reAgent, request.Agent.ToString()) == -1) { return(msg); } List <int> listAgent = _agentConfigByCityService.GetConfigCityList(request.Agent); //如果没拿到配置城市,直接返回msg if (listAgent == null || !listAgent.Any()) { return(msg); } if (!listAgent.Contains(request.CityCode)) { return("代理人还未开通该城市"); } } } catch (Exception ex) { logError.Info("续保特殊代理人只允许开通城市发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException + " 请求对象:" + request.ToJson()); } #endregion return(msg); }
public async Task <GetReInfoViewModel> GetViewModel(GetReInfoRequest request, GetReInfoResponse response, int viewCityCode, string viewCustkey, int topAgent, string absolutori, BHFunctionLog fucnLog, string traceId) { GetReInfoViewModel viewModel = new GetReInfoViewModel(); if (response.Status == HttpStatusCode.BadRequest || response.Status == HttpStatusCode.Forbidden) { viewModel.BusinessStatus = -10001; if (!string.IsNullOrWhiteSpace(response.BusinessMessage)) { viewModel.StatusMessage = response.BusinessMessage; } else { viewModel.StatusMessage = "参数校验错误,请检查您的校验码"; } return(viewModel); } if (response.Status == HttpStatusCode.ExpectationFailed) { viewModel.BusinessStatus = -10003; viewModel.StatusMessage = "服务发生异常"; return(viewModel); } else { viewModel.BusinessStatus = response.BusinessStatus; viewModel.StatusMessage = response.BusinessMessage; fucnLog = LogAssistant.GenerateBHFuncLog(traceId, "续保信息的userinfo部分", "ConvertToViewModel", 1); AspectF.Define.InfoFunctionLog(fucnLog).Do(() => { viewModel.UserInfo = response.UserInfo.ConvertToViewModel(response.SaveQuote, response.CarInfo, response.LastInfo, request.TimeFormat); }); //显示商业险交强险投保单号 if (request.CanShowNo == 0) { viewModel.UserInfo.BizNo = null; viewModel.UserInfo.ForceNo = null; } if (request.CanShowExhaustScale == 0) { viewModel.UserInfo.ExhaustScale = null; } viewModel.UserInfo.IsPublic = response.ReqCarinfo == null ? 0 : (response.ReqCarinfo.is_public.HasValue ? response.ReqCarinfo.is_public.Value : 0); if (request.ShowAutoMoldCode == 1) { viewModel.UserInfo.AutoMoldCode = response.ReqCarinfo == null ? string.Empty : (string.IsNullOrWhiteSpace(response.ReqCarinfo.auto_model_code) ? string.Empty : response.ReqCarinfo.auto_model_code); } #region 关系人星号判断 if (request.RenewalType == 2) { viewModel.UserInfo = _reWriteUserInfo.ReWriteUserInfoService(viewModel.UserInfo, topAgent); } #endregion viewModel.UserInfo.CityCode = viewCityCode; viewModel.CustKey = viewCustkey; if (response.BusinessStatus == 1) { viewModel.SaveQuote = response.SaveQuote.ConvetToViewModel(); //addbygupj 20180926 续保返回保费 if (request.ShowBaoFei == 1) { viewModel.XianZhong = response.RenewalPremium.ConvetToViewModel(response.SaveQuote); } if (request.Group > 0) { //此处原先if判断,改为调用转换方法 by.20180904.gpj viewModel.SaveQuote.Source = SourceGroupAlgorithm.GetNewSource(Convert.ToInt32(viewModel.SaveQuote.Source)); } } else { viewModel.SaveQuote = new SaveQuoteViewModel(); viewModel.SaveQuote.HcXiuLiChang = "0"; viewModel.SaveQuote.HcXiuLiChangType = "-1"; viewModel.SaveQuote.Fybc = "0"; viewModel.SaveQuote.FybcDays = "0"; viewModel.SaveQuote.SheBeis = new List <SheBei>(); viewModel.SaveQuote.SheBeiSunShi = "0"; viewModel.SaveQuote.BjmSheBeiSunShi = "0"; viewModel.SaveQuote.SanZheJieJiaRi = "0"; //addbygupj 20180926 续保返回保费 if (request.ShowBaoFei == 1) { viewModel.XianZhong = new XianZhong() { CheSun = new XianZhongUnit(), SanZhe = new XianZhongUnit(), DaoQiang = new XianZhongUnit(), SiJi = new XianZhongUnit(), ChengKe = new XianZhongUnit(), BoLi = new XianZhongUnit(), HuaHen = new XianZhongUnit(), BuJiMianCheSun = new XianZhongUnit(), BuJiMianSanZhe = new XianZhongUnit(), BuJiMianDaoQiang = new XianZhongUnit(), BuJiMianFuJia = new XianZhongUnit(), BuJiMianChengKe = new XianZhongUnit(), BuJiMianSiJi = new XianZhongUnit(), BuJiMianHuaHen = new XianZhongUnit(), BuJiMianSheShui = new XianZhongUnit(), BuJiMianZiRan = new XianZhongUnit(), BuJiMianJingShenSunShi = new XianZhongUnit(), SheShui = new XianZhongUnit(), ZiRan = new XianZhongUnit(), HcSheBeiSunshi = new XianZhongUnit(), HcHuoWuZeRen = new XianZhongUnit(), HcJingShenSunShi = new XianZhongUnit(), HcSanFangTeYue = new XianZhongUnit(), HcXiuLiChang = new XianZhongUnit(), Fybc = new XianZhongUnit(), FybcDays = new XianZhongUnit(), SheBeiSunShi = new XianZhongUnit(), BjmSheBeiSunShi = new XianZhongUnit() }; } } if (response.CenterPicCodeCacheModel != null) { if (viewModel.PACheckCode == null) { viewModel.PACheckCode = new PACheckCode(); } viewModel.PACheckCode.VerificationCode = response.CenterPicCodeCacheModel.VerificationCode; viewModel.PACheckCode.RequestKey = response.CenterPicCodeCacheModel.RequestKey; viewModel.PACheckCode.PAUKey = int.Parse(response.CenterPicCodeCacheModel.UKey); } if (response.BusinessStatus == 1) { viewModel.StatusMessage = "续保成功"; } else if (response.BusinessStatus == 2) { viewModel.StatusMessage = "需要完善行驶证信息(车辆信息和险种都没有获取到)"; } else if (response.BusinessStatus == 3) { viewModel.StatusMessage = "获取车辆信息成功(车架号,发动机号,品牌型号及初登日期),险种获取失败"; } else if (response.BusinessStatus == -10002) { viewModel.StatusMessage = "获取续保信息失败"; } else if (response.BusinessStatus == 8) { viewModel.UserInfo.ForceExpireDate = response.LastInfo.last_end_date; viewModel.UserInfo.BusinessExpireDate = response.LastInfo.last_business_end_date; if (!string.IsNullOrWhiteSpace(viewModel.UserInfo.ForceExpireDate)) { var nb = DateTime.Parse(viewModel.UserInfo.ForceExpireDate); if (nb.Date == DateTime.MinValue.Date) { viewModel.UserInfo.ForceExpireDate = ""; } } if (!string.IsNullOrWhiteSpace(viewModel.UserInfo.BusinessExpireDate)) { var nb = DateTime.Parse(viewModel.UserInfo.BusinessExpireDate); if (nb.Date == DateTime.MinValue.Date) { viewModel.UserInfo.BusinessExpireDate = ""; } } viewModel.StatusMessage = "投保公司:" + response.BusinessMessage + ";该车是续保期外的车或者是投保我司对接外的其他保险公司的车辆,这种情况,只能返回该车的投保日期(ForceExpireDate,BusinessExpireDate),险种取不到,不再返回"; viewModel.BusinessStatus = 1; } #region 广州人财保 特殊判断,屏蔽平安关系人,按一定比例不返回保司 if (_gzcbAgentId.Equals(request.Agent.ToString())) { #region 屏蔽关系人 if (_reInfoNoRelationSource.Split(new Char[] { ',' }).Contains(viewModel.SaveQuote.Source.ToString())) { viewModel.UserInfo.LicenseOwner = ""; viewModel.UserInfo.InsuredName = ""; viewModel.UserInfo.PostedName = ""; viewModel.UserInfo.IdType = 0; viewModel.UserInfo.CredentislasNum = ""; viewModel.UserInfo.InsuredIdCard = ""; viewModel.UserInfo.InsuredIdType = 0; viewModel.UserInfo.InsuredMobile = ""; viewModel.UserInfo.HolderName = ""; viewModel.UserInfo.HolderIdCard = ""; viewModel.UserInfo.HolderIdType = 0; viewModel.UserInfo.HolderMobile = ""; viewModel.UserInfo.OwnerSex = ""; viewModel.UserInfo.OwnerBirthday = ""; viewModel.UserInfo.InsuredSex = ""; viewModel.UserInfo.InsuredBirthday = ""; viewModel.UserInfo.HolderSex = ""; viewModel.UserInfo.HolderBirthday = ""; } #endregion #region 重置source为-1 未取到保司 if (_isFalseReInfoService.IsFalseReInfo(request.Agent) && _reInfoFailedSource.Split(new Char[] { ',' }).Contains(viewModel.SaveQuote.Source.ToString())) { viewModel.SaveQuote.Source = -1; } #endregion } #endregion #region 爱保的只返回上年投保是人保的关系人信息 //根据","拆分不同的代理人 if (!string.IsNullOrEmpty(_reInfoClearRelation)) { string[] reAgent = _reInfoClearRelation.Split(';'); foreach (var itAgent in reAgent) { //获取代理人配置 string[] itemConfig = itAgent.Split(','); //代理人配置读取,跟当前代理人比较 if (itemConfig[0].Equals(request.Agent.ToString())) { //根据.来拆分有哪些保司,不是授权的保司就置空关系人 if (!itemConfig[1].Split(new Char[] { '.' }).Contains(viewModel.SaveQuote.Source.ToString())) { viewModel.UserInfo.LicenseOwner = ""; viewModel.UserInfo.InsuredName = ""; viewModel.UserInfo.PostedName = ""; viewModel.UserInfo.IdType = 0; viewModel.UserInfo.CredentislasNum = ""; viewModel.UserInfo.InsuredIdCard = ""; viewModel.UserInfo.InsuredIdType = 0; viewModel.UserInfo.InsuredMobile = ""; viewModel.UserInfo.HolderName = ""; viewModel.UserInfo.HolderIdCard = ""; viewModel.UserInfo.HolderIdType = 0; viewModel.UserInfo.HolderMobile = ""; viewModel.UserInfo.OwnerSex = ""; viewModel.UserInfo.OwnerBirthday = ""; viewModel.UserInfo.InsuredSex = ""; viewModel.UserInfo.InsuredBirthday = ""; viewModel.UserInfo.HolderSex = ""; viewModel.UserInfo.HolderBirthday = ""; } break; } } } #endregion if (response.BusinessStatus != 1) { viewModel.SaveQuote.Source = -1; } if (request.ShowXiuLiChangType == 0) { viewModel.SaveQuote.HcXiuLiChang = null; viewModel.SaveQuote.HcXiuLiChangType = null; } if (request.ShowFybc == 0) { viewModel.SaveQuote.Fybc = null; viewModel.SaveQuote.FybcDays = null; } if (request.ShowSheBei == 0) { viewModel.SaveQuote.SheBeis = null; viewModel.SaveQuote.SheBeiSunShi = null; viewModel.SaveQuote.BjmSheBeiSunShi = null; } if (request.ShowSanZheJieJiaRi == 0) { viewModel.SaveQuote.SanZheJieJiaRi = null; } } if (request.ShowInnerInfo == 0) { viewModel.UserInfo.Buid = null; } if (request.ShowRenewalCarType == 0) { viewModel.UserInfo.RenewalCarType = null; } if (request.ShowCarType == 0) { viewModel.UserInfo.CarType = null; } if (request.ShowOrg == 0) { viewModel.UserInfo.Organization = null; } if (request.ShowRelation == 0) { viewModel.UserInfo.OwnerBirthday = null; viewModel.UserInfo.OwnerSex = null; viewModel.UserInfo.HolderBirthday = null; viewModel.UserInfo.HolderSex = null; viewModel.UserInfo.InsuredBirthday = null; viewModel.UserInfo.InsuredSex = null; } if (request.ShowExpireDateNum == 1) { //计算还剩多少天 if (viewModel.UserInfo != null) { int dayminus = 0; if (!string.IsNullOrEmpty(viewModel.UserInfo.ForceExpireDate)) { dayminus = TimeHelper.GetDayMinus(DateTime.Parse(viewModel.UserInfo.ForceExpireDate), DateTime.Now); } else if (!string.IsNullOrEmpty(viewModel.UserInfo.BusinessExpireDate)) { dayminus = TimeHelper.GetDayMinus(DateTime.Parse(viewModel.UserInfo.BusinessExpireDate), DateTime.Now); } viewModel.UserInfo.ExpireDateNum = dayminus.ToString(); } } else { viewModel.UserInfo.ExpireDateNum = null; } if (request.ShowPACheckCode == 0) { viewModel.PACheckCode = null; } if (request.ShowTransferModel == 0) { viewModel.TransferModelList = null; } else { if (response.TransferModelList != null && response.TransferModelList.Any()) { viewModel.TransferModelList = response.TransferModelList.ConvertToViewModel(); } else { viewModel.TransferModelList = new List <Models.ReportModel.TransferModelNew>(); } } //addbygupj 20180926 续保返回保费 if (request.ShowBaoFei == 0) { viewModel.XianZhong = null; } //if (request.ShowRenewalCarModel == 1) //{ // if (response.CarModel != null) // { // string yearday = string.Empty; // if (string.IsNullOrWhiteSpace(response.CarModel.VehicleYear)) // { // yearday = string.Empty; // } // else if (response.CarModel.VehicleYear.Length == 4) // { // yearday = response.CarModel.VehicleYear; // } // else if (response.CarModel.VehicleYear.Length >= 6) // { // yearday = response.CarModel.VehicleYear.Substring(0, 6); // } // viewModel.UserInfo.RenewalCarModel = string.Format("{0}/{1}/{2}/{3}/{4}/{5}", // response.CarModel.VehicleName, response.CarModel.VehicleAlias, // response.CarModel.VehicleExhaust.HasValue // ? response.CarModel.VehicleExhaust.Value.ToString("f3") // : "0", response.CarModel.VehicleSeat, // response.CarModel.PriceT.HasValue ? response.CarModel.PriceT.Value.ToString("f1") : "0" // , yearday); // } // else // { // viewModel.UserInfo.RenewalCarModel = string.Empty; // } //} #region 摄像头用户向第三方推送续保消息 if (request.RenewalType == 3) { fucnLog = LogAssistant.GenerateBHFuncLog(traceId, "续保调用第三方接口传数据", "PostThirdPart", 1); AspectF.Define.InfoFunctionLog(fucnLog).Do(() => { _postThirdPartService.PostThirdPart(topAgent, viewModel); }); } #endregion #region 多家绑定摄像头 if (request.RenewalType == 3) { if (request.Agent == 88794) { fucnLog = LogAssistant.GenerateBHFuncLog(traceId, "绑定摄像头,获取续保信息", "GetRenewalRequest", 1); AspectF.Define.InfoFunctionLog(fucnLog).Do(() => { Task.Factory.StartNew(() => { GetRenewalRequest(88798, ("88798").GetMd5().ToUpper(), request.LicenseNo, request.CityCode.ToString(), request.RenewalCarType.ToString(), absolutori, 88798, request.CameraId); }); }); fucnLog = LogAssistant.GenerateBHFuncLog(traceId, "绑定摄像头,获取续保信息", "GetRenewalRequest", 1); AspectF.Define.InfoFunctionLog(fucnLog).Do(() => { Task.Factory.StartNew(() => { GetRenewalRequest(88797, ("88797").GetMd5().ToUpper(), request.LicenseNo, request.CityCode.ToString(), request.RenewalCarType.ToString(), absolutori, 88797, request.CameraId); }); }); } } //改成配置 fucnLog = LogAssistant.GenerateBHFuncLog(traceId, "更多摄像头绑定", "MoreCameraBindings", 1); await AspectF.Define.InfoFunctionLog(fucnLog).Return(() => { return(MoreCameraBindings(request, absolutori)); }); #endregion return(viewModel); }
public async Task<GetIntelligentReInfoResponse> GetIntelligentReInfo(GetIntelligentReInfoRequest request, IEnumerable<KeyValuePair<string, string>> pairs) { var response = new GetIntelligentReInfoResponse(); var isReadCache = true; try { //代理人校验 IBxAgent agentModel = _getAgentInfoService.GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; if (agentModel.endDate.HasValue && agentModel.endDate.Value < DateTime.Now) { response.ErrMsg = string.Format("参数校验错误,账号已过期。过期时间为:{0}", agentModel.endDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); return response; } response.ErrMsg = "参数校验错误,账号已禁用。"; return response; } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return response; } //微信端逻辑 次级代理 if (request.ChildAgent > 0) { var item = _agentRepository.GetAgent(request.ChildAgent); if (item != null && item.IsUsed == 1) { request.Agent = request.ChildAgent; } else { return new GetIntelligentReInfoResponse { ErrMsg = "您的账号已被禁用,如有疑问请联系管理员。", Status = HttpStatusCode.Forbidden }; } } ///先从库里读取,没有在走后续流程 if (request.IsCarVin == 1) { //根据车架号查询 response.CarInfo = _carInfoRepository.FindVinCarInfo(request.CarVin, request.RenewalCarType); } else { //车牌号查询 response.CarInfo = _carInfoRepository.FindOrderDate(request.LicenseNo, request.RenewalCarType); } response.Status = HttpStatusCode.OK; if (response.CarInfo != null) { response.ErrCode = 1; response.ErrMsg = "成功获取信息"; //然后调用中心取险种推荐的逻辑 response.SaveQuote = new SaveQuoteViewModel(); bx_car_renewal car_Renewal = _carRenewalRepository.FindByLicenseno(response.CarInfo.license_no); if (car_Renewal != null) { response.SaveQuote = car_Renewal.ConvetToViewModel(); } else { request.MoldName = response.CarInfo.mold_name; request.RegisterDate = response.CarInfo.register_date.HasValue ? response.CarInfo.register_date.Value.ToString("yyyy-MM-dd") : string.Empty; response.IsIntelligent = 1; //获取推荐信息失败,也返回1 var tuple = await _getIntelligentInsurance.GetCenterInsurance(request); response.SaveQuote = tuple.Item1; if (!tuple.Item2) { response.ErrCode = 2; response.ErrMsg = "成功获取车辆信息,未获取到险种信息"; } } } else { response.ErrCode = 0; response.ErrMsg = "未获取到车辆信息"; } #pragma warning disable CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 Task.Factory.StartNew(() => { GetReInfoRequest requestNew = new GetReInfoRequest() { LicenseNo = request.LicenseNo, Agent = request.Agent }; int datastatus = int.Parse(response.ErrCode.ToString() + response.IsIntelligent.ToString()); _renewalStatusService.AddRenewalStatus(response.ErrCode, requestNew); }); #pragma warning restore CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 return response; } catch (Exception ex) { response = new GetIntelligentReInfoResponse(); response.Status = HttpStatusCode.ExpectationFailed; logError.Info("获取简易续保信息发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return response; }
public GetReInfoResponse GetReInfo(GetReInfoRequest request) { var xubaokey = new { LicenseNo = request.LicenseNo, Agent = request.Agent }; var xuBaoCacheKey = CommonCacheKeyFactory.MakeCacheKey(xubaokey); var xuBaoKey = string.Format("{0}-{1}", xuBaoCacheKey, "key"); var cacheKey = CacheProvider.Get <string>(xuBaoKey); if (cacheKey == null) { for (int i = 0; i < 30; i++) { cacheKey = CacheProvider.Get <string>(xuBaoKey); if (!string.IsNullOrWhiteSpace(cacheKey)) { break; } else { Task.Delay(TimeSpan.FromSeconds(1)); } } } if (!string.IsNullOrWhiteSpace(cacheKey)) { GetReInfoResponse response = new GetReInfoResponse(); //续保 需要的表 //bx_userinfo //bx_renewalquote //bx_carinfo //步骤1 续保的时候 会发送消息队列 ,这个时候 会把 key传过去eg:aaaa。 //步骤2 中心在续保的时候 ,需要根据这个key 设置一个开关 eg:aaaa-key:1,放在缓存中,成功的时候要置1,刚开始是空值 //等续保结束后,先将上面列出的表写入缓存 //其中: 键值分别是: //bx_userinfo :aaaa-userinfo //bx_renewalquote :aaaa-renewal //bx_carinfo :aaaa-carinfo //步骤3: 讲开关缓存设置续保完成标识:aaaa-key:1 //续保缓存标示(是否成功) if (cacheKey == "1") { response.UserInfo = CacheProvider.Get <bx_userinfo>(string.Format("{0}-{1}", xuBaoCacheKey, "userinfo")); response.SaveQuote = CacheProvider.Get <bx_renewalquote>(string.Format("{0}-{1}", xuBaoCacheKey, "renewal")); response.CarInfo = CacheProvider.Get <bx_carinfo>(string.Format("{0}-{1}", xuBaoCacheKey, "carinfo")); response.BusinessStatus = 1; } else { response = null; } return(response); } else { return(null); } }
public static bx_userinfo Save(GetReInfoRequest request, int roleType, IUserInfoRepository infoRepository, int topAgentId = 0) { var insertUserinfo = new bx_userinfo { top_agent_id = topAgentId, agent_id = request.Agent, IsLastYear = 0, LastYearSource = -1, //Source = -1, //Mobile = agentModel.Mobile, LicenseNo = request.LicenseNo, Agent = request.Agent.ToString(), //UserId = account.UserId,//此字段废弃 OpenId = request.CustKey, CityCode = request.CityCode.ToString(), //IsPublic = request.IsPublic, QuoteStatus = -1, RenewalStatus = -1, CreateTime = DateTime.Now, RenewalType = request.RenewalType, //IsLastNewCar = request.IsLastYearNewCar, //EngineNo = request.EngineNo, //CarVIN = request.CarVin, NeedEngineNo = 1, IsDistributed = 0, UpdateTime = DateTime.Now, IsSingleSubmit = 0, Source = 0, OwnerIdCardType = -1, IsReView = 0, IsTest = 0 }; insertUserinfo.RenewalCarType = request.RenewalCarType; if (!string.IsNullOrWhiteSpace(request.SixDigitsAfterIdCard)) { insertUserinfo.SixDigitsAfterIdCard = request.SixDigitsAfterIdCard; } if (request.IsLastYearNewCar == 2) { insertUserinfo.NeedEngineNo = 1; if (!string.IsNullOrWhiteSpace(request.EngineNo)) { insertUserinfo.EngineNo = request.EngineNo.ToUpper(); } if (!string.IsNullOrWhiteSpace(request.CarVin)) { insertUserinfo.CarVIN = request.CarVin.ToUpper(); } } //车架号及发动机号全部都有的情况 ,没有测试 ,先注释 //if (request.IsLastYearNewCar == 1 & // (!string.IsNullOrWhiteSpace(request.CarVin) && !string.IsNullOrWhiteSpace(request.EngineNo))) //{ // insertUserinfo.LicenseNo = request.LicenseNo; // insertUserinfo.MoldName = string.Empty; // insertUserinfo.RegisterDate = string.Empty; // if (!string.IsNullOrWhiteSpace(request.EngineNo)) // { // insertUserinfo.EngineNo = request.EngineNo.ToUpper(); // } // if (!string.IsNullOrWhiteSpace(request.CarVin)) // { // insertUserinfo.CarVIN = request.CarVin.ToUpper(); // } // insertUserinfo.NeedEngineNo = 1; //} 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(); } /* 摄像头进店修改进店参数 * addbygpj20180828 * 20180918删除该逻辑,刘松年在下文会改 */ //if (request.RenewalType == 3) //{ // insertUserinfo.IsCamera = true; // insertUserinfo.CameraTime = DateTime.Now; //} /* * 如果老数据,分配状态都按以前的走。 * 如果摄像头进店,顶级和管理员是未分配,其他为自己试算 * 非摄像头进店,顶级是未分配,其他为已分配 * 此处老数据不用考虑,不执行下文的update方法即可 * addbygpj20180828 */ bool distributedRoleType = false; if (request.RenewalType == 3) { distributedRoleType = (roleType == 3 || roleType == 4);//管理员或顶级 insertUserinfo.IsDistributed = distributedRoleType ? 0 : 2; } else { distributedRoleType = roleType == 3;//顶级 insertUserinfo.IsDistributed = distributedRoleType ? 0 : 2; } insertUserinfo.IsSingleLicenseno = 0; //20181009中心要求修改是否单车牌标识 if (string.IsNullOrEmpty(insertUserinfo.CarVIN) || string.IsNullOrEmpty(insertUserinfo.EngineNo)) { insertUserinfo.IsSingleLicenseno = 1; } #region 车店连呼新增userinfo时权限相关特殊操作,bygpj //业务call liuzhenlong,qixinbo,lvshaobo if (request.ZuoXiId > 0) { //新增续保报价选择数据来源时用 20181218 insertUserinfo.zs_zuoxi_id = request.ZuoXiId; } else { //20181126去掉配置//20181127新增的需要加上 //车店连呼特殊配置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 var buid = infoRepository.Add(insertUserinfo); insertUserinfo.Id = buid; return(insertUserinfo); }
public static bx_userinfo Update(GetReInfoRequest request, bx_userinfo userinfo, IUserInfoRepository infoRepository, int topAgentId = 0) { userinfo.IsLastYear = 0; userinfo.LastYearSource = -1; //userinfo.Source = 0; //userinfo.IsSingleSubmit = 0; //userinfo.IsPublic = request.IsPublic; userinfo.RenewalStatus = -1; //userinfo.QuoteStatus = -1; userinfo.UpdateTime = DateTime.Now; userinfo.Agent = request.Agent.ToString(); userinfo.CityCode = request.CityCode.ToString(); //userinfo.IsLastNewCar = request.IsLastYearNewCar; userinfo.IsTest = 0; userinfo.RenewalCarType = request.RenewalCarType; if (!string.IsNullOrWhiteSpace(request.SixDigitsAfterIdCard)) { userinfo.SixDigitsAfterIdCard = request.SixDigitsAfterIdCard; } if (request.IsLastYearNewCar == 2) { userinfo.LicenseNo = request.LicenseNo; userinfo.MoldName = string.Empty; userinfo.RegisterDate = string.Empty; userinfo.EngineNo = !string.IsNullOrWhiteSpace(request.EngineNo) ? request.EngineNo.ToUpper() : ""; if (!string.IsNullOrWhiteSpace(request.CarVin)) { userinfo.CarVIN = request.CarVin.ToUpper(); } userinfo.NeedEngineNo = 1; } if (request.IsLastYearNewCar == 1 & (!string.IsNullOrWhiteSpace(request.CarVin) && !string.IsNullOrWhiteSpace(request.EngineNo))) { userinfo.LicenseNo = request.LicenseNo; userinfo.MoldName = string.Empty; userinfo.RegisterDate = string.Empty; if (!string.IsNullOrWhiteSpace(request.EngineNo)) { userinfo.EngineNo = request.EngineNo.ToUpper(); } if (!string.IsNullOrWhiteSpace(request.CarVin)) { userinfo.CarVIN = request.CarVin.ToUpper(); } userinfo.NeedEngineNo = 1; } if (request.IsLastYearNewCar == 1 && (!string.IsNullOrWhiteSpace(request.CarVin) && string.IsNullOrWhiteSpace(request.EngineNo))) { userinfo.LicenseNo = request.LicenseNo; userinfo.MoldName = string.Empty; userinfo.RegisterDate = string.Empty; userinfo.EngineNo = !string.IsNullOrWhiteSpace(request.EngineNo) ? request.EngineNo.ToUpper() : ""; if (!string.IsNullOrWhiteSpace(request.CarVin)) { userinfo.CarVIN = request.CarVin.ToUpper(); } userinfo.NeedEngineNo = 1; } /*摄像头进店修改进店参数 * addbygpj20180828 * 20180918删除该逻辑,刘松年在下文会改 */ //if (request.RenewalType == 3) //{ // userinfo.IsCamera = true; // userinfo.CameraTime = DateTime.Now; //} ////元数据是摄像头的,改为新的录入方式 //if (userinfo.RenewalType == 3) //{ // userinfo.RenewalType = request.RenewalType; //} ////录入方式为摄像头的,将元数据改为摄像头 //if (request.RenewalType == 3) //{ // userinfo.RenewalType = 3; //} userinfo.IsSingleLicenseno = 0; //20181009中心要求修改是否单车牌标识 if (string.IsNullOrEmpty(userinfo.CarVIN) || string.IsNullOrEmpty(userinfo.EngineNo)) { userinfo.IsSingleLicenseno = 1; } //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; // } //} infoRepository.Update(userinfo); return(userinfo); }
public async Task <GetReInfoResponse> PushCenterService(GetReInfoRequest request, long buid, string reqCacheKey) { var response = new GetReInfoResponse(); //续保选择其他保司续保时,只取行驶本信息,不发续保请求 #region 发送续保消息 string xuBaoCacheKey = CommonCacheKeyFactory.CreateKeyWithLicense(request.LicenseNo + request.RenewalCarType); var xuBaoKey = string.Format("{0}-xb-{1}", xuBaoCacheKey, "key"); CacheProvider.Remove(xuBaoKey); object msgBody; if (request.RenewalSource <= 0) { msgBody = new { B_Uid = buid, IsCloseSms = 0, NotifyCacheKey = xuBaoCacheKey, IsForceRenewal = request.IsForceRenewal == 1//是否强制刷新续保 }; } else { msgBody = new { B_Uid = buid, IsCloseSms = 0, //改为help类里面通用方法 by.20180904.gpj RenewalSource = SourceGroupAlgorithm.ParseOldSource(request.RenewalSource).ToHashSet(), NotifyCacheKey = xuBaoCacheKey, IsForceRenewal = request.IsForceRenewal == 1//是否强制刷新续保 }; ///如果传进来的三个值都不为空 ShowPACheckCode=1 if (!string.IsNullOrWhiteSpace(request.RequestKey) && request.PAUKey != 0 && request.YZMArea != null) { msgBody = new { B_Uid = buid, IsCloseSms = 0, //改为help类里面通用方法 by.20180904.gpj RenewalSource = SourceGroupAlgorithm.ParseOldSource(request.RenewalSource).ToHashSet(), NotifyCacheKey = xuBaoCacheKey, RequestKey = request.RequestKey, PAUKey = request.PAUKey, YZMArea = request.YZMArea, IsForceRenewal = request.IsForceRenewal == 1//是否强制刷新续保 }; } } //发送续保信息 //var msgbody = _messageCenter.SendToMessageCenter(msgBody.ToJson(), ConfigurationManager.AppSettings["MessageCenter"], ConfigurationManager.AppSettings["BxXuBaoName"]); string strurl = string.Format("{0}/service/getrenewal", ConfigurationManager.AppSettings["CenterNewUrl"]); string returnServerIpPort = string.Empty; string result = ProxyCenterHttpClient.Post(strurl, msgBody.ToJson(), 60, ref returnServerIpPort); #endregion #region 缓存读取 ExecutionContext.SuppressFlow(); response = await _carInsuranceCache.GetReInfo(request, buid); #region 改由中心 写 缓存 response.ReqCarinfo = CacheProvider.Get <bx_quotereq_carinfo>(reqCacheKey); #endregion #endregion return(response); }
public async Task <GetReInfoResponse> GetReInfo(GetReInfoRequest request) { var response = new GetReInfoResponse(); var isReadCache = true; var topAgent = request.Agent;//顶级代理人 //获取当前数据的角色addbygpj20180829 int roleType = _managerRoleRepository.GetRoleTypeByAgentId(request.ChildAgent > 0 ? request.ChildAgent : request.Agent); try { IBxAgent agentModel = _getAgentInfoService.GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; if (agentModel.endDate.HasValue && agentModel.endDate.Value < DateTime.Now) { response.BusinessMessage = string.Format("参数校验错误,账号已过期。过期时间为:{0}", agentModel.endDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); return(response); } response.BusinessMessage = "参数校验错误,账号已禁用。"; return(response); } //获取[顶级]代理人是否重复数据的标记addbygpj20180829 int repeateQuote = agentModel.repeat_quote; #region userinfo逻辑 //微信端逻辑 次级代理 if (request.ChildAgent > 0) { agentModel = _getAgentInfoService.GetAgentModelFactory(request.ChildAgent); if (agentModel.AgentCanUse()) { request.Agent = request.ChildAgent; } else { return(new GetReInfoResponse { BusinessMessage = "您的账号已被禁用,如有疑问请联系管理员。", Status = HttpStatusCode.Forbidden }); } } #region 摄像头的黑名单、查重过滤 bool isAdd = true; if (request.RenewalType == 3) { //黑名单 //查重 CameraBackDataViewModel backData = _fiterAndRepeatDataService.GetFiterData(request.LicenseNo, topAgent, request.ChildAgent, request.CustKey, request.CityCode, request.RenewalCarType, repeateQuote, roleType); if (backData != null) { if (backData.IsBlack) { //在黑名单列表中,无需继续往下,执行直接return return(new GetReInfoResponse { BusinessMessage = "车辆已进入黑名单,未执行续保操作", Status = HttpStatusCode.Forbidden }); } else { //不在黑名单列表中 if (!string.IsNullOrEmpty(backData.Buid) && !string.IsNullOrEmpty(backData.Agent) && !string.IsNullOrEmpty(backData.OpenId)) { isAdd = false; request.Agent = int.Parse(backData.Agent); request.CustKey = backData.OpenId; } } } } #endregion #region 操作bx_userinfo对象 bx_userinfo userinfo = UserinfoSearchFactory.Find(request, _userInfoRepository); if (userinfo == null) { if (!string.IsNullOrEmpty(_isAddIdCardBack6) && _isAddIdCardBack6.Equals("1") && string.IsNullOrEmpty(request.SixDigitsAfterIdCard)) { //如果身份证后6位字段为空,则取数据库中该车牌其他的记录的值 Stopwatch ssw = new Stopwatch(); ssw.Start(); //查重复数据 RepeatUserInfoModel model = new RepeatUserInfoModel(); List <RepeatUserInfoModel> listRepeat = _userInfoRepository.GetLicenseRepeat(topAgent, request.LicenseNo); if (listRepeat.Any()) { model = listRepeat.Where(l => l.SixDigitsAfterIdCard != null && l.SixDigitsAfterIdCard.Trim() != "").OrderByDescending(o => o.UpdateTime).FirstOrDefault(); } //取一条赋值后六位 if (model != null && model.Buid > 0) { request.SixDigitsAfterIdCard = model.SixDigitsAfterIdCard; } logError.Info(string.Format("buid为{0},后6位插入时间{1}", 0, ssw.ElapsedMilliseconds)); ssw.Stop(); } userinfo = UserinfoMakeFactory.Save(request, roleType, _userInfoRepository, agentModel.TopAgentId); if (request.IsLastYearNewCar == 1) { isReadCache = await _checkCarNeedDrivingInfoService.GetInfo(userinfo); } } else { if (!string.IsNullOrEmpty(_isAddIdCardBack6) && _isAddIdCardBack6.Equals("1") && string.IsNullOrEmpty(request.SixDigitsAfterIdCard) && string.IsNullOrEmpty(userinfo.SixDigitsAfterIdCard)) { //如果身份证后6位字段为空,则取数据库中该车牌其他的记录的值 Stopwatch ssw = new Stopwatch(); ssw.Start(); //查重复数据 RepeatUserInfoModel model = new RepeatUserInfoModel(); List <RepeatUserInfoModel> listRepeat = _userInfoRepository.GetLicenseRepeat(topAgent, request.LicenseNo); if (listRepeat.Any()) { model = listRepeat.Where(l => l.SixDigitsAfterIdCard != null && l.SixDigitsAfterIdCard.Trim() != "").OrderByDescending(o => o.UpdateTime).FirstOrDefault(); } //取一条赋值后六位 if (model != null && model.Buid > 0) { request.SixDigitsAfterIdCard = model.SixDigitsAfterIdCard; } logError.Info(string.Format("buid为{0},后6位插入时间{1}", userinfo.Id, ssw.ElapsedMilliseconds)); ssw.Stop(); } userinfo = UserinfoMakeFactory.Update(request, userinfo, _userInfoRepository, agentModel.TopAgentId); bool isNeedCheckNeed = !(request.IsLastYearNewCar == 1 & (!string.IsNullOrWhiteSpace(request.CarVin) && !string.IsNullOrWhiteSpace(request.EngineNo))); if (request.IsLastYearNewCar == 1) { //超过半年的数据要重新调用车型信息 if (userinfo.UpdateTime.HasValue && userinfo.UpdateTime.Value.AddMonths(6) <= DateTime.Now) { isReadCache = await _checkCarNeedDrivingInfoService.GetInfo(userinfo); } else { if (userinfo.NeedEngineNo == 1) //以前没有拿到行驶证信息 { if (isNeedCheckNeed) //没有拿到车架号及发动机号 { isReadCache = await _checkCarNeedDrivingInfoService.GetInfo(userinfo); } } } } } #endregion long buid = userinfo.Id; #endregion #region bx_quotereq_carinfo 逻辑 var reqCacheKey = string.Format("{0}-{1}", buid, "reqcarinfo"); var quotereq = _quoteReqCarinfoRepository.Find(buid); if (quotereq == null) { QuoteReqCarInfoMakeFactory.Save(buid, request.IsLastYearNewCar, _quoteReqCarinfoRepository); } else { QuoteReqCarInfoMakeFactory.Update(quotereq, request.IsLastYearNewCar, _quoteReqCarinfoRepository); } #endregion if (request.RenewalSource != -1) { #region 调用中心返回response信息 response = await _toCenterFromReInfoService.PushCenterService(request, buid, reqCacheKey); #endregion } if (response.BusinessStatus == 4 || request.RenewalSource == -1) { bool isOver = false; #region 读库数据 isOver = _getReInfoState.GetState(buid); response = new GetReInfoResponse(); response.UserInfo = _userInfoRepository.FindByBuid(buid); if (!isOver) { if (response.UserInfo.NeedEngineNo == 1) { //需要完善行驶证信息 response.BusinessStatus = 2; response.BusinessMessage = "需要完善行驶证信息(车辆信息和险种都没有获取到)"; } if (response.UserInfo.NeedEngineNo == 0 && response.UserInfo.RenewalStatus != 1) { //获取车辆信息成功,但获取险种失败 response.BusinessStatus = 3; response.BusinessMessage = "获取车辆信息成功(车架号,发动机号,品牌型号及初登日期),险种获取失败"; } if ((response.UserInfo.NeedEngineNo == 0 && response.UserInfo.LastYearSource > -1) || response.UserInfo.RenewalStatus == 1) { //续保成功 response.BusinessStatus = 1; response.BusinessMessage = "续保成功"; response.SaveQuote = _carRenewalRepository.FindByLicenseno(request.LicenseNo); response.CarInfo = _carInfoRepository.Find(response.UserInfo.LicenseNo); } } else { if (response.UserInfo.LastYearSource == -1) { response.BusinessStatus = -10002; response.BusinessMessage = "获取续保信息失败"; } } response.Status = HttpStatusCode.OK; #endregion } response.UserInfo.Id = buid; #region 发送分配请求 string moldName = response.UserInfo != null ? response.UserInfo.MoldName : string.Empty; //车型 string businessExpireDate = string.Empty; //商业险到期 string forceExpireDate = string.Empty; //交强险到期 if (response.SaveQuote != null) { businessExpireDate = response.SaveQuote.LastBizEndDate.HasValue ? response.SaveQuote.LastBizEndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : string.Empty; forceExpireDate = response.SaveQuote.LastForceEndDate.HasValue ? response.SaveQuote.LastForceEndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : string.Empty; } //调用重新分配的接口 if (request.RenewalType == 3) { /* * 调用院院的分配方法,将数据推过去即可,无需返回值 * 20180820修改,1,去掉是否调用摄像头进店(api.config的IsUrlDistributed标识)判断;2,修改分配方法,调用刘松年的新版接口 */ #pragma warning disable CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 Task.Factory.StartNew(() => { _sentDistributedService.SentDistributed(response.BusinessStatus, moldName, buid, topAgent, request.ChildAgent, userinfo.Agent, request.CityCode, request.LicenseNo, request.RenewalType, userinfo.RenewalType.Value, businessExpireDate, forceExpireDate, false, request.ChildAgent, request.CameraId, isAdd, repeateQuote, roleType, request.CustKey, request.CityCode); }); #pragma warning restore CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 } #endregion #region 修改批续进来的状态 if (response.BusinessStatus == 1) { UpdateBatchRenewalStatus(buid, 1); } else if (response.BusinessStatus == 2) { UpdateBatchRenewalStatus(buid, 2); } else if (response.BusinessStatus == 3) { UpdateBatchRenewalStatus(buid, 4); } else { UpdateBatchRenewalStatus(buid, 2); } #endregion } catch (Exception ex) { MetricUtil.UnitReports("renewal_service"); response.Status = HttpStatusCode.ExpectationFailed; logError.Info("续保请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException + ",请求对象信息:" + request.ToJson() + ";返回对象信息" + response.ToJson()); } return(response); }
public async Task <GetReInfoResponse> GetReInfo(GetReInfoRequest request, long?buid = null) { ILog logInfo = LogManager.GetLogger("ERROR"); //logInfo.Info("读取缓存数据开始" + request.ToJson()); string xuBaoCacheKey = CommonCacheKeyFactory.CreateKeyWithLicense(request.LicenseNo + request.RenewalCarType); var xuBaoKey = string.Format("{0}-xb-{1}", xuBaoCacheKey, "key"); var cacheKey = CacheProvider.Get <string>(xuBaoKey); #region //var step1val = string.Empty; //var step1va2 = string.Empty; //var step1va3 = string.Empty; //var step1va4 = string.Empty; StringBuilder sb = new StringBuilder(); #endregion if (cacheKey == null) { for (int i = 0; i < 115; i++) { cacheKey = CacheProvider.Get <string>(xuBaoKey); //step1val = xuBaoKey; //step1va2 = cacheKey; if (!string.IsNullOrWhiteSpace(cacheKey)) { if (cacheKey == "0" || cacheKey == "1" || cacheKey == "2") { break; } } else { //ExecutionContext.SuppressFlow(); await Task.Delay(TimeSpan.FromSeconds(1)); //ExecutionContext.RestoreFlow(); } //logInfo.Info("读取缓存数据循环"+i+" "+ request.ToJson() + "; 缓存key是step1va2:" + step1va2 + " -- key:step1va1" + step1val); //sb.AppendLine("读取缓存数据循环" + i + " " + request.ToJson() + "; 缓存key是step1va2:" + step1va2 + // " -- key:step1va1" + step1val); } } GetReInfoResponse response = new GetReInfoResponse(); try { if (!string.IsNullOrWhiteSpace(cacheKey)) { //续保 需要的表 //bx_userinfo //bx_renewalquote //bx_carinfo //步骤1 续保的时候 会发送消息队列 ,这个时候 会把 key传过去eg:aaaa。 //步骤2 中心在续保的时候 ,需要根据这个key 设置一个开关 eg:aaaa-key:1,放在缓存中,成功的时候要置1,刚开始是空值 //等续保结束后,先将上面列出的表写入缓存 //其中: 键值分别是: //bx_userinfo :aaaa-userinfo //bx_car_renewal :aaaa-renewal //bx_carinfo :aaaa-carinfo //步骤3: 讲开关缓存设置续保完成标识:aaaa-key:1 //续保缓存标示(是否成功) var renwal = CommonCacheKeyFactory.CreateKeyWithLicense(request.LicenseNo + request.RenewalCarType); if (cacheKey == "1") { response.UserInfo = CacheProvider.Get <bx_userinfo>(string.Format("{0}-{1}", xuBaoCacheKey, "userinfo")); response.SaveQuote = CacheProvider.Get <bx_car_renewal>(string.Format("{0}-{1}", renwal, "renewal")); response.CarInfo = CacheProvider.Get <bx_carinfo>(string.Format("{0}-{1}", renwal, "carinfo")); response.LastInfo = CacheProvider.Get <bx_lastinfo>(string.Format("{0}-{1}", renwal, "lastinfo")); //续保返回保费addbygpj20180926 response.RenewalPremium = CacheProvider.Get <bx_car_renewal_premium>(string.Format("{0}-{1}", renwal, "premium")); response.BusinessStatus = 1; } else if (cacheKey == "0") { #region 先获取平安验证码 if (buid != null) { if (request.ShowPACheckCode == 1 && string.IsNullOrWhiteSpace(request.RequestKey) && request.PAUKey == 0 && request.YZMArea == null) { /* * 如果平安续保返回需要验证码,缓存平安验证码信息 */ string payzmkey = string.Format("{0}-PAYZM", buid); CenterPicCodeCacheModel payzmvalue = CacheProvider.Get <CenterPicCodeCacheModel>(payzmkey); if (payzmvalue != null) { response = new GetReInfoResponse(); response.UserInfo = new bx_userinfo(); response.CenterPicCodeCacheModel = payzmvalue; if (response.CenterPicCodeCacheModel.ErrCode == -210002) { response.BusinessStatus = -10009; response.BusinessMessage = "获取续保信息失败,请输入验证码坐标"; } else if (response.CenterPicCodeCacheModel.ErrCode == -210003) { response.BusinessStatus = 0; response.BusinessMessage = "输入验证码错误"; } else if (response.CenterPicCodeCacheModel.ErrCode == -210004) { response.BusinessStatus = 0; response.BusinessMessage = "输入超时"; } response.Status = HttpStatusCode.OK; response.UserInfo.Id = (long)buid; return(response); } } } #endregion response.UserInfo = CacheProvider.Get <bx_userinfo>(string.Format("{0}-{1}", xuBaoCacheKey, "userinfo")); response.CarInfo = CacheProvider.Get <bx_carinfo>(string.Format("{0}-{1}", renwal, "carinfo")); if (response.UserInfo.NeedEngineNo == 1) { response.BusinessStatus = 2; } else if (response.UserInfo.NeedEngineNo == 0) //去掉 && response.UserInfo.QuoteStatus == 0 { response.BusinessStatus = 3; } else { response.BusinessStatus = 4; } } else if (cacheKey == "2") { response.UserInfo = CacheProvider.Get <bx_userinfo>(string.Format("{0}-{1}", xuBaoCacheKey, "userinfo")); //var renwal = CommonCacheKeyFactory.CreateKeyWithLicense(request.LicenseNo); response.SaveQuote = new bx_car_renewal(); response.RenewalPremium = new bx_car_renewal_premium(); //CacheProvider.Get<bx_car_renewal>(string.Format("{0}-{1}", renwal, "renewal")); response.BusinessStatus = 8; response.LastInfo = CacheProvider.Get <bx_lastinfo>(string.Format("{0}-{1}", renwal, "lastinfo")); response.BusinessMessage = CacheProvider.Get <string>(string.Format("{0}-xb-company", xuBaoCacheKey)); } //过户车的模型 response.TransferModelList = CacheProvider.Get <List <TransferModel> >(string.Format("{0}-xb-key-newcarinfo", xuBaoCacheKey)); return(response); } else { response.UserInfo = new bx_userinfo(); //如果没拿到值,初始化以下基础信息字段 response.UserInfo.LicenseNo = request.LicenseNo; response.UserInfo.CarVIN = request.CarVin; response.UserInfo.EngineNo = request.EngineNo; response.BusinessStatus = 0;//缓存异常 response.BusinessMessage = "请求超时或缓存异常,请重试"; return(response); } } catch (Exception ex) { logInfo.Info("读取缓存发生异常" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }