public async Task <HttpResponseMessage> FetchCreditDetailInfo([FromUri] GetEscapedInfoRequest request) { logInfo.Info(string.Format("车辆出险信息接口请求串:{0}", Request.RequestUri)); var vm = new GetCreaditDetailInfoViewModel(); if (!ModelState.IsValid) { vm.BusinessStatus = -10000; vm.StatusMessage = "输入参数错误,请检查您输入的参数是否有空或者长度不符合要求等"; return(vm.ResponseToJson()); } GetEscapedInfoResponse response = await _userClaimService.GetList(request, Request.GetQueryNameValuePairs()); if (response.Status == HttpStatusCode.Forbidden) { vm.BusinessStatus = -10001; vm.StatusMessage = "参数校验错误,请检查您的校验码"; return(vm.ResponseToJson()); } if (response.Status == HttpStatusCode.ExpectationFailed) { vm.BusinessStatus = -10003; vm.StatusMessage = "服务器发生异常"; return(vm.ResponseToJson()); } if (response.List != null) { vm.BusinessStatus = 1; vm.List = response.List.ConvertToDetailViewModelList(); } else { vm.BusinessStatus = -10002; vm.StatusMessage = "获取车辆出险信息失败"; } if (response.Lastinfo != null) { vm.BizClaimCount = (response.Lastinfo.LastYearBizClaimTimes ?? 0).ToString(); vm.ForceCliamCount = (response.Lastinfo.LastYearForceClaimTimes ?? 0).ToString(); vm.ClaimCount = (response.Lastinfo.last_year_claimtimes ?? 0).ToString(); } else { vm.BizClaimCount = ""; vm.ForceCliamCount = ""; vm.ClaimCount = ""; } if (request.ShowClaimCount == 0) { vm.BizClaimCount = ""; vm.ForceCliamCount = ""; vm.ClaimCount = ""; } logInfo.Info("车辆:" + request.LicenseNo + "的出险信息:" + vm.ToJson()); return(vm.ResponseToJson()); }
public async Task <GetEscapedInfoResponse> GetList(GetEscapedInfoRequest request) { GetEscapedInfoResponse response = new GetEscapedInfoResponse(); var chuxianCacheKey = CommonCacheKeyFactory.CreateKeyWithLicenseAndAgentAndCustKey(request.LicenseNo, request.Agent, request.CustKey + request.RenewalCarType); var chuxianKey = string.Format("{0}-claimdetai-key", chuxianCacheKey); var cacheValue = string.Format("{0}-claimdetail", chuxianCacheKey); //var chuxianKey = string.Format("{0}-claimdetail", chuxianCacheKey); //var cacheKey = CacheProvider.Get<IEnumerable<bx_claim_detail>>(chuxianKey); var cacheKey = CacheProvider.Get <string>(chuxianKey); if (cacheKey == null) { for (int i = 0; i < 100; i++) { cacheKey = CacheProvider.Get <string>(chuxianKey); if (!string.IsNullOrWhiteSpace(cacheKey)) { break; } else { await Task.Delay(TimeSpan.FromSeconds(1)); } } } if (cacheKey != null) { if (cacheKey == "1") { response.List = CacheProvider.Get <IEnumerable <bx_claim_detail> >(cacheValue).ToList(); } else { response.List = new List <bx_claim_detail>(); } } else { response.List = null; } try { response.Lastinfo = CacheProvider.Get <bx_lastinfo>(string.Format("{0}-{1}", chuxianCacheKey, "lastinfo")); } catch (Exception ex) { response.Lastinfo = new bx_lastinfo(); } return(response); }
public async Task <HttpResponseMessage> GetCreditInfo([FromUri] GetEscapedInfoRequest request) { _logAppInfo.Info(string.Format("获取车辆出险信息接口请求串:{0}", Request.RequestUri)); var viewModel = new GetCreaditInfoViewModel(); 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.GetCreditInfo(request, Request.GetQueryNameValuePairs(), Request.RequestUri); //_logAppInfo.Info(string.Format("获取车辆出险信息接口返回值:{0}", viewModel.ToJson())); return(viewModel.ResponseToJson()); }
public async Task <GetCreaditInfoViewModel> GetCreditInfo(GetEscapedInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri) { var viewModel = new GetCreaditInfoViewModel(); #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/Claim/GetCreditInfo", uri.Host, uri.Port); //3,续保请求 BaseResponse rep = await SimulateGet(strUrl, pairs); if (rep.ErrCode == 1) { viewModel = rep.ErrMsg.FromJson <GetCreaditInfoViewModel>(); } else { viewModel.BusinessStatus = rep.ErrCode; viewModel.StatusMessage = rep.ErrMsg; } #endregion return(viewModel); }
public async Task <GetEscapedInfoResponse> GetList(GetEscapedInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { GetEscapedInfoResponse response = new GetEscapedInfoResponse(); //根据经纪人获取手机号 IBxAgent agentModel = GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } //参数校验 if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } try { //微信端逻辑 次级代理 if (request.ChildAgent > 0) { request.Agent = request.ChildAgent; } response = await _userClaimCache.GetList(request); if (response == null) { response = new GetEscapedInfoResponse(); response.Status = HttpStatusCode.ExpectationFailed; //response.List = new List<bx_claim_detail>(); } ////if (response == null)中心没写缓存 ////{ // response = new GetEscapedInfoResponse(); // bx_userinfo userinfo = _userInfoRepository.FindByOpenIdAndLicense(request.CustKey, request.LicenseNo,request.Agent.ToString()); // if (userinfo == null) // { // response.Status = HttpStatusCode.BadRequest; // return response; // } // var userclaims = _userClaimRepository.FindList(userinfo.Id); // //if (userclaims != null && userclaims.Count>0) // //{ // // var chuxianCacheKey = CommonCacheKeyFactory.CreateKeyWithLicenseAndAgent(request.LicenseNo,request.Agent); // // var chuxianKey = string.Format("{0}-cx", chuxianCacheKey); // // CacheProvider.Set(chuxianKey, userclaims.ToJson()); // //} // response.List = userclaims; // response.Status = HttpStatusCode.OK; ////} } catch (Exception ex) { response = new GetEscapedInfoResponse(); response.Status = HttpStatusCode.ExpectationFailed; } return(response); }