public async Task <GetReInfoNewViewModel> GetReInfo(GetReInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri) { var viewModel = new GetReInfoNewViewModel(); #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/GetReInfo", uri.Host, uri.Port); //3,续保请求 BaseResponse rep = await SimulateGet(strUrl, pairs); if (rep.ErrCode == 1) { viewModel = rep.ErrMsg.FromJson <GetReInfoNewViewModel>(); } 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; viewModel.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); viewModel.IsDistrib = userinfo != null ? userinfo.IsDistributed : 0; //添加续保通知,向bx_notice_xb插记录,商业险或交强险在90天范围之内 //20170111产品说再改吧,又不需要app的通知了 //if (userinfo != null) //{ // long noticeBuid = userinfo.Id; // _noticexbService.AddNoticexb(viewModel.UserInfo.LicenseNo, viewModel.UserInfo.BusinessExpireDate, // viewModel.UserInfo.ForceExpireDate, viewModel.UserInfo.NextBusinessStartDate, // viewModel.UserInfo.NextForceStartDate, viewModel.SaveQuote.Source, int.Parse(userinfo.Agent), noticeBuid, 1); //} #endregion return(viewModel); }
public GetReInfoNewViewModel GetReInfoDetail(GetReInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri) { var viewModel = new GetReInfoNewViewModel(); #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/Bjd/GetReInfoDetail", uri.Host, uri.Port); //3,续保请求 BaseResponse rep = SimulateSyncGet(strUrl, pairs); var model = new AppReInfoViewModel(); if (rep.ErrCode == 1) { model = rep.ErrMsg.FromJson <AppReInfoViewModel>(); viewModel.BusinessStatus = model.BusinessStatus; viewModel.StatusMessage = model.StatusMessage; viewModel.UserInfo = model.UserInfo; viewModel.SaveQuote = model.SaveQuote; viewModel.Buid = model.Buid; viewModel.Agent = baseResponse.Agent; viewModel.AgentName = baseResponse.AgentName; } 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 HttpResponseMessage GetReInfoDetail([FromUri] GetReInfoRequest request) { _logAppInfo.Info(string.Format("获取续保详情接口请求串:{0}", Request.RequestUri)); var viewModel = new GetReInfoNewViewModel(); if (!ModelState.IsValid) { viewModel.BusinessStatus = -10000; string msg = ModelState.Values.Where(a => a.Errors.Count == 1).Aggregate(string.Empty, (current, a) => current + (a.Errors[0].ErrorMessage + "; ")); viewModel.StatusMessage = "输入参数错误," + msg; return(viewModel.ResponseToJson()); } viewModel = _appAchieveService.GetReInfoDetail(request, Request.GetQueryNameValuePairs(), Request.RequestUri); //_logAppInfo.Info(string.Format("获取续保详情接口返回值:{0}", viewModel.ToJson())); return(viewModel.ResponseToJson()); }
// [EnableThrottling()] public async Task <HttpResponseMessage> FetchReInsuranceInfo([FromUri] GetReInfoRequest request) { _logAppInfo.Info(string.Format("App请求续保接口请求串:{0}", Request.RequestUri)); var viewModel = new GetReInfoNewViewModel(); if (!ModelState.IsValid) { viewModel.BusinessStatus = -10000; string msg = ModelState.Values.Where(a => a.Errors.Count == 1).Aggregate(string.Empty, (current, a) => current + (a.Errors[0].ErrorMessage + "; ")); viewModel.StatusMessage = "输入参数错误," + msg; return(viewModel.ResponseToJson()); } //if (request.RenewalType == 6 || request.RenewalType == 7) //{ // viewModel.BusinessStatus = 0; // return viewModel.ResponseToJson(); //} viewModel = await _workOrderService.GetReInfo(request, Request.GetQueryNameValuePairs(), Request.RequestUri); _logAppInfo.Info(string.Format("App请求续保接口返回值:{0}", viewModel.ToJson())); return(viewModel.ResponseToJson()); }
public async Task <GetReInfoNewViewModel> GetReInfo(GetReInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri) { //返回对象 var viewModel = new GetReInfoNewViewModel(); #region 校验 //bhToken校验 if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) { viewModel.BusinessStatus = -300; viewModel.StatusMessage = "登录信息已过期,请重新登录"; return(viewModel); } //传参校验 if (!AppValidateReqest(pairs, request.SecCode)) { viewModel.BusinessStatus = -301; viewModel.StatusMessage = "参数校验失败"; return(viewModel); } //代理人信息校验 if (request.Agent == request.ChildAgent) { IBxAgent childagentModel = GetAgentModelFactory(request.ChildAgent); //1,当前代理人是否可用; if (!childagentModel.AgentCanUse()) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } //2,顶级代理人是否可用; if (!_agentService.IsTopAgentId(request.Agent)) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } } else { var childagentModel = GetAgentModelFactory(request.ChildAgent); if (!childagentModel.AgentCanUse()) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } var agentModel = GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } if (!_agentService.IsTopAgentId(request.Agent)) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } //3,当前代理人是否在顶级代理人下 if (!_agentRepository.GetTopAgentId(request.ChildAgent).Contains(request.Agent.ToString())) { viewModel.BusinessStatus = -302; viewModel.StatusMessage = "代理人参数错误"; return(viewModel); } } #endregion //是否在未分配的池子里 //bool isInAssign = false; //1,校验重复数据 //userinfo 顶级代理下的所有代理,出过的车,存在就提示 //原来userinfo里的记录 //var bxUserinfo = IsExistLicense(request, out isInAssign); //拼接请求串 var sb = new StringBuilder(); sb.Append("?"); bool isAndroid = true; foreach (KeyValuePair <string, string> pair in pairs) { if (pair.Key.ToLower() == "renewaltype") { isAndroid = false; sb.Append(string.Format("{0}={1}&", pair.Key, pair.Value)); } //else if (pair.Key.ToLower() == "childagent") //{ // //******************** // //判断是否是新入店车辆 // sb.Append(bxUserinfo != null // ? string.Format("{0}={1}&", pair.Key, bxUserinfo.Agent) // : string.Format("{0}={1}&", pair.Key, pair.Value)); //} //else if (pair.Key.ToLower() == "custkey") //{ // //******************** // //判断是否是新入店车辆 // sb.Append(bxUserinfo != null // ? string.Format("{0}={1}&", pair.Key, bxUserinfo.OpenId) // : string.Format("{0}={1}&", pair.Key, pair.Value)); //} else { sb.Append(string.Format("{0}={1}&", pair.Key, pair.Value)); } } if (isAndroid) { sb.Append(string.Format("RenewalType={0}&", 7)); } sb.Remove(sb.Length - 1, 1); string geturl = string.Format("http://{0}/api/CarInsurance/GetReInfo{1}", uri.Host + ":" + uri.Port, sb.ToString()); //2,分配 //给续保车分配续保顾问 //******************** //判断是否是新入店车辆 //var advAgent = bxUserinfo != null ? GetAgentModelFactory(int.Parse(bxUserinfo.Agent)) : GetAgentModelFactory(request.ChildAgent); var advAgent = GetAgentModelFactory(request.ChildAgent); int userinfoAgent = 0;//查询原来的userinfo用 //******************** //判断是否是新入店车辆 //if (bxUserinfo != null) //{ // userinfoAgent = int.Parse(bxUserinfo.Agent); //} //else //{ userinfoAgent = request.ChildAgent > 0 ? request.ChildAgent : request.Agent; //} //3,续保 string strGetMsg = string.Empty; using (var client = new HttpClient()) { var clientResult = client.GetAsync(geturl).Result; if (clientResult.StatusCode.ToString().Equals("429")) { viewModel.BusinessStatus = -429; viewModel.StatusMessage = "请求客户端过多,请稍候再试"; return(viewModel); } if (clientResult.IsSuccessStatusCode) { strGetMsg = await clientResult.Content.ReadAsStringAsync(); } if (string.IsNullOrWhiteSpace(strGetMsg)) { viewModel.BusinessStatus = -10002; viewModel.StatusMessage = "获取到续保信息失败"; return(viewModel); } viewModel = strGetMsg.FromJson <GetReInfoNewViewModel>(); viewModel.Agent = advAgent.Id; //******************** //判断是否是新入店车辆 //if (bxUserinfo != null) //{ // viewModel.AgentName = !isInAssign ? advAgent.AgentName : "未分配"; //} //else //{ // viewModel.AgentName = "未分配"; //} viewModel.AgentName = advAgent.AgentName; } //插入意向 //4,插入续保修改人日志 // var newBxUserinfo = new bx_userinfo(); //******************** //判断是否是新入店车辆 //if (bxUserinfo == null) //{ newBxUserinfo = GetUserInfo(request.LicenseNo, userinfoAgent.ToString()); //if (newBxUserinfo == null) //{ // viewModel.BusinessStatus = -10002; // viewModel.StatusMessage = "获取到续保信息失败"; // return viewModel; //} //修改userinfo //newBxUserinfo.OpenId = advAgent.OpenId; //newBxUserinfo.Agent = advAgent.Id.ToString(); //if (_userInfoRepository.Update(newBxUserinfo) > 0) //{ // viewModel.CustKey = advAgent.OpenId; //} //} //if (bxUserinfo != null) //{ // //返回当前记录的buid // viewModel.Buid = bxUserinfo.Id; // //插入续保修改记录 // AddChangeLog(bxUserinfo.Id, userinfoAgent, request.ChildAgent, 1);//第一步 // if (!isInAssign) // {//如果不在未分配的池子里 // AddChangeLog(bxUserinfo.Id, request.ChildAgent, advAgent.Id, 2); //第二步 // } // else // { // AddChangeLog(bxUserinfo.Id, request.ChildAgent, advAgent.Id, 6); //第二步 // } //} //else //{ //返回当前记录的buid viewModel.Buid = newBxUserinfo.Id; //插入续保修改记录 AddChangeLog(newBxUserinfo.Id, userinfoAgent, 0, 1); //第一步 //AddChangeLog(newBxUserinfo.Id, userinfoAgent, advAgent.Id, 6); //第二步 //} //******************** //判断是否是新入店车辆 //if (bxUserinfo == null) //{ //5,添加分配通知 //20170405修改,不发分配通知 //var msgRequest = new AddMessageRequest //{ // Body = request.LicenseNo, // MsgType = 6, // ToAgentId = advAgent.Id, // MsgLevel = 1, // SendTime = DateTime.Now.ToString(), // ChildAgent = request.ChildAgent, // LicenseNo = request.LicenseNo, // Buid = newBxUserinfo.Id //}; //_messageService.AddMessage(msgRequest); //} //6,添加续保通知,向bx_notice_xb插记录,商业险或交强险在90天范围之内 //long noticeBuid = bxUserinfo != null ? bxUserinfo.Id : newBxUserinfo.Id; //if (viewModel.UserInfo != null) //{ // _noticexbService.AddNoticexb(viewModel.UserInfo.LicenseNo, viewModel.UserInfo.BusinessExpireDate, // viewModel.UserInfo.ForceExpireDate, viewModel.UserInfo.NextBusinessStartDate, // viewModel.UserInfo.NextForceStartDate, viewModel.SaveQuote.Source, advAgent.Id, noticeBuid, 1); //} return(viewModel); }