public async Task <GetRepeatSubmitResponse> GetRepeatSubmitInfo(GetRepeatSubmitRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetRepeatSubmitResponse(); try { var privilegeResulst = _agentPrivilege.CanUse(request.Agent); if (!privilegeResulst.CheckResult) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!_validService.ValidateReqest(pairs, privilegeResulst.Model.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } //微信端逻辑 次级代理 if (request.ChildAgent > 0) { request.Agent = request.ChildAgent; } var queryAgent = request.Agent.ToString(); var userinfo = _userInfoRepository.Search( x => x.Agent == queryAgent && x.OpenId == request.CustKey && x.RenewalCarType == request.RenewalCarType && x.IsTest == 0 && x.LicenseNo == request.LicenseNo).FirstOrDefault(); if (userinfo == null) { response.Status = HttpStatusCode.NoContent; return(response); } if (userinfo.IsSingleSubmit > 0 && userinfo.QuoteStatus == -1 && userinfo.UpdateTime.GetValueOrDefault().AddMinutes(5) > DateTime.Now) { response.Status = HttpStatusCode.Conflict; return(response); } string baojiaCacheKey = CommonCacheKeyFactory.CreateKeyWithLicenseAndAgentAndCustKey(request.LicenseNo, request.Agent, request.CustKey + request.RenewalCarType); var lastinfo = await _getExpireDate.GetDate(baojiaCacheKey); var formatInfo = _repeatInfoFormat.FormatRepeatInfo(userinfo.IsSingleSubmit.GetValueOrDefault(), baojiaCacheKey); response = RepeatSubmitResponseFactory(lastinfo, formatInfo); } catch (Exception ex) { 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 <HttpResponseMessage> GetRepeatSubmitDetail([FromUri] GetRepeatSubmitRequest request) { _logInfo.Info(string.Format("获取重复投保请求串:{0}", Request.RequestUri)); var viewModel = new GetRepeatSubmitViewModel(); viewModel.RepeatInfo = new GetRepeatSubmitInfo { BusinessExpireDate = string.Empty, ForceExpireDate = string.Empty, RepeatSubmitResult = -1, RepeatSubmitMessage = string.Empty }; if (!ModelState.IsValid) { viewModel.BusinessStatus = -10000; var 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()); } var response = await _repeatSubmitService.GetRepeatSubmitInfo(request, Request.GetQueryNameValuePairs()); if (response.Status == HttpStatusCode.BadRequest || response.Status == HttpStatusCode.Forbidden) { viewModel.BusinessStatus = -10001; viewModel.StatusMessage = "参数校验错误,请检查您的校验码"; return(viewModel.ResponseToJson()); } if (response.Status == HttpStatusCode.ExpectationFailed) { viewModel.BusinessStatus = -10003; viewModel.StatusMessage = "服务器发生异常"; return(viewModel.ResponseToJson()); } if (response.Status == HttpStatusCode.NoContent) { viewModel.BusinessStatus = -10004; viewModel.StatusMessage = "您还未报价"; return(viewModel.ResponseToJson()); } if (response.Status == HttpStatusCode.Conflict) { viewModel.BusinessStatus = -10005; viewModel.StatusMessage = "您的报价请求还在处理阶段,请结束后再调用此接口(每次报价结束后,请求一次该接口即可,不需要重复调用)"; return(viewModel.ResponseToJson()); } viewModel = response.RepeatSubmitConvertToViewModel(); viewModel.BusinessStatus = 1; viewModel.StatusMessage = "请求成功"; return(viewModel.ResponseToJson()); }