/// <summary> /// 续保调用第三方接口传数据 /// </summary> /// <param name="agent"></param> /// <param name="viewModel"></param> public void PostThirdPart(int agent, ViewModels.GetReInfoViewModel viewModel) { //请求第三方Url string strUrl = string.Empty; //取缓存值 var cacheKey = string.Format("camera_url_{0}", agent); strUrl = CacheProvider.Get <string>(cacheKey); if (string.IsNullOrEmpty(strUrl)) { bx_config config = _configRepository.Find(agent.ToString(), 4); strUrl = config != null ? config.config_value : ""; CacheProvider.Set(cacheKey, strUrl, 10800); } //判断url是否为空 if (string.IsNullOrEmpty(strUrl)) { return; } IBxAgent agentModel = _getAgentInfoService.GetAgentModelFactory(agent); string secretKey = agentModel == null ? "" : agentModel.SecretKey; //执行post请求方法 Task.Factory.StartNew(() => SendPost(agent, secretKey, strUrl, viewModel)); }
public DriverLicenseTypeResponse GetList(GetDriverLicenseCarTypeRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { DriverLicenseTypeResponse response = new DriverLicenseTypeResponse(); //根据经纪人获取手机号 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); } var listskey = string.Format("gsc_driverlicense_cartype_key"); var list = CacheProvider.Get <List <bx_drivelicense_cartype> >(listskey); if (list == null) { list = _typeRepository.FindList(); CacheProvider.Set(listskey, list, 86400); } response.List = list; return(response); }
public GetParaBhTypeResponse GetParaBhType(GetParaBhTypeRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetParaBhTypeResponse(); //参数校验 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); } var list = _paraBhTypeRepository.GetListByTypeId(request.TypeId, request.IsAll); if (list.Count > 0) { response.Total = list.Count; response.ParaBhTypeList = list; } else { response.ErrCode = -1; } return(response); }
public WorkOrderDetailListResponse WorkOrderDetailList(WorkOrderDetailListRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new WorkOrderDetailListResponse(); //bhToken校验 //if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) //{ // response.ErrCode = -300; // response.ErrMsg = "登录信息已过期,请重新登录"; // return response; //} IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.BadRequest; return(response); } if (!AppValidateReqest(pairs, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } try { //根据OpenId、车牌号、代理人Id找Buid bx_userinfo bxUserInfo = _userInfoRepository.FindByAgentLicense(request.LicenseNo, request.ChildAgent.ToString()); if (bxUserInfo == null) { response.ErrCode = 0; response.ErrMsg = "查不到此续保信息"; return(response); } var bxWorkOrder = _userinfoRenewalInfoRepository.FindByBuid(bxUserInfo.Id); if (bxWorkOrder != null) { response.ErrCode = 1; response.WorkOrder = bxWorkOrder; response.WorkOrderDetailList = _consumerReviewRepository.FindDetails(bxUserInfo.Id); } else { response.ErrCode = 0; response.ErrMsg = "查无数据"; } } catch (Exception ex) { response.ErrCode = -1; logError.Info("获取受理记录异常,更新订单信息:" + request.ToJson() + "\n 异常信息:" + ex.StackTrace + " \n " + ex.Message); } return(response); }
public MsgClosedOrderResponse MsgClosedOrder(MsgClosedOrderRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new MsgClosedOrderResponse(); IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!AppValidateReqest(pairs, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } var bui = _userInfoRepository.FindByBuid(request.Buid); if (bui == null) { response.ErrCode = 0; response.ErrMsg = "找不到该车辆信息"; return(response); } response.LicenseNo = bui.LicenseNo; response.MoldName = bui.MoldName; var bcr = _consumerReviewRepository.FindNewClosedOrder(request.Buid, 1); if (bcr == null) { response.ErrCode = -1; response.ErrMsg = "该车辆未出单"; return(response); } response.ReviewContent = bcr.content; var buri = _userinfoRenewalInfoRepository.FindByBuid(request.Buid); if (buri != null) { response.ErrCode = 1; response.SaAgent = buri.sa_id.HasValue ? buri.sa_id.Value : 0; response.SaAgentName = buri.sa_name; response.AdvAgent = buri.xubao_id.HasValue ? buri.xubao_id.Value : 0; response.AdvAgentName = buri.xubao_name; response.SourceName = buri.intentioncompany.HasValue ? buri.intentioncompany.Value.ToEnumDescriptionString(typeof(EnumSource)) : ""; } return(response); }
public BaseResponse ValidateAgent(BaseRequest request, bx_userinfo userinfo) { BaseResponse response = new BaseResponse(); IBxAgent curagentModel = _getAgentInfoService.GetAgentModelFactory(int.Parse(userinfo.Agent)); //由于前端传的是当前用户和顶级,故此处只判断顶级,否则部分数据可能显示不了 if (curagentModel.Id == 0 || curagentModel.TopAgentId != request.Agent) { response.Status = HttpStatusCode.Forbidden; response.ErrMsg = "请求数据无权限"; return(response); } return(response); }
public async Task <GetCityListResponse> GetCityList(GetCityListRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetCityListResponse(); //根据经纪人获取手机号 IBxAgent agentModel = GetAgentModelFactory(request.Agent); //logInfo.Info("获取到的经纪人信息:"+agentModel.ToJson()); //参数校验 if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } try { var cities = FindList(); var configedCities = new List <bx_city>(); var configCities = FindConfigCityList(int.Parse(_agentRepository.GetTopAgentId(request.Agent))); var configedCityIds = configCities.Select(x => x.city_id).Distinct(); if (configedCityIds.Any()) { foreach (var i in configedCityIds) { var config = (int)i; var tmpcity = cities.FirstOrDefault(x => x.id == config); if (tmpcity != null) { configedCities.Add(tmpcity); } } response.Cities = configedCities; } response.Status = HttpStatusCode.OK; } catch (Exception ex) { response.Status = HttpStatusCode.ExpectationFailed; logError.Info("续保请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
public IBxAgent GetCommonAgentModelFactory(int agentid, IAgentRepository agentRepository) { string cacheKey = string.Format("agent_key_cache_{0}", agentid); IBxAgent cacheValue = CacheProvider.Get <bx_agent>(cacheKey); if (cacheValue == null) { cacheValue = agentRepository.GetAgent(agentid); if (cacheValue == null) { cacheValue = new NullBxAgent(); } CacheProvider.Set(cacheKey, cacheValue, 120);//5分钟 } return(cacheValue); }
private IBxAgent GetAgentModel(int agentid) { string cacheKey = string.Format("agent_key_cache_{0}", agentid); IBxAgent cacheValue = _cacheService.Get <bx_agent>(cacheKey); if (cacheValue == null) { cacheValue = _agentRepository.GetAgent(agentid); if (cacheValue == null) { cacheValue = new NullBxAgent(); } _cacheService.Set(cacheKey, cacheValue, 120);//5分钟 } return(cacheValue); }
public async Task <GetContinedPeriodResponse> GetContinuedPeriod(GetCityContinuedPeriodRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { GetContinedPeriodResponse response = new GetContinedPeriodResponse(); //根据经纪人获取手机号 IBxAgent agentModel = GetAgentModelFactory(request.Agent); //logInfo.Info("获取到的经纪人信息:"+agentModel.ToJson()); //参数校验 if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!agentModel.AgentCanQuote()) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } try { var cacheKey = string.Format("continuedperiod_{0}", request.Agent); var cache = CacheProvider.Get <List <bx_cityquoteday> >(cacheKey); if (cache == null) { cache = _dayRepository.GetList(request.Agent); CacheProvider.Set(cacheKey, cache, 600); response.Items = cache; } else { response.Items = cache; } response.Status = HttpStatusCode.OK; } catch (Exception ex) { response.Status = HttpStatusCode.ExpectationFailed; logError.Info("获取续保期列表请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
public async Task <GetViolationInfoResponse> GetViolationList(GetViolationInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { GetViolationInfoResponse response = new GetViolationInfoResponse(); //根据经纪人获取手机号 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 GetViolationInfoResponse(); response.Status = HttpStatusCode.ExpectationFailed; } } catch (Exception ex) { response = new GetViolationInfoResponse(); response.Status = HttpStatusCode.ExpectationFailed; } return(response); }
public MessageListResponse MessageListNew(MessageListRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new MessageListResponse(); //bhToken校验 if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) { response.ErrCode = -300; response.ErrMsg = "登录信息已过期,请重新登录"; return(response); } IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { response.ErrCode = -10001; response.ErrMsg = "参数校验错误,请检查您的校验码"; return(response); } if (!AppValidateReqest(pairs, request.SecCode)) { response.ErrCode = -10001; response.ErrMsg = "参数校验错误,请检查您的校验码"; return(response); } var msgList = new List <BxMessage>(); int total = 0;//消息表的记录数 msgList = _messageRepository.FindNoReadAllList(request.ChildAgent, out total).ConvertToViewModel(); response.MsgList = msgList.OrderByDescending(o => o.CreateTime) .Take(request.PageSize * request.CurPage) .Skip(request.PageSize * (request.CurPage - 1)) .ToList(); response.TotalCount = total; return(response); }
public AddMessageResponse AddMessage(AddMessageRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new AddMessageResponse(); //bhToken校验 //if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) //{ // response.ErrCode = -300; // response.ErrMsg = "登录信息已过期,请重新登录"; // return response; //} IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { response.ErrCode = -10001; response.ErrMsg = "参数校验错误,请检查您的校验码"; return(response); } if (!AppValidateReqest(pairs, request.SecCode)) { response.ErrCode = -10001; response.ErrMsg = "参数校验错误,请检查您的校验码"; return(response); } if (AddMessage(request) > 0) { response.ErrCode = 1; response.ErrMsg = "消息添加成功"; } else { response.ErrCode = 0; response.ErrMsg = "消息添加失败"; } return(response); }
public BaseResponse Validate(BaseRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { BaseResponse response = new BaseResponse(); IBxAgent agentModel = _getAgentInfoService.GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; if (agentModel.endDate.HasValue && agentModel.endDate.Value < DateTime.Now) { response.ErrMsg = string.Format("参数校验错误,账号已过期。过期时间为:{0}", agentModel.endDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); return(response); } response.ErrMsg = "参数校验错误,账号已禁用。"; return(response); } if (!_checkGetSecCode.ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; response.ErrMsg = "参数校验错误,SecCode校验出错。"; return(response); } return(response); }
public ReadMessageResponse ReadMessage(ReadMessageRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new ReadMessageResponse(); IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { response.ErrCode = -10001; response.ErrMsg = "参数校验错误,请检查您的校验码"; return(response); } if (!AppValidateReqest(pairs, request.SecCode)) { response.ErrCode = -10001; response.ErrMsg = "参数校验错误,请检查您的校验码"; return(response); } int result = 0; switch (request.MsgType) { case 1: { //修改bx_notice_xb表 bx_notice_xb bxNoticeXb = _noticexbRepository.Find(request.MsgId); if (bxNoticeXb != null) { bxNoticeXb.stauts = 1; result = _noticexbRepository.Update(bxNoticeXb); } } break; case 2: { //修改bx_consumer_review表 bx_consumer_review bxConsumerReview = _consumerReviewRepository.Find(request.MsgId); if (bxConsumerReview != null) { bxConsumerReview.read_status = 1; result = _consumerReviewRepository.UpdateDetail(bxConsumerReview); } } break; default: { //修改bx_message表 bx_message bxMessage = _messageRepository.Find(request.MsgId); if (bxMessage != null) { bxMessage.Msg_Status = 1; bxMessage.Update_Time = DateTime.Now; result = _messageRepository.Update(bxMessage); } } break; } if (result > 0) { response.Status = HttpStatusCode.OK; } return(response); }
public async Task<GetIntelligentReInfoResponse> GetIntelligentReInfo(GetIntelligentReInfoRequest request, IEnumerable<KeyValuePair<string, string>> pairs) { var response = new GetIntelligentReInfoResponse(); var isReadCache = true; try { //代理人校验 IBxAgent agentModel = _getAgentInfoService.GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; if (agentModel.endDate.HasValue && agentModel.endDate.Value < DateTime.Now) { response.ErrMsg = string.Format("参数校验错误,账号已过期。过期时间为:{0}", agentModel.endDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); return response; } response.ErrMsg = "参数校验错误,账号已禁用。"; return response; } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return response; } //微信端逻辑 次级代理 if (request.ChildAgent > 0) { var item = _agentRepository.GetAgent(request.ChildAgent); if (item != null && item.IsUsed == 1) { request.Agent = request.ChildAgent; } else { return new GetIntelligentReInfoResponse { ErrMsg = "您的账号已被禁用,如有疑问请联系管理员。", Status = HttpStatusCode.Forbidden }; } } ///先从库里读取,没有在走后续流程 if (request.IsCarVin == 1) { //根据车架号查询 response.CarInfo = _carInfoRepository.FindVinCarInfo(request.CarVin, request.RenewalCarType); } else { //车牌号查询 response.CarInfo = _carInfoRepository.FindOrderDate(request.LicenseNo, request.RenewalCarType); } response.Status = HttpStatusCode.OK; if (response.CarInfo != null) { response.ErrCode = 1; response.ErrMsg = "成功获取信息"; //然后调用中心取险种推荐的逻辑 response.SaveQuote = new SaveQuoteViewModel(); bx_car_renewal car_Renewal = _carRenewalRepository.FindByLicenseno(response.CarInfo.license_no); if (car_Renewal != null) { response.SaveQuote = car_Renewal.ConvetToViewModel(); } else { request.MoldName = response.CarInfo.mold_name; request.RegisterDate = response.CarInfo.register_date.HasValue ? response.CarInfo.register_date.Value.ToString("yyyy-MM-dd") : string.Empty; response.IsIntelligent = 1; //获取推荐信息失败,也返回1 var tuple = await _getIntelligentInsurance.GetCenterInsurance(request); response.SaveQuote = tuple.Item1; if (!tuple.Item2) { response.ErrCode = 2; response.ErrMsg = "成功获取车辆信息,未获取到险种信息"; } } } else { response.ErrCode = 0; response.ErrMsg = "未获取到车辆信息"; } #pragma warning disable CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 Task.Factory.StartNew(() => { GetReInfoRequest requestNew = new GetReInfoRequest() { LicenseNo = request.LicenseNo, Agent = request.Agent }; int datastatus = int.Parse(response.ErrCode.ToString() + response.IsIntelligent.ToString()); _renewalStatusService.AddRenewalStatus(response.ErrCode, requestNew); }); #pragma warning restore CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 return response; } catch (Exception ex) { response = new GetIntelligentReInfoResponse(); response.Status = HttpStatusCode.ExpectationFailed; logError.Info("获取简易续保信息发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return response; }
public MessageListResponse MessageList(MessageListRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new MessageListResponse(); //bhToken校验 if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) { response.ErrCode = -300; response.ErrMsg = "登录信息已过期,请重新登录"; return(response); } IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { response.ErrCode = -10001; response.ErrMsg = "参数校验错误,请检查您的校验码"; return(response); } if (!AppValidateReqest(pairs, request.SecCode)) { response.ErrCode = -10001; response.ErrMsg = "参数校验错误,请检查您的校验码"; return(response); } var msgList = new List <BxMessage>(); BxMessage bmsg; bx_agent bxAgent; bx_userinfo bxUserinfo; int totalmsg = 0; //消息表的记录数 int totalxb = 0; //续保表的记录数 int totalrw = 0; //回访通知表的记录数 //从bx_message里取数据 List <bx_message> listMsg = _messageRepository.FindNoReadList(request.ChildAgent, out totalmsg); //从bx_noticexb里取数据 List <bx_notice_xb> listXb = _noticexbRepository.FindNoReadList(request.ChildAgent, out totalxb); //从bx_consumer_review里取数据 List <bx_consumer_review> listRw = _consumerReviewRepository.FindNoReadList(request.ChildAgent, out totalrw); #region bx_message表数据 if (listMsg.Any()) { foreach (var itemMsg in listMsg) { bmsg = new BxMessage { StrId = "Msg_" + itemMsg.Id, Id = itemMsg.Id, MsgLevel = itemMsg.Msg_Level.HasValue ? itemMsg.Msg_Level.Value : 0, MsgStatus = itemMsg.Msg_Status.HasValue ? itemMsg.Msg_Status.Value : 0, MsgType = itemMsg.Msg_Type, SendTime = itemMsg.Send_Time.HasValue ? itemMsg.Send_Time.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", Title = itemMsg.Title, Body = itemMsg.Body, UpdateTime = itemMsg.Update_Time.HasValue ? itemMsg.Update_Time.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", Url = itemMsg.Url, AgentId = itemMsg.Agent_Id.HasValue ? itemMsg.Agent_Id.Value : 0 }; //Agent bxAgent = _agentRepository.GetAgent(bmsg.AgentId); bmsg.AgentName = bxAgent != null ? bxAgent.AgentName : ""; //CreateAgent bmsg.CreateAgentId = itemMsg.Create_Agent_Id; bxAgent = _agentRepository.GetAgent(bmsg.CreateAgentId); bmsg.CreateAgentName = bxAgent != null ? bxAgent.AgentName : ""; bmsg.CreateTime = itemMsg.Create_Time.HasValue ? itemMsg.Create_Time.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; if (itemMsg.Buid.HasValue) { bmsg.Buid = itemMsg.Buid.Value; bmsg.LicenseNo = itemMsg.License_No; bxUserinfo = new bx_userinfo(); bxUserinfo = _userInfoRepository.FindByBuid(itemMsg.Buid.Value); bmsg.OwnerAgent = bxUserinfo != null?int.Parse(bxUserinfo.Agent) : 0; } msgList.Add(bmsg); } } #endregion #region bx_noticexb表数据 if (listXb.Any()) { foreach (var itemXb in listXb) { bmsg = new BxMessage { StrId = "Xb_" + itemXb.id, Id = itemXb.id, MsgLevel = 1, MsgStatus = itemXb.stauts, MsgType = 1, SendTime = itemXb.create_time.ToString("yyyy-MM-dd HH:mm:ss"), Title = "到期通知", Body = string.Format("{0},车险{1}天后到期", itemXb.license_no, itemXb.day_num.Value.ToString()), UpdateTime = "", Url = "", AgentId = itemXb.agent_id }; //Agent bxAgent = _agentRepository.GetAgent(bmsg.AgentId); bmsg.AgentName = bxAgent != null ? bxAgent.AgentName : ""; //CreateAgent bmsg.CreateAgentId = itemXb.agent_id; bmsg.CreateAgentName = bxAgent != null ? bxAgent.AgentName : ""; bmsg.CreateTime = itemXb.create_time.ToString("yyyy-MM-dd HH:mm:ss"); bmsg.LicenseNo = itemXb.license_no; bmsg.LastForceEndDate = itemXb.last_force_end_date.HasValue ? itemXb.last_force_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; bmsg.LastBizEndDate = itemXb.Last_biz_end_date.HasValue ? itemXb.Last_biz_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; bmsg.NextForceStartDate = itemXb.next_force_start_date.HasValue ? itemXb.next_force_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; bmsg.NextBizStartDate = itemXb.next_biz_start_date.HasValue ? itemXb.next_biz_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""; bmsg.Source = itemXb.source; bmsg.Days = itemXb.days.HasValue ? itemXb.days.Value : 0; bmsg.Buid = itemXb.b_uid; //根据buid获取当前的userinfo的agent,方便查看详情 bxUserinfo = new bx_userinfo(); bxUserinfo = _userInfoRepository.FindByBuid(itemXb.b_uid); bmsg.OwnerAgent = bxUserinfo != null?int.Parse(bxUserinfo.Agent) : 0; msgList.Add(bmsg); } } #endregion #region bx_consumer_review表数据 if (listRw.Any()) { foreach (var itemRw in listRw) { bmsg = new BxMessage { StrId = "Rw_" + itemRw.id, Id = itemRw.id, MsgLevel = 1, MsgStatus = itemRw.read_status.Value, MsgType = 2, SendTime = itemRw.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), Title = "回访通知" }; if (itemRw.b_uid.HasValue) { bmsg.Buid = itemRw.b_uid.Value; bxUserinfo = new bx_userinfo(); bxUserinfo = _userInfoRepository.FindByBuid(itemRw.b_uid.Value); bmsg.LicenseNo = bxUserinfo != null ? bxUserinfo.LicenseNo : ""; bmsg.OwnerAgent = bxUserinfo != null?int.Parse(bxUserinfo.Agent) : 0; } DateTime dt = itemRw.next_review_date.Value; bmsg.Body = string.Format("{0}月{1}日{2} 需回访{3}", dt.Month, dt.Day, dt.ToString("hh:mm"), bmsg.LicenseNo); bmsg.UpdateTime = ""; bmsg.Url = ""; //Agent bmsg.AgentId = itemRw.operatorId.Value; bmsg.AgentName = itemRw.operatorName; //CreateAgent bmsg.CreateAgentId = itemRw.operatorId.Value; bmsg.CreateAgentName = itemRw.operatorName; bmsg.CreateTime = itemRw.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"); bmsg.Buid = itemRw.b_uid.Value; msgList.Add(bmsg); } } #endregion response.MsgList = msgList.OrderByDescending(o => o.CreateTime) .Take(request.PageSize * request.CurPage) .Skip(request.PageSize * (request.CurPage - 1)) .ToList(); response.TotalCount = totalmsg + totalxb + totalrw; return(response); }
public async Task <GetReportClaimResponse> GetReportClaim(GetReportClaimRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetReportClaimResponse(); //根据经纪人获取手机号 IBxAgent agentModel = GetAgentModelFactory(request.Agent); //logInfo.Info("获取到的经纪人信息:"+agentModel.ToJson()); //参数校验 if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } if (agentModel.IsUsed != 1) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } bool isSucceed = false; bx_charge charge = _chargeRepository.Find(request.Agent, request.BusyKey); //2 :报备类型 if (charge == null) { response.Status = HttpStatusCode.BadRequest; return(response); } try { string reportClaimFlagKey = string.Format("{0}_claim_key", request.LicenseNo); string reportClaimCacheKey = string.Format("{0}_{1}", request.LicenseNo, "reportClaim"); string historyContractCacheKey = string.Format("{0}_{1}", request.LicenseNo, "historyContract"); //CacheProvider.Remove(reportClaimCacheKey); //CacheProvider.Remove(historyContractCacheKey); //CacheProvider.Remove(reportClaimFlagKey); var reportClaimFlagCache = CacheProvider.Get <string>(reportClaimFlagKey); if (reportClaimFlagCache != null) { isSucceed = true; var reportClaimCache = CacheProvider.Get <List <bx_report_claim> >(reportClaimCacheKey); var historyContractCache = CacheProvider.Get <List <bx_history_contract> >(historyContractCacheKey); response.ClaimList = reportClaimCache; response.ContractList = historyContractCache; } else { //发送请求 checkneed using (var client = new HttpClient()) { client.Timeout = TimeSpan.FromMinutes(1); string _choosebaobei = System.Configuration.ConfigurationManager.AppSettings["ChooseBaoBei"]; var choseVal = string.IsNullOrWhiteSpace(_choosebaobei) ? 0 : int.Parse(_choosebaobei); var baobeiUrl = string.Empty; string getUrl = string.Empty; if (choseVal == 0) { baobeiUrl = _baobeizhlhurl; getUrl = string.Format( "/api/ZhongHua/GetUnderwriteClaimsInfo?licenceCode={0}&engineNo={1}&carVin={2}&type={3}", request.LicenseNo, request.EngineNo, request.CarVin, request.Type); } else { baobeiUrl = _baobeigscurl; getUrl = string.Format( "/api/GuoShouCai/GetUnderwriteClaimsInfo?licenceCode={0}&engineNo={1}&carVin={2}&type={3}", request.LicenseNo, request.EngineNo, request.CarVin, request.Type); } client.BaseAddress = new Uri(baobeiUrl); //getUrl = // string.Format( // "/api/GuoShouCai/GetUnderwriteClaimsInfo?licenceCode={0}&engineNo={1}&carVin={2}&type={3}", // request.LicenseNo, request.EngineNo, request.CarVin, request.Type); HttpResponseMessage res = await client.GetAsync(getUrl); if (res.IsSuccessStatusCode) { WaGuoShouCaiQuoteResponse result = await res.Content.ReadAsAsync <WaGuoShouCaiQuoteResponse>(); if (result.ErrCode == 0) { var reportClaimList = result.GuoShouCaiQuoteResult.ClaimsLinsInfo; var existList = _reportClaimRepository.FindList(request.LicenseNo); List <bx_report_claim> claims = new List <bx_report_claim>(); if (reportClaimList.Count != existList.Count) { if (reportClaimList.Count > 0) { _reportClaimRepository.Remove(request.LicenseNo); claims = reportClaimList.Select(claimsListInfo => new bx_report_claim { AccidentPlace = claimsListInfo.AccidentPlace, AccidentPsss = claimsListInfo.AccidentPsss, DriverName = claimsListInfo.DriverName, IsCommerce = claimsListInfo.IsCommerce, IsOwners = claimsListInfo.IsOwners, IsThreecCar = claimsListInfo.IsThreecCar, LicenseNo = request.LicenseNo, ReportDate = string.IsNullOrWhiteSpace(claimsListInfo.ReportDate) ? DateTime.MinValue : DateTime.Parse(claimsListInfo.ReportDate), }).ToList(); _reportClaimRepository.Add(claims); } } else { claims = existList; } //放入缓存 CacheProvider.Set(reportClaimCacheKey, claims, 86400); response.ClaimList = claims; var historyList = result.GuoShouCaiQuoteResult.HistoryContractInfo; var existHistoryList = _historyClaimRepository.FindList(request.LicenseNo); List <bx_history_contract> historyContracts = new List <bx_history_contract>(); if (historyList != null && existHistoryList.Count != historyList.Count) { if (historyList.Count > 0) { _historyClaimRepository.Remove(request.LicenseNo); historyContracts = historyList.Select(info => new bx_history_contract { Enddate = DateTime.Parse(info.Enddate), InsureCompanyName = info.InsureCompanyName, IsCommerce = info.IsCommerce, LicenseNo = request.LicenseNo, PolicyNo = info.PolicyNo, Strdate = DateTime.Parse(info.Strdate), }).ToList(); _historyClaimRepository.Add(historyContracts); } } else { historyContracts = existHistoryList; } //放入缓存 CacheProvider.Set(historyContractCacheKey, historyContracts, 86400); response.ContractList = historyContracts; CacheProvider.Set(reportClaimFlagKey, 1, 86000); isSucceed = true; //#region //////更新bx_charge //if (charge.total_count == charge.used_count) //{ // //余额不足 // response.Status = HttpStatusCode.OK; // response.ErrCode = -2; // response.ClaimList = new List<bx_report_claim>(); // response.ContractList = new List<bx_history_contract>(); // return response; //} //charge.used_count += 1; //charge.update_time = DateTime.Now; //var chargeCount = _chargeRepository.Update(charge); //if (chargeCount == 1) //{ // //插入bx_charge_history // var history = new bx_charge_history // { // charge_id = charge.id, // license_no = request.LicenseNo, // result_status = 1 //成功 // }; // _chargeHistoryRepository.Add(history); //} //response.TotalCount = charge.total_count.HasValue ? charge.total_count.Value : 0; //response.UsedCount = charge.used_count.HasValue ? charge.used_count.Value : 0; ////response.List = result.ClaimList; //response.Status = HttpStatusCode.OK; //response.ErrCode = 0; //return response; //#endregion } else { CacheProvider.Remove(reportClaimFlagKey); //插入bx_charge_history var history = new bx_charge_history { charge_id = charge.id, license_no = request.LicenseNo, result_status = 0 //失败 }; _chargeHistoryRepository.Add(history); response.Status = HttpStatusCode.OK; response.ErrCode = result.ErrCode; //-2:查询车辆信息失败 -1202:请提供正确的车架号和发动机号 -3:获取历史承保信息信息失败 -4:获取理赔信息失败 return(response); } } else { logError.Info("收费服务-获取车辆出险信息发生异常:调用接口getclaimhistory失败"); } } } if (isSucceed) { //更新bx_charge if (charge.total_count <= charge.used_count) { //余额不足 response.Status = HttpStatusCode.OK; response.ClaimList = new List <bx_report_claim>(); response.ContractList = new List <bx_history_contract>(); response.TotalCount = charge.total_count.HasValue ? charge.total_count.Value : 0; response.UsedCount = charge.used_count.HasValue ? charge.used_count.Value : 0; response.ErrCode = -5; return(response); } charge.used_count += 1; charge.update_time = DateTime.Now; var chargeCount = _chargeRepository.Update(charge); if (chargeCount == 1) { //插入bx_charge_history var history = new bx_charge_history { charge_id = charge.id, license_no = request.LicenseNo, result_status = 1 //成功 }; _chargeHistoryRepository.Add(history); } response.TotalCount = charge.total_count.HasValue ? charge.total_count.Value : 0; response.UsedCount = charge.used_count.HasValue ? charge.used_count.Value : 0; //response.List = result.ClaimList; response.Status = HttpStatusCode.OK; response.ErrCode = 0; } else { CacheProvider.Remove(reportClaimFlagKey); } return(response); } catch (TaskCanceledException ex) { response.Status = HttpStatusCode.RequestTimeout; } catch (Exception ex) { response.Status = HttpStatusCode.ExpectationFailed; logError.Info("收费服务-获取车辆出险信息发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
public async Task <UpdateChargeResponse> Update(UpdateChargeRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new UpdateChargeResponse(); //根据经纪人获取手机号 IBxAgent agentModel = GetAgentModelFactory(request.Agent); //logInfo.Info("获取到的经纪人信息:"+agentModel.ToJson()); //参数校验 if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } bx_charge charge = _chargeRepository.Find(request.Agent, request.BusyKey); if (charge == null) { response.Status = HttpStatusCode.BadRequest; return(response); } try { //发送请求 checkneed using (var client = new HttpClient()) { client.BaseAddress = new Uri(_url); var requestmodel = new { LicenseNo = request.LicenseNo, Agent = request.Agent }; HttpResponseMessage res = await client.PostAsJsonAsync("api/userinfo/FindCarInfoBy", requestmodel); if (res.IsSuccessStatusCode) { WaFindCarInfoResponse result = await res.Content.ReadAsAsync <WaFindCarInfoResponse>(); if (result.ErrCode == 0) { //更新bx_charge if (charge.total_count == charge.used_count) { //余额不足 response.Status = HttpStatusCode.OK; response.ErrCode = -2; return(response); } charge.used_count += 1; charge.update_time = DateTime.Now; var chargeCount = _chargeRepository.Update(charge); if (chargeCount == 1) { //插入bx_charge_history var history = new bx_charge_history { charge_id = charge.id, license_no = request.LicenseNo, result_status = 1 //成功 }; _chargeHistoryRepository.Add(history); } response.TotalCount = charge.total_count.HasValue ? charge.total_count.Value : 0; response.UsedCount = charge.used_count.HasValue ? charge.used_count.Value : 0; response.MoldName = result.CarInfo.MoldName; response.CarVin = result.CarInfo.CarVin; response.RegisterDate = result.CarInfo.RegisteDate; response.LicenseNo = result.CarInfo.PlateNo; response.EngineNo = result.CarInfo.EngineNo; response.LicenseOwner = result.CarInfo.LicenseOwner; response.OwnerIdNo = result.CarInfo.OwnerIdNo; response.Status = HttpStatusCode.OK; response.ErrCode = 0; return(response); } else { //插入bx_charge_history var history = new bx_charge_history { charge_id = charge.id, license_no = request.LicenseNo, result_status = 0 //失败 }; _chargeHistoryRepository.Add(history); response.Status = HttpStatusCode.OK; response.ErrCode = -1; return(response); } } } } catch (Exception ex) { response.Status = HttpStatusCode.ExpectationFailed; logError.Info("收费服务-获取车辆信息发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
public ReListViewModel GetReInfoList(GetReInfoListRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var model = new ReListViewModel(); var list = new List <Re>(); int totalCount = 0; IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { model.BusinessStatus = -10001; model.StatusMessage = "参数校验错误,请检查您的校验码"; return(model); } //此处对续保消费系统不做校验 //if (!AppValidateReqest(pairs, request.SecCode)) //{ // model.BusinessStatus = -10001; // model.StatusMessage = "参数校验错误,请检查您的校验码"; // return model; //} try { //拼接where语句 var sbWhere = new StringBuilder(); sbWhere.Append(" QuoteStatus = -1 AND LENGTH(OpenId) > 9 AND IsTest=0 "); if (request.LastYearSource > -1) { sbWhere.Append(string.Format(" AND LastYearSource = {0} ", request.LastYearSource)); } if (request.RenewalStatus == 1) { //sbWhere.Append(" AND (( NeedEngineNo=0 AND RenewalStatus!=1 ) ") // .Append(" OR ( NeedEngineNo=0 AND LastYearSource>-1 ) ") //.Append(" OR ( RenewalStatus=1 )) "); sbWhere.Append(" AND (( NeedEngineNo=0 AND RenewalStatus=0 ) ") .Append(" OR ( RenewalStatus=1 )) "); } else if (request.RenewalStatus == 0) { //sbWhere.Append(" AND NeedEngineNo=1 AND RenewalStatus=0 "); //sbWhere.Append(" AND ( NeedEngineNo=1 OR RenewalStatus!=1 )"); sbWhere.Append(" AND (( NeedEngineNo=1 AND RenewalStatus=0 )") .Append(" OR ( RenewalStatus=-1 )) "); } if (request.IsOnlyMine.HasValue) { if (request.IsOnlyMine.Value == 0) { //查询当前代理人及子集的agent string agentids = _agentRepository.GetSonsIdToString(request.ChildAgent, true); if (!string.IsNullOrEmpty(agentids)) { sbWhere.Append(" AND Agent in (") .Append(agentids) .Append(") "); } } } else { sbWhere.Append(string.Format(" AND Agent ='{0}' ", request.ChildAgent)); } if (!string.IsNullOrWhiteSpace(request.LicenseNo)) { sbWhere.Append(string.Format(" AND (LicenseNo like '%{0}%' OR LicenseOwner like '%{0}%') ", request.LicenseNo.ToUpper())); } //查询列表 var userinfo = new List <bx_userinfo>(); userinfo = _userInfoRepository.FindReList(sbWhere.ToString(), request.PageSize, request.CurPage, out totalCount); //续保总数 model.TotalCount = totalCount; if (totalCount < 0) { model.BusinessStatus = 0; model.StatusMessage = "没有续保记录"; return(model); } if (userinfo.Count > 0) { Re re; foreach (var item in userinfo) { if (string.IsNullOrWhiteSpace(item.LicenseNo)) { continue; } re = new Re(); re.Buid = item.Id; //创建时间 if (item.CreateTime != null) { re.CreateTime = item.UpdateTime.HasValue ? item.UpdateTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : item.CreateTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); } re.LastYearSource = item.LastYearSource; //配置基础信息 re.UserInfo = item.ConvertToViewModel(_carRenewalRepository.FindCarRenewal(item.Id), _carInfoRepository.Find(item.LicenseNo), _lastInfoRepository.GetByBuid(item.Id)); //续保状态,默认情况是0,如果是获取到车辆信息和正常续保成功,会返回1 re.RenewalStatus = 0; //续保判断返回信息 if (item.RenewalStatus == 1) { //续保成功 re.BusinessStatus = 1; re.StatusMessage = "续保成功"; re.RenewalStatus = 1; } else//0和-1 { if (item.NeedEngineNo == 1) { //需要完善行驶证信息 re.BusinessStatus = 2; re.StatusMessage = "需要完善行驶证信息(车辆信息和险种都没有获取到)"; re.UserInfo.BusinessExpireDate = ""; re.UserInfo.ForceExpireDate = ""; re.UserInfo.NextBusinessStartDate = ""; re.UserInfo.NextForceStartDate = ""; } if (item.NeedEngineNo == 0) { //获取车辆信息成功,但获取险种失败 re.BusinessStatus = 3; re.StatusMessage = "获取车辆信息成功(车架号,发动机号,品牌型号及初登日期),险种获取失败"; re.RenewalStatus = 1;//该情况属于续保成功 re.UserInfo.BusinessExpireDate = ""; re.UserInfo.ForceExpireDate = ""; re.UserInfo.NextBusinessStartDate = ""; re.UserInfo.NextForceStartDate = ""; } //if (item.NeedEngineNo == 0 && item.LastYearSource > -1) //{ // //续保成功 // re.BusinessStatus = 1; // re.StatusMessage = "续保成功"; // re.RenewalStatus = 1; //} if (item.RenewalStatus == -1) { re.BusinessStatus = 0; re.StatusMessage = "获取续保信息失败"; re.UserInfo.BusinessExpireDate = ""; re.UserInfo.ForceExpireDate = ""; re.UserInfo.NextBusinessStartDate = ""; re.UserInfo.NextForceStartDate = ""; } } #region 以前续保状态判断 注释掉 //if (item.NeedEngineNo == 1 && item.RenewalStatus == 0)//if (item.NeedEngineNo == 1) //{ // //需要完善行驶证信息 // re.BusinessStatus = 2; // re.StatusMessage = "需要完善行驶证信息(车辆信息和险种都没有获取到)"; // re.UserInfo.BusinessExpireDate = ""; // re.UserInfo.ForceExpireDate = ""; // re.UserInfo.NextBusinessStartDate = ""; // re.UserInfo.NextForceStartDate = ""; //} //if (item.RenewalStatus == -1)//if (item.LastYearSource == -1) //{ // re.BusinessStatus = 0; // re.StatusMessage = "获取续保信息失败"; // re.UserInfo.BusinessExpireDate = ""; // re.UserInfo.ForceExpireDate = ""; // re.UserInfo.NextBusinessStartDate = ""; // re.UserInfo.NextForceStartDate = ""; //} //if (item.NeedEngineNo == 0 && item.RenewalStatus == 0) //{ // //获取车辆信息成功,但获取险种失败 // re.BusinessStatus = 3; // re.StatusMessage = "获取车辆信息成功(车架号,发动机号,品牌型号及初登日期),险种获取失败"; // re.RenewalStatus = 1;//该情况属于续保成功 // re.UserInfo.BusinessExpireDate = ""; // re.UserInfo.ForceExpireDate = ""; // re.UserInfo.NextBusinessStartDate = ""; // re.UserInfo.NextForceStartDate = ""; //} //if ((item.NeedEngineNo == 0 && item.LastYearSource > -1) || item.RenewalStatus == 1)//if (item.RenewalStatus == 1)// //{ // //续保成功 // re.BusinessStatus = 1; // re.StatusMessage = "续保成功"; // re.RenewalStatus = 1; //} #endregion list.Add(re); } model.BusinessStatus = 1; model.ReList = list; } } catch (Exception ex) { model.BusinessStatus = -10003; model.StatusMessage = "服务发生异常"; logError.Info("续保列表接口请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(model); }
public AppGetReInfoResponse GetReInfoDetail(GetReInfoDetailRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new AppGetReInfoResponse(); //bhToken校验 //if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) //{ // response.BusinessStatus = -300; // response.BusinessMessage = "登录信息已过期,请重新登录"; // return response; //} IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } //if (!AppValidateReqest(pairs, request.SecCode)) //{ // response.Status = HttpStatusCode.Forbidden; // return response; //} try { //取bx_userinfo对象 var userinfo = new bx_userinfo(); if (request.Buid.HasValue && request.Buid.Value != 0) { //如果传buid过来,重新赋值request userinfo = _userInfoRepository.FindByBuid(request.Buid.Value); if (userinfo != null) { request.LicenseNo = userinfo.LicenseNo; request.ChildAgent = int.Parse(userinfo.Agent); } } //else //{ // if (request.ChildAgent.HasValue) // { // //根据OpenId、车牌号、代理人Id找userinfo对象 // userinfo = _userInfoRepository.FindByAgentLicense(request.LicenseNo, request.ChildAgent.Value.ToString()); // } //} if (userinfo == null) { response.Status = HttpStatusCode.NoContent; return(response); } else { response.Buid = userinfo.Id; //UserInfo response.UserInfo = userinfo; //增加当前userinfo的代理人返回 response.Agent = int.Parse(userinfo.Agent); response.Status = HttpStatusCode.OK; if (!string.IsNullOrEmpty(userinfo.LicenseNo)) { response.SaveQuote = _carRenewalRepository.FindByLicenseno(userinfo.LicenseNo); response.CarInfo = _carInfoRepository.Find(userinfo.LicenseNo); } if (userinfo.NeedEngineNo == 1) { //需要完善行驶证信息 response.BusinessStatus = 2; response.BusinessMessage = "需要完善行驶证信息(车辆信息和险种都没有获取到)"; } if (userinfo.NeedEngineNo == 0 && userinfo.RenewalStatus != 1) { //获取车辆信息成功,但获取险种失败 response.BusinessStatus = 3; response.BusinessMessage = "获取车辆信息成功(车架号,发动机号,品牌型号及初登日期),险种获取失败"; } if ((userinfo.NeedEngineNo == 0 && userinfo.LastYearSource > -1) || userinfo.RenewalStatus == 1) { //续保成功 response.BusinessStatus = 1; response.BusinessMessage = "续保成功"; } if (userinfo.LastYearSource == -1) { response.BusinessStatus = 0; response.BusinessMessage = "获取续保信息失败"; } return(response); } } catch (Exception ex) { response = new AppGetReInfoResponse(); response.Status = HttpStatusCode.ExpectationFailed; logError.Info("APP续保详情接口请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
/// <summary> /// 业务:续保顾问用。创建WorkOrderDetail对象和更新WorkOrder对象 /// </summary> /// <param name="request"></param> /// <returns></returns> public AddOrUpdateWorkOrderDetailResponse AddOrUpdateWorkOrderDetail(AddOrUpdateWorkOrderDetailRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new AddOrUpdateWorkOrderDetailResponse(); //bhToken校验 if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) { response.ErrCode = -300; response.ErrMsg = "登录信息已过期,请重新登录"; return(response); } //传参校验 IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.BadRequest; return(response); } if (!AppValidateReqest(pairs, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } if (request.Status == 0) { response.ErrCode = -1; response.ErrMsg = "受理状态不能为空"; return(response); } try { DateTime dateTime = DateTime.Now; bx_userinfo_renewal_info workOrder; bx_userinfo bxUserInfo; if (request.Buid.HasValue && request.Buid.Value != 0) { //如果传buid过来,重新赋值request bxUserInfo = _userInfoRepository.FindByBuid(request.Buid.Value); if (bxUserInfo != null) { request.LicenseNo = bxUserInfo.LicenseNo; request.OwnerAgent = int.Parse(bxUserInfo.Agent); } } else { //根据OpenId、车牌号、代理人Id找userinfo对象 bxUserInfo = _userInfoRepository.FindByAgentLicense(request.LicenseNo, request.OwnerAgent.ToString()); } if (bxUserInfo == null) { response.ErrCode = 0; response.ErrMsg = "查不到此续保信息"; return(response); } int workOrderId = request.WorkOrderId; if (workOrderId == 0) { workOrder = new bx_userinfo_renewal_info(); workOrder.sa_id = request.SaAgent; workOrder.sa_name = request.SaAgentName; workOrder.client_name = request.CustomerName; workOrder.client_mobile = request.Phone; workOrder.b_uid = (int)bxUserInfo.Id; workOrder.client_intention = 3;//默认添加,其他情况 //workOrder.remark = request.Remark; workOrder.create_time = dateTime; workOrder.xubao_id = request.ChildAgent; workOrder.xubao_name = request.ChildName; workOrderId = _userinfoRenewalInfoRepository.Add(workOrder); } if (workOrderId > 0) { var workOrderDetail = new bx_consumer_review { b_uid = (int)bxUserInfo.Id, content = request.Remark, operatorId = request.ChildAgent, operatorName = request.ChildName }; if (!string.IsNullOrWhiteSpace(request.NextReviewDate)) { workOrderDetail.next_review_date = DateTime.Parse(request.NextReviewDate); } workOrderDetail.read_status = 0; workOrderDetail.status = 0;//跟进类型,0回访,1投诉,2跟进.. workOrderDetail.result_status = request.Status; workOrderDetail.intentioncompany = request.IntentionCompany; workOrderDetail.create_time = dateTime; int workOrderDetailId = _consumerReviewRepository.AddDetail(workOrderDetail); if (workOrderDetailId > 0) { if (workOrderId != 0) { if (request.Status == 1) { //5,添加出单通知 var msgRequest = new AddMessageRequest { Body = request.LicenseNo, MsgType = 7, ToAgentId = request.Agent, MsgLevel = 1, SendTime = DateTime.Now.ToString(), ChildAgent = request.ChildAgent, LicenseNo = request.LicenseNo, Buid = bxUserInfo.Id, Source = request.IntentionCompany }; _messageService.AddMessage(msgRequest); } //修改意向里的主记录 workOrder = new bx_userinfo_renewal_info(); workOrder = _userinfoRenewalInfoRepository.FindById(workOrderId); if (workOrder != null) { workOrder.intentioncompany = request.IntentionCompany; workOrder.result_status = request.Status; workOrder.xubao_id = request.ChildAgent; workOrder.xubao_name = request.ChildName; _userinfoRenewalInfoRepository.Update(workOrder); //if (_userinfoRenewalInfoRepository.Update(workOrder) > 0) //{ response.ErrCode = 1; response.WorkOrderDetailId = workOrderDetailId; //} //else //{ // response.ErrCode = 0; //} } } else { response.ErrCode = 0; //response.ErrCode = 1; //response.WorkOrderDetailId = workOrderDetailId; } } else { response.ErrCode = 0; } } } catch (Exception ex) { response.ErrCode = 0; logError.Info("添加受理记录异常,受理记录信息:" + request.ToJson() + "\n 异常信息:" + ex.StackTrace + " \n " + ex.Message); } return(response); }
public UKeyListResponse GetUKeyList(GetUKeyListRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { UKeyListResponse response = new UKeyListResponse(); try { 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); } var list = _iagentAgentUKeyRepository.GetList(request.Agent); if (list.Any()) { //如果source传值的话,只取一条记录 if (request.Source > 0) { request.Source = SourceGroupAlgorithm.GetOldSource(request.Source); list = list.Where(i => i.Source == request.Source).ToList(); if (list.Count > 0) { list = list.GetRange(0, 1); } else { response.ErrCode = -1; response.ErrMsg = "无记录"; return(response); } } //else //{ //此处省略了list=list; //} //转换source值 var newList = new List <CityUKeyModel>(); var model = new CityUKeyModel(); foreach (var item in list) { model = new CityUKeyModel(); model = item; model.Source = SourceGroupAlgorithm.GetNewSource((int)item.Source); newList.Add(model); } //获取信息成功 response.Status = HttpStatusCode.OK; response.CityUKeyList = newList; } else { response.ErrCode = -1; response.ErrMsg = "无记录"; return(response); } } catch (Exception ex) { response = new UKeyListResponse(); response.Status = HttpStatusCode.ExpectationFailed; logError.Info("获取代理人ukey请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException + ",返回对象信息:" + request.ToJson()); } return(response); }
public BaseResponse EditAgentUKey(EditAgentUKeyRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { BaseResponse response = new BaseResponse(); try { IBxAgent agentModel = GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } if (request.ReqSource == 1) {//对外的接口才做这一层校验 var validateUrl = string.Format("UserCode={0}&UkeyId={1}&OldPassWord={2}&NewPassWord={3}&Agent={4}", request.UserCode, request.UkeyId, request.OldPassWord, request.NewPassWord, request.Agent); if (!ValidatePostReqest(validateUrl, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } } //查询ukey信息 var ukeyModel = _iagentAgentUKeyRepository.GetModel(request.UkeyId); if (ukeyModel == null) { response.ErrCode = -1; response.ErrMsg = "未查到Ukey信息"; return(response); } //请求中心修改密码接口 string strUrl = string.Format("{0}/api/ChangePassWord/ChangePwd", _baoxianCenter); string oldPwd = request.ReqSource == 1 ? request.OldPassWord : string.Empty; var objPost = new { UserCode = request.UserCode, UkeyId = request.UkeyId, OldPassWord = oldPwd, NewPassWord = request.NewPassWord }; StringBuilder postData = new StringBuilder(); postData.Append("UserCode=").Append(request.UserCode) .Append("&UkeyId=").Append(request.UkeyId) .Append("&OldPassWord="******"&NewPassWord="******"&ReqSource=").Append(request.ReqSource); string result = string.Empty; int i = HttpWebAsk.Post(strUrl, postData.ToString(), out result); logInfo.Info("调用中心修改密码接口Url:" + strUrl + ";请求参数为:" + objPost.ToJson() + ";返回结果为:" + result); if (!string.IsNullOrWhiteSpace(result)) { var ret = result.FromJson <UKeyEdit>(); if (ret.ErrCode == 0) {//修改成功 response.Status = HttpStatusCode.OK; //如果修改成功,则保存用户名 if (string.IsNullOrEmpty(ukeyModel.InsuranceUserName)) { ukeyModel.InsuranceUserName = request.UserCode; int u = _iagentAgentUKeyRepository.UpdateModel(ukeyModel); logInfo.Info(string.Format("修改保司密码成功,数据库修改{0}条记录。", u)); } } else { //修改失败 response.ErrCode = -1; response.ErrMsg = ret.ErrMsg; } } } catch (Exception ex) { response = new BaseResponse(); response.Status = HttpStatusCode.ExpectationFailed; logError.Info("修改保司密码请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException + ",返回对象信息:" + request.ToJson()); } return(response); }
/// <summary> /// 业务:sa用。第一次创建WorkOrder /// </summary> /// <param name="request"></param> /// <returns></returns> public AddOrUpdateWorkOrderResponse AddOrUpdateWorkOrder(AddOrUpdateWorkOrderRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new AddOrUpdateWorkOrderResponse(); //bhToken校验 if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) { response.ErrCode = -300; response.ErrMsg = "登录信息已过期,请重新登录"; return(response); } //传参校验 IBxAgent agentModel = GetAgentModelFactory(request.Agent); //参数校验 if (agentModel == null)// || childAgent == null) { response.Status = HttpStatusCode.BadRequest; return(response); } if (!AppValidateReqest(pairs, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } if (request.IntentionView == 0) { response.ErrCode = -1; response.ErrMsg = "意向不能为空"; return(response); } if (request.OwnerAgent == 0) { response.ErrCode = -2; response.ErrMsg = "车辆当前受理人Id不能为空"; return(response); } try { bx_userinfo bxUserInfo; if (request.Buid.HasValue && request.Buid.Value != 0) { //如果传buid过来,重新赋值request bxUserInfo = _userInfoRepository.FindByBuid(request.Buid.Value); if (bxUserInfo != null) { request.LicenseNo = bxUserInfo.LicenseNo; request.OwnerAgent = int.Parse(bxUserInfo.Agent); } } else { //根据OpenId、车牌号、代理人Id找userinfo对象 bxUserInfo = _userInfoRepository.FindByAgentLicense(request.LicenseNo, request.OwnerAgent.ToString()); } if (bxUserInfo == null) { response.ErrCode = 0; response.ErrMsg = "查不到此续保信息"; return(response); } int workOrderId = 0;//标记添加修改意向成功与否 DateTime dateTime = DateTime.Now; bx_userinfo_renewal_info workOrder = _userinfoRenewalInfoRepository.FindByBuid(bxUserInfo.Id); if (workOrder != null) {//如果库里有记录,执行更新 workOrder.sa_id = request.ChildAgent; workOrder.sa_name = request.ChildName; workOrder.client_name = request.CustomerName; workOrder.client_mobile = request.Phone; workOrder.client_intention = request.IntentionView; workOrder.remark = request.Remark; workOrderId = _userinfoRenewalInfoRepository.Update(workOrder); } else {//如果库里无记录,执行插入 workOrder = new bx_userinfo_renewal_info(); workOrder.sa_id = request.ChildAgent; workOrder.sa_name = request.ChildName; workOrder.client_name = request.CustomerName; workOrder.client_mobile = request.Phone; workOrder.b_uid = bxUserInfo.Id; workOrder.client_intention = request.IntentionView; workOrder.remark = request.Remark; workOrder.create_time = dateTime; workOrderId = _userinfoRenewalInfoRepository.Add(workOrder); } if (workOrderId > 0) { response.ErrCode = 1; response.WorkOrderId = workOrderId; } else { response.ErrCode = -10002; response.ErrMsg = "添加意向失败,未存在可更新的内容"; } } catch (Exception ex) { response.ErrCode = -10003; logError.Info("意向接口异常,添加意向信息:" + request.ToJson() + "\n 异常信息:" + ex.StackTrace + " \n " + ex.Message); } return(response); }
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); }
/// <summary> /// 修改代理人备份密码 2017-10-20 zky/运营后台 /// </summary> /// <param name="request"></param> /// <returns></returns> public BaseResponse EditBackupPwd(EditBackupPwdRequest request) { BaseResponse response = new BaseResponse(); try { IBxAgent agentModel = GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; return(response); } if (request.ReqSource == 1) {//对外的接口才做这一层校验 var validateUrl = string.Format("Agent={0}&UkeyId={1}&PassWord1={2}&PassWord2={3}&PassWord3={4}", request.Agent, request.UkeyId, request.PwdOne, request.PwdTwo, request.PwdThree); if (!ValidatePostReqest(validateUrl, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } } //查询ukey信息 var ukeyModel = _iagentAgentUKeyRepository.GetModel(request.UkeyId); if (ukeyModel == null) { response.ErrCode = -1; response.ErrMsg = "未查到Ukey信息"; return(response); } #region 20170927 L: 密码复杂度正则表达式 校验时候用 暂时做个储备 Regex Num = new Regex("(?=.*[0-9])"); //数字 Regex Cn = new Regex("[\u4e00-\u9fa5]+"); //中文 Regex Up = new Regex("(?=.*[A-Z])"); //大写字母 Regex Low = new Regex("(?=.*[a-z])"); //小写字母 Regex Len = new Regex(".{8,20}"); //8到20字符 Regex Special = new Regex("[`~!@#$%^&*()+=|{}':;',\\[\\].<>?/~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"); //特殊字符 #endregion #region 20170928 L: 密码难度规则校验 var bl = false; //判断密码的复杂度 string[] lstStrs = new[] { request.PwdOne, request.PwdTwo, request.PwdThree }; foreach (var item in lstStrs) { //判断长度和密码难度 是否符合两种 int checkItem = (Num.IsMatch(item) ? 1 : 0) + (Up.IsMatch(item) ? 1 : 0) + (Low.IsMatch(item) ? 1 : 0) + (Special.IsMatch(item) ? 1 : 0); if (checkItem < 2) { bl = true; break; } //判断是否含有picc 和 长度校验 和 中文字符校验 if (item.ToLower().Contains("picc") || !Len.IsMatch(item) || Cn.IsMatch(item)) { bl = true; break; } } //判断密码难度 或者 四个密码是否有相同 if (bl || lstStrs.Distinct().Count() < lstStrs.Length) { response.ErrCode = -1; response.ErrMsg = "密码格式信息不对,请参照密码格式提示输入!"; return(response); } #endregion //调用中心修改备用密码接口 string url = string.Format("{0}/api/ChangePassWord/ChangeHistoryPwd", _baoxianCenter); var content = new FormUrlEncodedContent(new Dictionary <string, string>() { { "UkeyId", request.UkeyId.ToString() }, { "PassWord1", request.PwdOne }, { "PassWord2", request.PwdTwo }, { "PassWord3", request.PwdThree } }); var handler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip }; using (var http = new HttpClient(handler)) { var ResultReturn = http.PostAsync(url, content).Result.Content.ReadAsStringAsync().Result; var result = ResultReturn.FromJson <BaseViewModel>(); if (result.BusinessStatus == 200) { response.Status = HttpStatusCode.OK; //保存备用密码 ukeyModel.backup_pwd_one = request.PwdOne; ukeyModel.backup_pwd_two = request.PwdTwo; ukeyModel.backup_pwd_three = request.PwdThree; _iagentAgentUKeyRepository.UpdateModel(ukeyModel); } else { //修改失败 response.ErrCode = -1; response.ErrMsg = result.StatusMessage; } } } catch (Exception ex) { response = new BaseResponse(); response.Status = HttpStatusCode.ExpectationFailed; logError.Info("修改保司备份密码请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException + ",返回对象信息:" + request.ToJson()); } return(response); }
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); }
public async Task <GetReInfoResponse> GetReInfo(GetReInfoRequest request) { var response = new GetReInfoResponse(); var isReadCache = true; var topAgent = request.Agent;//顶级代理人 //获取当前数据的角色addbygpj20180829 int roleType = _managerRoleRepository.GetRoleTypeByAgentId(request.ChildAgent > 0 ? request.ChildAgent : request.Agent); try { IBxAgent agentModel = _getAgentInfoService.GetAgentModelFactory(request.Agent); if (!agentModel.AgentCanUse()) { response.Status = HttpStatusCode.Forbidden; if (agentModel.endDate.HasValue && agentModel.endDate.Value < DateTime.Now) { response.BusinessMessage = string.Format("参数校验错误,账号已过期。过期时间为:{0}", agentModel.endDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); return(response); } response.BusinessMessage = "参数校验错误,账号已禁用。"; return(response); } //获取[顶级]代理人是否重复数据的标记addbygpj20180829 int repeateQuote = agentModel.repeat_quote; #region userinfo逻辑 //微信端逻辑 次级代理 if (request.ChildAgent > 0) { agentModel = _getAgentInfoService.GetAgentModelFactory(request.ChildAgent); if (agentModel.AgentCanUse()) { request.Agent = request.ChildAgent; } else { return(new GetReInfoResponse { BusinessMessage = "您的账号已被禁用,如有疑问请联系管理员。", Status = HttpStatusCode.Forbidden }); } } #region 摄像头的黑名单、查重过滤 bool isAdd = true; if (request.RenewalType == 3) { //黑名单 //查重 CameraBackDataViewModel backData = _fiterAndRepeatDataService.GetFiterData(request.LicenseNo, topAgent, request.ChildAgent, request.CustKey, request.CityCode, request.RenewalCarType, repeateQuote, roleType); if (backData != null) { if (backData.IsBlack) { //在黑名单列表中,无需继续往下,执行直接return return(new GetReInfoResponse { BusinessMessage = "车辆已进入黑名单,未执行续保操作", Status = HttpStatusCode.Forbidden }); } else { //不在黑名单列表中 if (!string.IsNullOrEmpty(backData.Buid) && !string.IsNullOrEmpty(backData.Agent) && !string.IsNullOrEmpty(backData.OpenId)) { isAdd = false; request.Agent = int.Parse(backData.Agent); request.CustKey = backData.OpenId; } } } } #endregion #region 操作bx_userinfo对象 bx_userinfo userinfo = UserinfoSearchFactory.Find(request, _userInfoRepository); if (userinfo == null) { if (!string.IsNullOrEmpty(_isAddIdCardBack6) && _isAddIdCardBack6.Equals("1") && string.IsNullOrEmpty(request.SixDigitsAfterIdCard)) { //如果身份证后6位字段为空,则取数据库中该车牌其他的记录的值 Stopwatch ssw = new Stopwatch(); ssw.Start(); //查重复数据 RepeatUserInfoModel model = new RepeatUserInfoModel(); List <RepeatUserInfoModel> listRepeat = _userInfoRepository.GetLicenseRepeat(topAgent, request.LicenseNo); if (listRepeat.Any()) { model = listRepeat.Where(l => l.SixDigitsAfterIdCard != null && l.SixDigitsAfterIdCard.Trim() != "").OrderByDescending(o => o.UpdateTime).FirstOrDefault(); } //取一条赋值后六位 if (model != null && model.Buid > 0) { request.SixDigitsAfterIdCard = model.SixDigitsAfterIdCard; } logError.Info(string.Format("buid为{0},后6位插入时间{1}", 0, ssw.ElapsedMilliseconds)); ssw.Stop(); } userinfo = UserinfoMakeFactory.Save(request, roleType, _userInfoRepository, agentModel.TopAgentId); if (request.IsLastYearNewCar == 1) { isReadCache = await _checkCarNeedDrivingInfoService.GetInfo(userinfo); } } else { if (!string.IsNullOrEmpty(_isAddIdCardBack6) && _isAddIdCardBack6.Equals("1") && string.IsNullOrEmpty(request.SixDigitsAfterIdCard) && string.IsNullOrEmpty(userinfo.SixDigitsAfterIdCard)) { //如果身份证后6位字段为空,则取数据库中该车牌其他的记录的值 Stopwatch ssw = new Stopwatch(); ssw.Start(); //查重复数据 RepeatUserInfoModel model = new RepeatUserInfoModel(); List <RepeatUserInfoModel> listRepeat = _userInfoRepository.GetLicenseRepeat(topAgent, request.LicenseNo); if (listRepeat.Any()) { model = listRepeat.Where(l => l.SixDigitsAfterIdCard != null && l.SixDigitsAfterIdCard.Trim() != "").OrderByDescending(o => o.UpdateTime).FirstOrDefault(); } //取一条赋值后六位 if (model != null && model.Buid > 0) { request.SixDigitsAfterIdCard = model.SixDigitsAfterIdCard; } logError.Info(string.Format("buid为{0},后6位插入时间{1}", userinfo.Id, ssw.ElapsedMilliseconds)); ssw.Stop(); } userinfo = UserinfoMakeFactory.Update(request, userinfo, _userInfoRepository, agentModel.TopAgentId); bool isNeedCheckNeed = !(request.IsLastYearNewCar == 1 & (!string.IsNullOrWhiteSpace(request.CarVin) && !string.IsNullOrWhiteSpace(request.EngineNo))); if (request.IsLastYearNewCar == 1) { //超过半年的数据要重新调用车型信息 if (userinfo.UpdateTime.HasValue && userinfo.UpdateTime.Value.AddMonths(6) <= DateTime.Now) { isReadCache = await _checkCarNeedDrivingInfoService.GetInfo(userinfo); } else { if (userinfo.NeedEngineNo == 1) //以前没有拿到行驶证信息 { if (isNeedCheckNeed) //没有拿到车架号及发动机号 { isReadCache = await _checkCarNeedDrivingInfoService.GetInfo(userinfo); } } } } } #endregion long buid = userinfo.Id; #endregion #region bx_quotereq_carinfo 逻辑 var reqCacheKey = string.Format("{0}-{1}", buid, "reqcarinfo"); var quotereq = _quoteReqCarinfoRepository.Find(buid); if (quotereq == null) { QuoteReqCarInfoMakeFactory.Save(buid, request.IsLastYearNewCar, _quoteReqCarinfoRepository); } else { QuoteReqCarInfoMakeFactory.Update(quotereq, request.IsLastYearNewCar, _quoteReqCarinfoRepository); } #endregion if (request.RenewalSource != -1) { #region 调用中心返回response信息 response = await _toCenterFromReInfoService.PushCenterService(request, buid, reqCacheKey); #endregion } if (response.BusinessStatus == 4 || request.RenewalSource == -1) { bool isOver = false; #region 读库数据 isOver = _getReInfoState.GetState(buid); response = new GetReInfoResponse(); response.UserInfo = _userInfoRepository.FindByBuid(buid); if (!isOver) { if (response.UserInfo.NeedEngineNo == 1) { //需要完善行驶证信息 response.BusinessStatus = 2; response.BusinessMessage = "需要完善行驶证信息(车辆信息和险种都没有获取到)"; } if (response.UserInfo.NeedEngineNo == 0 && response.UserInfo.RenewalStatus != 1) { //获取车辆信息成功,但获取险种失败 response.BusinessStatus = 3; response.BusinessMessage = "获取车辆信息成功(车架号,发动机号,品牌型号及初登日期),险种获取失败"; } if ((response.UserInfo.NeedEngineNo == 0 && response.UserInfo.LastYearSource > -1) || response.UserInfo.RenewalStatus == 1) { //续保成功 response.BusinessStatus = 1; response.BusinessMessage = "续保成功"; response.SaveQuote = _carRenewalRepository.FindByLicenseno(request.LicenseNo); response.CarInfo = _carInfoRepository.Find(response.UserInfo.LicenseNo); } } else { if (response.UserInfo.LastYearSource == -1) { response.BusinessStatus = -10002; response.BusinessMessage = "获取续保信息失败"; } } response.Status = HttpStatusCode.OK; #endregion } response.UserInfo.Id = buid; #region 发送分配请求 string moldName = response.UserInfo != null ? response.UserInfo.MoldName : string.Empty; //车型 string businessExpireDate = string.Empty; //商业险到期 string forceExpireDate = string.Empty; //交强险到期 if (response.SaveQuote != null) { businessExpireDate = response.SaveQuote.LastBizEndDate.HasValue ? response.SaveQuote.LastBizEndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : string.Empty; forceExpireDate = response.SaveQuote.LastForceEndDate.HasValue ? response.SaveQuote.LastForceEndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : string.Empty; } //调用重新分配的接口 if (request.RenewalType == 3) { /* * 调用院院的分配方法,将数据推过去即可,无需返回值 * 20180820修改,1,去掉是否调用摄像头进店(api.config的IsUrlDistributed标识)判断;2,修改分配方法,调用刘松年的新版接口 */ #pragma warning disable CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 Task.Factory.StartNew(() => { _sentDistributedService.SentDistributed(response.BusinessStatus, moldName, buid, topAgent, request.ChildAgent, userinfo.Agent, request.CityCode, request.LicenseNo, request.RenewalType, userinfo.RenewalType.Value, businessExpireDate, forceExpireDate, false, request.ChildAgent, request.CameraId, isAdd, repeateQuote, roleType, request.CustKey, request.CityCode); }); #pragma warning restore CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 } #endregion #region 修改批续进来的状态 if (response.BusinessStatus == 1) { UpdateBatchRenewalStatus(buid, 1); } else if (response.BusinessStatus == 2) { UpdateBatchRenewalStatus(buid, 2); } else if (response.BusinessStatus == 3) { UpdateBatchRenewalStatus(buid, 4); } else { UpdateBatchRenewalStatus(buid, 2); } #endregion } catch (Exception ex) { MetricUtil.UnitReports("renewal_service"); response.Status = HttpStatusCode.ExpectationFailed; logError.Info("续保请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException + ",请求对象信息:" + request.ToJson() + ";返回对象信息" + response.ToJson()); } return(response); }
/// <summary> /// 参数校验方法 /// </summary> /// <param name="request"></param> /// <param name="pairs"></param> /// <returns></returns> public AppBaseResponse Verify(AppBaseRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new AppBaseResponse(); //读取api.config里的CheckApp节点,如果是0,则无需验证,如果是1,必须验证 string checkApp = System.Configuration.ConfigurationManager.AppSettings["CheckApp"]; if (!string.IsNullOrWhiteSpace(checkApp) && int.Parse(checkApp.Trim()) != 0) { //bhToken校验 //if (!AppTokenValidateReqest(Encoding.ASCII.GetString(Convert.FromBase64String(request.BhToken)), request.ChildAgent)) if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent)) { response.ErrCode = -13000; response.ErrMsg = "登录信息已过期,请重新登录"; return(response); } //传参校验 if (!AppValidateReqest(pairs, request.SecCode)) { response.ErrCode = -10001; response.ErrMsg = "参数校验失败"; return(response); } } //代理人信息校验 IBxAgent childagentModel = GetAgentModelFactory(request.ChildAgent); //1,当前代理人是否可用; if (!childagentModel.AgentCanUse()) { response.ErrCode = -13020; response.ErrMsg = "代理人参数错误"; return(response); } //如果当前代理和顶级一样 if (request.Agent == request.ChildAgent) { //2,顶级代理人是否可用; if (childagentModel.ParentAgent != 0)//if (!_agentService.IsTopAgentId(request.Agent)) { response.ErrCode = -13020; response.ErrMsg = "代理人参数错误"; return(response); } } else {//如果不一样,则获取顶级代理信息 IBxAgent agentModel = GetAgentModelFactory(request.Agent); if (!childagentModel.AgentCanUse()) { response.ErrCode = -13020; response.ErrMsg = "代理人参数错误"; return(response); } if (agentModel.ParentAgent != 0) //if (!_agentService.IsTopAgentId(request.Agent)) { response.ErrCode = -13020; response.ErrMsg = "代理人参数错误"; return(response); } //3,当前代理人是否在顶级代理人下 if (!_agentRepository.GetTopAgentId(request.ChildAgent).Contains(request.Agent.ToString())) { response.ErrCode = -13020; response.ErrMsg = "代理人参数错误"; return(response); } } //参数校验成功,返回errcode为1 response.ErrCode = 1; response.CustKey = request.CustKey; response.Agent = childagentModel.Id; response.AgentName = childagentModel.AgentName; return(response); }