コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }