Example #1
0
        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());
        }
Example #2
0
        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);
        }
Example #4
0
        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);
        }