public GetSmsAccountResponse GetSmsAccount(SmsAccountRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetSmsAccountResponse(); //参数校验 bx_agent agentModel = _agentRepository.GetAgent(request.Agent); bx_agent curAgentModel = _agentRepository.GetAgent(request.CurAgent); if (agentModel == null || curAgentModel == null) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } int messagePayType = curAgentModel.MessagePayType.HasValue ? curAgentModel.MessagePayType.Value : 0; //如果走顶级代理,则查顶级短信;否则,查当前短信信息 var smsAcount = messagePayType == 0 ? _smsContentRepository.Find(request.Agent) : _smsContentRepository.Find(request.CurAgent); if (smsAcount != null) { response.Status = HttpStatusCode.OK; response.SmsAccount = smsAcount; } else { response.ErrCode = -1; response.ErrMsg = "没有此记录"; } return(response); }
/// <summary> /// 获取代理人资源 /// </summary> /// <param name="request"></param> /// <param name="pairs"></param> /// <returns></returns> public GetAgentSourceResponse GetAgentSource(GetAgentResourceRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetAgentSourceResponse(); //根据经纪人获取手机号 bx_agent agentModel = GetAgent(request.Agent); //logInfo.Info("获取到的经纪人信息:"+agentModel.ToJson()); //参数校验 if (agentModel == null) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } var sourceList = _agentConfig.Find(int.Parse(_agentRepository.GetTopAgentId(request.Agent))); var list = sourceList.Select(x => (x.source.HasValue ? x.source.Value : 0)).ToList().Distinct(); response.ComList = list.ToList(); return(response); }
public GetSmsOrderDetailResponse GetSmsOrderDetail(GetSmsOrderDetailRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetSmsOrderDetailResponse(); //参数校验 bx_agent agentModel = _agentRepository.GetAgent(request.Agent); if (agentModel == null) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } var bxSmsOrder = _smsOrderRepository.Find(request.SmsOrderID); if (bxSmsOrder != null) { response.Status = HttpStatusCode.OK; response.BxSmsOrder = bxSmsOrder; } else { response.ErrCode = -1; response.ErrMsg = "没有此记录"; } return(response); }
public void AgentCanUse_IsUsedEquals2_ReturnFalse() { bx_agent agent = new bx_agent() { IsUsed = 0 }; var result = agent.AgentCanUse(); Assert.IsFalse(result); }
public void AgentCanUse_IsUsedEqaula1_ReturnTrue() { bx_agent agent = new bx_agent() { IsUsed = 1 }; var result = agent.AgentCanUse(); Assert.IsTrue(result); }
public void AgentCanQuote_IsUsedEquals0AndQuoteEquals0ReturnFalse() { bx_agent agent = new bx_agent() { IsUsed = 0, IsQuote = 0 }; var result = agent.AgentCanQuote(); Assert.IsFalse(result); }
public void AgentCanQuote_IsUsedEquals1AndQuoteEquals1ReturnTrue() { bx_agent agent = new bx_agent() { IsUsed = 1, IsQuote = 1 }; var result = agent.AgentCanQuote(); Assert.IsTrue(result); }
/// <summary> /// 短信是否有顶级代理人支付 /// </summary> /// <param name="agentId"></param> /// <returns></returns> public bool IsPayByTopAgent(int agentId) { bx_agent bxAgent = _agentRepository.GetAgent(agentId); if (bxAgent != null) { if (bxAgent.MessagePayType.HasValue) { return(bxAgent.MessagePayType.Value == 0);//0从顶级代理人扣费(短信),1代理人本身扣费(短信) } } return(false); }
public void AgentCanSubmit_IsUsedEquals1AndQuoteEquals1AndSubmitEquals2ReturnFalse() { bx_agent agent = new bx_agent() { IsUsed = 1, IsQuote = 1, IsSubmit = 2 }; var result = agent.AgentCanSubmit(); Assert.IsFalse(result); }
/// <summary> /// bx_agent转AgentModel /// </summary> /// <param name="agent"></param> /// <returns></returns> public AgentModel ToModel(bx_agent agent, int topParentAgent) { var topAgent = _agentRepository.GetAgent(topParentAgent); var parentAgent = _agentRepository.GetAgent(agent.ParentAgent); var smsContent = _smsContentRepository.Find(agent.MessagePayType == 0 ? topParentAgent : agent.Id); AgentModel agentmodel = new AgentModel() { Id = agent.Id, AgentName = agent.AgentName, Mobile = agent.Mobile, OpenId = agent.OpenId, ShareCode = agent.ShareCode, CreateTime = agent.CreateTime, IsBigAgent = agent.IsBigAgent, FlagId = agent.FlagId, ParentAgent = agent.ParentAgent, ParentName = parentAgent != null ? parentAgent.AgentName : string.Empty, ParentMobile = parentAgent != null ? parentAgent.Mobile : string.Empty, ParentRate = agent.ParentRate, AgentRate = agent.AgentRate, ReviewRate = agent.ReviewRate, PayType = agent.PayType, AgentGetPay = agent.AgentGetPay, CommissionType = agent.CommissionType, ParentShareCode = agent.ParentShareCode, IsUsed = agent.IsUsed, AgentAccount = agent.AgentAccount, AgentPassWord = agent.AgentPassWord, IsGenJin = agent.IsGenJin, IsDaiLi = agent.IsDaiLi, IsShow = agent.IsShow, IsShowCalc = agent.IsShowCalc, SecretKey = agent.SecretKey, IsLiPei = agent.IsLiPei, AgentType = agent.AgentType, //获取代理级别 AgentLevel = _agentRepository.GetAgentLevel(agent.ParentAgent), TopAgentId = topParentAgent, //扣短信账户是否走顶级代理 MessagePayType = agent.MessagePayType, //获取顶级代理人名字 TopAgentName = topAgent != null ? topAgent.AgentName : string.Empty, TopAgentMobile = topAgent != null ? topAgent.Mobile : string.Empty, SmsAccount = smsContent != null ? smsContent.sms_account : string.Empty, TotalTimes = smsContent != null ? smsContent.total_times : 0, AvailTimes = smsContent != null ? smsContent.avail_times : 0 }; return(agentmodel); }
public bx_agent GetAgentAsync(int agentId) { var item = new bx_agent(); try { item = new EntityContext().bx_agent.FirstOrDefault(x => x.Id == agentId); } catch (Exception ex) { logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(item); }
/// <summary> /// 根据上一级代理人Id获取代理人 /// </summary> /// <param name="openid"></param> /// <param name="parentAgent"></param> /// <returns></returns> public bx_agent GetAgentByParentAgent(string openid, int parentAgent) { var item = new bx_agent(); try { item = DataContextFactory.GetDataContext().bx_agent.FirstOrDefault(x => x.OpenId == openid && x.ParentAgent == parentAgent); } catch (Exception ex) { logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(item); }
public bx_agent GetAgentByMobile(string mobile) { var item = new bx_agent(); try { item = DataContextFactory.GetDataContext().bx_agent.FirstOrDefault(x => x.Mobile == mobile); } catch (Exception ex) { logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(item); }
/// <summary> /// 查询当前agentid是否为顶级代理 /// </summary> /// <param name="agentId"></param> /// <returns></returns> public bx_agent GetAgentIsTop(int agentId) { var item = new bx_agent(); try { item = DataContextFactory.GetDataContext().bx_agent.FirstOrDefault(x => x.Id == agentId && x.ParentAgent == 0); } catch (Exception ex) { logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(item); }
public int UpdateModel(bx_agent bxAgent) { int count = 0; try { DataContextFactory.GetDataContext().bx_agent.AddOrUpdate(bxAgent); count = DataContextFactory.GetDataContext().SaveChanges(); } catch (Exception ex) { logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(count); }
/// <summary> /// 获取当前及下级代理人 /// </summary> /// <param name="bxAgent">二级或三级代理人对象</param> /// <returns></returns> public List <bx_agent> GetSonsAndSelfList(bx_agent bxAgent) { var item = new List <bx_agent>(); try { item.Add(bxAgent); item = DataContextFactory.GetDataContext().bx_agent.Where(x => x.ParentAgent == bxAgent.Id).ToList(); } catch (Exception ex) { logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(item); }
public long Add(bx_agent agent) { long agentid = 0; try { var ag = DataContextFactory.GetDataContext().bx_agent.Add(agent); DataContextFactory.GetDataContext().SaveChanges(); agentid = ag.Id; } catch (Exception ex) { logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(agentid); }
public MyBaoJiaViewModel SetAgent(MyBaoJiaViewModel my, bx_userinfo userinfo, GetMyBjdDetailRequest request) { var curAgent = _agentRepository.GetAgent(int.Parse(userinfo.Agent)); my.CurAgentName = curAgent != null ? curAgent.AgentName : string.Empty; my.CurAgentMobile = curAgent != null ? curAgent.Mobile : string.Empty; //初始化不显示费率 0为显示 my.IsShowCalc = 1; if (request.ChildAgent != 0) { bx_agent bxAgent = _agentRepository.GetAgent(request.ChildAgent); my.IsShowCalc = bxAgent != null ? (bxAgent.IsShow.HasValue ? bxAgent.IsShow.Value : 1) : 1; } return(my); }
/// <summary> /// 创建短信充值订单 /// </summary> /// <param name="request"></param> /// <param name="pairs"></param> /// <returns></returns> public GetSmsOrderResponse SmsCreateOrder(SmsCreateOrderRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetSmsOrderResponse(); //参数校验 bx_agent agentModel = _agentRepository.GetAgent(request.Agent); if (agentModel == null) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } //创建订单对象 bx_sms_order item = new bx_sms_order(); Random rand = new Random(); item.OrderNum = DateTime.Now.ToString("yyyyMMddhhmmss") + rand.Next(0, 9).ToString() + rand.Next(0, 9).ToString(); //item.AgentId = request.CurAgent; item.RechargeAmount = request.Amount; item.SmsQuantity = request.Quantity; item.CreateTime = DateTime.Now; item.PayType = request.PayType; item.OrderStatus = 1;//下单成功 //实现创建订单方法 int orderId = CreateOrder(request.CurAgent, request.Method, request.Agent, item); //bx_sms_order smsOrder = _smsOrderRepository.Add(item); if (orderId > 0) { response.Status = HttpStatusCode.OK; item.Id = orderId; response.SmsOrder = item; logInfo.Info("创建短信充值订单成功,订单信息:" + request.ToJson()); } else { response.Status = HttpStatusCode.ExpectationFailed; logError.Info("创建订单失败,订单信息:" + request.ToJson()); } return(response); }
public bx_agent GetAgent(int agentId) { var item = new bx_agent(); try { using (var conn = DataFactory.DbService()) { item = conn.QueryFirstOrDefault <bx_agent>(string.Format("select * from bx_agent where id ={0}", agentId)); } } catch (Exception ex) { //logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(item); }
public GetAgentListResponse GetAgentList(GetAgentRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetAgentListResponse(); try { //根据经纪人获取手机号 bx_agent agentModel = GetAgent(request.Agent); //参数校验 if (agentModel == null) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } int totalCount = 0; var item = _agentRepository.GetAgentList(request.CurAgent, request.Agent, request.Search, request.AgentStatus, request.CurPage, request.PageSize, out totalCount); if (item.Count > 0) { response.Status = HttpStatusCode.OK; response.totalCount = totalCount; response.AgentList = item; } else { response.Status = HttpStatusCode.NoContent; } } catch (Exception ex) { response.Status = HttpStatusCode.InternalServerError; logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
public ApproveAgentResponse ApproveAgent(ApproveAgentRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new ApproveAgentResponse(); try { //根据经纪人获取手机号 bx_agent topAgent = GetAgent(request.Agent); bx_agent curAgent = GetAgent(request.CurAgent); //参数校验 if (topAgent == null || curAgent == null || curAgent.IsUsed != request.OriStatus) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, topAgent.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } curAgent.IsUsed = request.CurStatus; if (_agentRepository.UpdateModel(curAgent) > 0) { // 微信审核代理人接口清理缓存 var delAgentPropertiyCacheRequest = new DelAgentPropertiyCacheRequest { Agent = request.CurAgent, }; _cacheManagerService.DelAgentPropertiyCache(delAgentPropertiyCacheRequest); response.Status = HttpStatusCode.OK; } } catch (Exception ex) { response.Status = HttpStatusCode.InternalServerError; logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
/// <summary> /// 随机取一个续保顾问 /// </summary> /// <param name="agent">顶级代理Id</param> /// <returns></returns> public bx_agent AssignAdvAgent(int agent) { bx_agent bxAgent = null; //取出所有的续保顾问 List <bx_agent_distributed> list = _agentDistributedRepository.FindByParentAgent(agent); if (list.Any()) { //随机取一条 //bx_agent_distributed bxAgentDistributed = list.OrderBy(_ => Guid.NewGuid()).First(); bx_agent_distributed bxAgentDistributed = list.First(); //根据agentid取出agent对象 bxAgent = _agentRepository.GetAgent(bxAgentDistributed.AgentId); } else { //如果没有续保顾问的资源池,就分配给顶级 bxAgent = _agentRepository.GetAgent(agent); } return(bxAgent); }
public GetSmsAccountResponse CreateAccount(CreateAccountRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetSmsAccountResponse(); //参数校验 bx_agent agentModel = _agentRepository.GetAgent(request.Agent); if (agentModel == null) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } //创建发短信的账号 int smsAcountId = 0; smsAcountId = CreateAccount(request.CurAgent, request.Method, request.Agent); //如果返回来的Id是负数,则说明账号已存在,该账号的Id就是smsAcountId*(-1) if (smsAcountId < 0) { response.ErrCode = -2; response.ErrMsg = "账号已存在,无法创建"; return(response); } //返回来的Id是正数,说明创建账号成功。 if (smsAcountId > 0) { response.Status = HttpStatusCode.OK; response.SmsAccount = _smsContentRepository.Find(request.CurAgent); } else { response.ErrCode = -1; response.ErrMsg = "创建失败,微信端无法创建短信账号"; } return(response); }
public ChangeReInfoAgentResponse ChangeReInfoAgent(ChangeReInfoAgentRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new ChangeReInfoAgentResponse(); var 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); } try { //根据OpenId、车牌号、代理人Id找Buid bx_userinfo bxUserInfo = _userInfoRepository.FindByAgentLicense(request.LicenseNo, request.OwnerAgent.ToString()); if (bxUserInfo == null) { response.ErrCode = 0; response.ErrMsg = "查不到此续保信息"; return(response); } bx_agent bxAgent = _agentRepository.GetAgent(request.AssignId); if (bxAgent == null) { response.ErrCode = 0; response.ErrMsg = "查不到分配人信息"; return(response); } bxUserInfo.Agent = request.AssignId.ToString(); bxUserInfo.OpenId = bxAgent.OpenId; if (_userInfoRepository.Update(bxUserInfo) > 0 || request.OwnerAgent == request.AssignId) { AddChangeLog(bxUserInfo.Id, request.OwnerAgent, request.AssignId, 2); //第二步 //5,添加分配通知 //AddMessageRequest msgRequest = new AddMessageRequest(); //msgRequest.Body = request.LicenseNo; //msgRequest.MsgType = 6; //msgRequest.ToAgentId = request.AssignId; //msgRequest.MsgLevel = 1; //msgRequest.SendTime = DateTime.Now.ToString(); //msgRequest.ChildAgent = request.OwnerAgent; //_messageService.AddMessage(msgRequest); //bx_notice_xb xbmodel = _noticexbService.Find(bxUserInfo.Id); bx_car_renewal bxCarRenewal = _carRenewalRepository.FindByLicenseno(bxUserInfo.LicenseNo); if (bxCarRenewal != null) { _noticexbService.AddNoticexb(0, bxUserInfo.LicenseNo, bxCarRenewal.LastBizEndDate.HasValue ? bxCarRenewal.LastBizEndDate.Value.ToString() : "", bxCarRenewal.LastForceEndDate.HasValue ? bxCarRenewal.LastForceEndDate.Value.ToString() : "", bxCarRenewal.NextBizStartDate.HasValue ? bxCarRenewal.NextBizStartDate.Value.ToString() : "", bxCarRenewal.NextForceStartDate.HasValue ? bxCarRenewal.NextForceStartDate.Value.ToString() : "", bxCarRenewal.LastYearSource.HasValue ? bxCarRenewal.LastYearSource.Value : -1, int.Parse(bxUserInfo.Agent), request.Agent, bxUserInfo.Id, 0); } response.ErrCode = 1; response.ErrMsg = "分配成功"; return(response); } else { response.ErrCode = 0; response.ErrMsg = "分配失败"; return(response); } } catch (Exception ex) { response.ErrCode = -10003; logError.Info("分发接口异常,分发信息:" + request.ToJson() + "\n 异常信息:" + ex.StackTrace + " \n " + ex.Message); } return(response); }
public SmsResultViewModel SendSms(SmsRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new SmsResultViewModel(); //参数校验 //获取顶级经纪人信息 bx_agent agentModel = _agentRepository.GetAgent(request.Agent); //获取当前经纪人信息 bx_agent curagentModel = _agentRepository.GetAgent(request.CurAgent); if (agentModel == null || curagentModel == null) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } if ((int)request.BusinessType == 3 && string.IsNullOrWhiteSpace(request.LicenseNo)) { response.Status = HttpStatusCode.UnsupportedMediaType; return(response); } bool isByTopAgent = IsPayByTopAgent(request.CurAgent); //true为走顶级代理人账户,否则走当前账户 int sendAgent = 0; //以哪个代理人id创建 int messagePayType = 0; //当前代理人是顶级代理人可以充值 if (isByTopAgent) {//顶级 sendAgent = request.Agent; messagePayType = agentModel.MessagePayType.HasValue?agentModel.MessagePayType.Value:0; } else {//当前代理 sendAgent = request.CurAgent; messagePayType = curagentModel.MessagePayType.HasValue ? curagentModel.MessagePayType.Value : 0; } //获取代理人的短信信息 var smsAcount = _smsContentRepository.Find(sendAgent); if (smsAcount == null) { response.MessagePayType = messagePayType; response.Status = HttpStatusCode.NoContent; return(response); } string posturl = string.Format("{0}/{1}", _smsCenter, _smsCenterSendSmsMethod); string postData = string.Format("account={0}&password={1}&mobile={2}&smscontent={3}&businessType={4}", smsAcount.sms_account, smsAcount.sms_password, request.Mobile, request.SmsContent, (int)request.BusinessType); string result; try { int ret = HttpWebAsk.Post(posturl, postData, out result); //result = "{\"ResponseType\":\"SubmitSms\",\"TradeTime\":\"2016-05-19 19:35:03\",\"ResultCode\":0,\"Message\":\"提交成功!\"}"; if (!string.IsNullOrEmpty(result)) { var smsResult = result.FromJson <SmsResultModel>(); if (smsResult.ResultCode == 0) { //调取后台接口,将短信发送内容保存到bx_sms_account_content string getData = string.Format("agent_id={0}&sent_mobile={1}&content={2}&agent_name={3}&sent_type={4}&&businessType={5}&license_no={6}", sendAgent, request.Mobile, request.SmsContent, curagentModel.AgentName, request.SentType, (int)request.BusinessType, request.LicenseNo); string getUrl = _smsSqlInterfaceUrl + getData; logInfo.Info(string.Format("短信内容入库请求串:{0}", getUrl)); //string getResult = HttpWebAsk.HttpGet(getUrl); string insertsms = string.Empty; int insertret = HttpWebAsk.Post(_smsSqlInterfaceUrl, getData, out insertsms); logInfo.Info(string.Format("短信内容入库返回结果:{0}", insertsms)); response.BusinessStatus = 1; response.MessagePayType = messagePayType; response.StatusMessage = "短信发送成功"; response.SmsResultModel = smsResult; } else { response.BusinessStatus = 0; response.MessagePayType = messagePayType; response.StatusMessage = smsResult.Message; } } else { response.BusinessStatus = 0; response.MessagePayType = messagePayType; response.StatusMessage = "短信发送失败"; } } catch (Exception ex) { response = new SmsResultViewModel(); response.MessagePayType = messagePayType; response.Status = HttpStatusCode.ExpectationFailed; logError.Info("短信请求发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="pairs"></param> /// <returns></returns> public GetAgentIdentityAndRateResponse GetAgent(GetAgentIdentityAndRateRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetAgentIdentityAndRateResponse(); try { //根据经纪人获取手机号 bx_agent agentModel = GetAgent(request.Agent); //logInfo.Info("获取到的经纪人信息:"+agentModel.ToJson()); //参数校验 if (agentModel == null) { response.Status = HttpStatusCode.Forbidden; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; return(response); } //当前经济人 //var curAgent = _agentRepository.GetAgent(request.OpenId); var curAgent = request.ChildAgent; //_agentRepository.GetAgentByTopParentAgent(request.OpenId, request.ParentAgent); #region //直客身份 if (curAgent == 0) { response.IsAgent = 0; } else { response.IsAgent = 1; //var allids = _agentRepository.GetSonId(request.ParentAgent); //var allsons = allids.Split(','); var allsons = _agentRepository.GetSonsList(request.ParentAgent, true); //modify.by.gpj.0419.判断操作重复 //当前试算人即是经纪人自己 //if (curAgent.Id == request.Agent) //{ //看看是否是在这个顶级经纪人的归属下,才能按照经纪人身份展示,否则就按照直客处理 var isExist = allsons.Count(x => x == curAgent.ToString()) > 0; if (isExist) { response.IsAgent = 1; } else { response.IsAgent = 0; } //} //else //{ // //Request.Agent有可能是试算人的上级代理,是就按照经纪人身份处理,否则 按照直客处理 // var isExist = allsons.Count(x => x == curAgent.Id.ToString()) > 0; // if (isExist) // { // response.IsAgent = 1; // } // else // { // response.IsAgent = 0; // } //} } //后加逻辑 //if (request.ParentAgent == request.Agent) //{ // response.IsAgent = 0; //} if (response.IsAgent == 0) { using (var client = new HttpClient()) { try { string method = string.Format("{0}/api/EnterpriseAgent/WechatZhiKeRate?agentid={1}&buid={2}", _rateCenter, request.Agent, request.Buid); //string method = string.Format("{0}/api/EnterpriseAgent/WechatZhiKeRate?agentid={1}&buid={2}",_rateCenter, 102, 109154); // logError.Info("获取费率请求串:" + method); HttpResponseMessage responserate = client.GetAsync(method).Result; var rrrate = responserate.Content.ReadAsStringAsync().Result; //var resultrate = JsonConvert.DeserializeObject<ReturnRate>(rrrate); var resultrate = rrrate.FromJson <List <ReturnRate> >(); if (resultrate != null) { response.ZhiKeRate = new List <Rate>(); for (var i = 0; i < resultrate.Count; i++) { Rate rate = new Rate { //20160908兼容新旧source将0123->1248 //Source = resultrate[i].Source, Source = SourceGroupAlgorithm.GetNewSource((int)resultrate[i].Source), BizRate = resultrate[i].zhike_biz_rate }; response.ZhiKeRate.Add(rate); } } } catch (Exception ex) { logError.Info("获取费率发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } } } else { //20160908兼容新旧source将1248->0123 var hebaoitem = _hebaoDianwei.Find(request.Buid, SourceGroupAlgorithm.GetOldSource(request.Source)); if (hebaoitem != null) { Rate rate = new Rate { BizRate = hebaoitem.agent_biz_rate.HasValue ? hebaoitem.agent_biz_rate.Value : 0, ForceRate = hebaoitem.agent_force_rate.HasValue ? hebaoitem.agent_force_rate.Value : 0, TaxRate = 0 }; response.AgentRate = rate; } } #endregion } catch (Exception ex) { logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException); } return(response); }
/// <summary> /// 添加代理人信息 /// </summary> /// <param name="request"></param> /// <param name="pairs"></param> /// <returns></returns> public GetAgentResponse AddAgent(PostAddAgentRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetAgentResponse(); bx_agent agent = new bx_agent(); //备注:临时屏蔽,暂时先不上 agent = _agentRepository.GetAgentIsTop(request.TopParentAgent); if (agent == null) { response.ErrCode = -4;//顶级代理人不存在 return(response); } if (!_agentRepository.IsContainSon(request.TopParentAgent, request.AgentId)) { response.ErrCode = -5;//顶级代理下面不包含子集代理 return(response); } agent = new bx_agent(); agent = _agentRepository.GetAgentByPhoneTopAgent(request.Mobile, request.TopParentAgent); if (agent != null) { response.ErrCode = -1;//手机号已存在 return(response); } agent = new bx_agent(); agent = _agentRepository.GetAgentByTopParentAgent(request.OpenId, request.TopParentAgent); if (agent != null) { response.ErrCode = -2;//OpenId已存在 response.agent = ToModel(agent, request.TopParentAgent); return(response); } int agentlevel = _agentRepository.GetAgentLevel(GetAgent(request.AgentId).ParentAgent); if (agentlevel > 2) { response.ErrCode = -3;//不允许新增下一级代理 return(response); } //插入bx_agent bx_agent model = new bx_agent(); model.AgentName = request.AgentName; model.Mobile = request.Mobile; model.OpenId = request.OpenId; model.ParentAgent = request.AgentId;//有问题 #region 分配默认值 model.CreateTime = DateTime.Now; model.IsBigAgent = 1; model.CommissionType = 0; model.IsUsed = 0; model.IsGenJin = 0; model.IsDaiLi = 0; model.IsShow = 0; model.IsShowCalc = 0; model.IsLiPei = 0; model.AgentType = 0; model.MessagePayType = 1; //发短信走当前代理人 model.RegType = 0; //小龙说默认走单店 暂无实际需要 model.IsQuote = 1; model.IsSubmit = 1; #endregion long agentId = _agentRepository.Add(model); if (agentId > 0) { //根据agentId更新ShareCode int update = 0; update = _agentRepository.Update(agentId); if (update > 0) { //存入缓存,并读取该记录 //string agentCacheKey = string.Format("agent_cacke_key-{0}-{1}", agentId, request.AgentId // ); var agentCache = _agentRepository.GetAgent((int)agentId); //HttpRuntime.Cache.Insert(agentCacheKey, agentCache, null, DateTime.Now.AddHours(12), TimeSpan.Zero, CacheItemPriority.High, null); response.agent = ToModel(agentCache, request.TopParentAgent); } } return(response); }
public async Task <SpecialListResponse> GetSpeciaList(GetSpecialListRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { SpecialListResponse response = new SpecialListResponse(); string ukeyId; var agentConfig = _agentConfig.FindBy(request.AgentId, request.CityId).FirstOrDefault(conf => conf.source == SourceGroupAlgorithm.GetOldSource(request.Source)); if (agentConfig == null) { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = -10001; response.BusinessMessage = "没有找到代理人配置"; return(response); } else { ukeyId = agentConfig.ukey_id.ToString(); } bx_agent agentModel = GetAgent(request.AgentId); //参数校验 if (agentModel == null) { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = -10001; response.BusinessMessage = "没有找到代理人"; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = -10001; response.BusinessMessage = "参数校验失败"; return(response); } string SpecicalCacheKey = CommonCacheKeyFactory.CreateKeyWithLicense(request.AgentId.ToString() + request.CityId.ToString() + request.Source.ToString()); var key = string.Format("{0}-SpecialOptions-key", SpecicalCacheKey); string cacheKey = CacheProvider.Get <string>(key); if (cacheKey != null) { if (cacheKey == "1") { string listcachekey = string.Format("{0}-SpecialOptions", SpecicalCacheKey); response = CacheProvider.Get <SpecialListResponse>(listcachekey); response.Status = HttpStatusCode.OK; response.BusinessStatus = 1; response.BusinessMessage = "获取特约成功"; response.Key = listcachekey; return(response); } else { CacheProvider.Remove(key); } } object msgBody; msgBody = new { Source = SourceGroupAlgorithm.GetOldSource(request.Source), CityId = request.CityId, TopAgentId = request.AgentId, ukeyId = ukeyId, NotifyCacheKey = SpecicalCacheKey }; _messageCenter.SendToMessageCenter(msgBody.ToJson(), ConfigurationManager.AppSettings["MessageCenter"], ConfigurationManager.AppSettings["SpecialOption"]); for (int i = 0; i < 115; i++) { cacheKey = CacheProvider.Get <string>(key); //step1val = xuBaoKey; //step1va2 = cacheKey; if (!string.IsNullOrWhiteSpace(cacheKey)) { if (cacheKey == "0" || cacheKey == "1") { break; } } else { await Task.Delay(TimeSpan.FromSeconds(1)); } } if (cacheKey == null) { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = -10003;//缓存异常 response.BusinessMessage = "请求超时或缓存异常,请重试"; response.Key = ""; return(response); } else if (cacheKey == "0") { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = 0; response.BusinessMessage = "获取特约检索失败"; response.Key = ""; return(response); } else { string listcachekey = string.Format("{0}-SpecialOptions", SpecicalCacheKey); response = CacheProvider.Get <SpecialListResponse>(listcachekey); response.Status = HttpStatusCode.OK; response.BusinessStatus = 1; response.BusinessMessage = "获取特约成功"; response.Key = listcachekey; return(response); } }
/// <summary> /// 获取代理人资源 /// </summary> /// <param name="request"></param> /// <param name="pairs"></param> /// <returns></returns> public GetAgentSourceResponse GetAgentNewSource(GetAgentResourceRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { var response = new GetAgentSourceResponse(); //根据经纪人获取手机号 bx_agent agentModel = GetAgent(request.Agent); //logInfo.Info("获取到的经纪人信息:"+agentModel.ToJson()); //参数校验 if (agentModel == null) { 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); } //var agentsourcekey = string.Format("agent_source_key_{0}", request.Agent); var agentsourcekey = string.Format("agent_source_key_{0}_{1}", request.Agent, request.CityCode); var list = CacheProvider.Get <List <int> >(agentsourcekey); if (list == null) { var sourceList = _agentConfig.FindCities(int.Parse(_agentRepository.GetTopAgentId(request.Agent)), request.CityCode); // var sourceList = _agentConfig.FindNewCity(int.Parse(_agentRepository.GetTopAgentId(request.Agent))); list = sourceList.Where(x => x.is_used == 1).Select(x => (x.source.HasValue ? x.source.Value : 0)).Distinct().ToList(); CacheProvider.Set(agentsourcekey, list, 600); } response.ComList = new List <int>(); for (int i = 0; i < list.Count(); i++) { if (list[i] == 0) { response.ComList.Add(2); } else if (list[i] == 1) { response.ComList.Add(1); } else if (list[i] == 2) { response.ComList.Add(4); } else if (list[i] == 3) { response.ComList.Add(8); } else if (list[i] == 4) { response.ComList.Add(16); } else if (list[i] == 5) { response.ComList.Add(32); } else if (list[i] == 6) { response.ComList.Add(64); } else if (list[i] == 7) { response.ComList.Add(128); } else if (list[i] == 8) { response.ComList.Add(256); } else if (list[i] == 9) { response.ComList.Add(512); } } response.ComList = response.ComList.OrderBy(x => x).ToList(); return(response); }