public async Task <HttpResponseMessage> GetSubmitInfo([FromUri] GetSubmitInfoRequest request) { _logAppInfo.Info(string.Format("获取核保信息接口请求串:{0}", Request.RequestUri)); var viewModel = new SubmitInfoNewViewModel(); 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.GetSubmitInfo(request, Request.GetQueryNameValuePairs(), Request.RequestUri); //_logAppInfo.Info(string.Format("获取核保信息接口返回值:{0}", viewModel.ToJson())); return(viewModel.ResponseToJson()); }
public BaseResponse CheckRequest(GetSubmitInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { BaseResponse response = new BaseResponse(); response.Status = HttpStatusCode.OK; //校验:1基础校验 BaseResponse baseResponse = _validateService.Validate(request, pairs); if (baseResponse.Status == HttpStatusCode.Forbidden) { response.Status = HttpStatusCode.Forbidden; response.ErrMsg = baseResponse.ErrMsg; logError.Info(request.ToJson() + ";校验错误:" + response.ErrMsg); return(response); } //校验:2报价基础信息 UserInfoValidateRequest validateRequest = new UserInfoValidateRequest() { LicenseNo = request.LicenseNo, CustKey = request.CustKey, ChildAgent = request.ChildAgent == 0 ? request.Agent : request.ChildAgent, RenewalCarType = request.RenewalCarType }; //校验2 var validateResult = _userInfoValidateService.UserInfoValidate(validateRequest); if (validateResult.Item1.Status == HttpStatusCode.NotAcceptable) { response.Status = HttpStatusCode.Forbidden; response.ErrMsg = validateResult.Item1.ErrMsg; logError.Info(request.ToJson() + ";校验错误:" + response.ErrMsg); return(response); } //校验3:核保数据 baseResponse = _checkQuoteValidService.Validate(validateResult.Item2, request.SubmitGroup, 2); if (baseResponse.Status == HttpStatusCode.NotAcceptable) { response.Status = HttpStatusCode.Forbidden; response.ErrMsg = baseResponse.ErrMsg; logError.Info(request.ToJson() + ";校验错误:" + validateResult.Item2.Id + ":" + response.ErrMsg); return(response); } response.ErrMsg = baseResponse.ErrMsg; return(response); }
public async Task <SubmitInfoNewViewModel> GetSubmitInfo(GetSubmitInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri) { var viewModel = new SubmitInfoNewViewModel(); #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/GetSubmitInfo", uri.Host, uri.Port); //3,续保请求 BaseResponse rep = await SimulateGet(strUrl, pairs); if (rep.ErrCode == 1) { viewModel = rep.ErrMsg.FromJson <SubmitInfoNewViewModel>(); } 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 GetSubmitInfoResponse GetSubmitInfo(GetSubmitInfoRequest request) { GetSubmitInfoResponse response = new GetSubmitInfoResponse(); //获取核保信息 //需要的表 //bx_userinfo //bx_SubmitInfo //步骤1 续保的时候 会发送消息队列 ,这个时候 会把 key传过去eg:cccc。 //步骤2 中心在续保的时候 ,需要根据这个key 设置1(因为最多只有一家核保)个开关 eg:cccc-hb-key:1,放在缓存中,成功的时候要置1,刚开始是空值 //等续保结束后,先将上面列出的表写入缓存 //其中: 键值分别是: //bx_userinfo :cccc-userinfo //bx_SubmitInfo :cccc-submitinfo //步骤3: 讲开关缓存设置核保完成标识:cccc-hb-key:1 return(response); }
public async Task <GetSubmitInfoResponse> GetSubmitInfo(GetSubmitInfoRequest request) { GetSubmitInfoResponse response = new GetSubmitInfoResponse(); //获取核保信息 //需要的表 //bx_userinfo //bx_SubmitInfo //步骤1 续保的时候 会发送消息队列 ,这个时候 会把 key传过去eg:cccc。 //步骤2 中心在续保的时候 ,需要根据这个key 设置1(因为最多只有一家核保)个开关 eg:cccc-hb-key:1,放在缓存中,成功的时候要置1,刚开始是空值 //等续保结束后,先将上面列出的表写入缓存 //其中: 键值分别是: //bx_SubmitInfo :cccc-submitinfo //步骤3: 讲开关缓存设置核保完成标识:cccc-hb-0-key:1 string hebaoCacheKey = CommonCacheKeyFactory.CreateKeyWithLicenseAndAgentAndCustKey(request.LicenseNo, request.Agent, request.CustKey + request.RenewalCarType); var hebaoKey = string.Format("{0}-{1}-hb-{2}", hebaoCacheKey, request.IntentionCompany, "key"); //ExecutionContext.SuppressFlow(); var cacheKey = CacheProvider.Get <string>(hebaoKey); if (cacheKey == null) { for (int i = 0; i < 220; i++) { cacheKey = CacheProvider.Get <string>(hebaoKey); if (!string.IsNullOrWhiteSpace(cacheKey)) { break; } else { await Task.Delay(TimeSpan.FromSeconds(1)); } } } //ExecutionContext.RestoreFlow(); string baojiaCacheOrderIdKey = string.Format("{0}OrderIdKey", hebaoCacheKey); var ck = CacheProvider.Get <string>(baojiaCacheOrderIdKey); string baojiaCacheCheckCodeIdKey = string.Format("{0}CheckCodeKey", hebaoCacheKey); var bk = CacheProvider.Get <string>(baojiaCacheCheckCodeIdKey); //CacheProvider.Set(baojiaCacheOrderIdKey, request.OrderId, 10800);//orderid 滴滴用 ,缓存3小时 if (cacheKey == "1") { response.SubmitInfo = CacheProvider.Get <bx_submit_info>(string.Format("{0}-{1}-{2}", hebaoCacheKey, request.IntentionCompany, "submitinfo")); response.BusinessStatus = 1; } else if (cacheKey == "0") { response.SubmitInfo = CacheProvider.Get <bx_submit_info>(string.Format("{0}-{1}-{2}", hebaoCacheKey, request.IntentionCompany, "submitinfo")); response.CustKey = request.CustKey; response.BusinessStatus = 3; } response.CustKey = request.CustKey; if (!string.IsNullOrWhiteSpace(ck)) { response.OrderId = ck; } if (!string.IsNullOrWhiteSpace(bk)) { response.CheckCode = bk; } return(response); }