コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        public void AgentCanUse_IsUsedEquals2_ReturnFalse()
        {
            bx_agent agent = new bx_agent()
            {
                IsUsed = 0
            };
            var result = agent.AgentCanUse();

            Assert.IsFalse(result);
        }
コード例 #5
0
        public void AgentCanUse_IsUsedEqaula1_ReturnTrue()
        {
            bx_agent agent = new bx_agent()
            {
                IsUsed = 1
            };
            var result = agent.AgentCanUse();

            Assert.IsTrue(result);
        }
コード例 #6
0
        public void AgentCanQuote_IsUsedEquals0AndQuoteEquals0ReturnFalse()
        {
            bx_agent agent = new bx_agent()
            {
                IsUsed  = 0,
                IsQuote = 0
            };

            var result = agent.AgentCanQuote();

            Assert.IsFalse(result);
        }
コード例 #7
0
        public void AgentCanQuote_IsUsedEquals1AndQuoteEquals1ReturnTrue()
        {
            bx_agent agent = new bx_agent()
            {
                IsUsed  = 1,
                IsQuote = 1
            };

            var result = agent.AgentCanQuote();

            Assert.IsTrue(result);
        }
コード例 #8
0
        /// <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);
        }
コード例 #9
0
        public void AgentCanSubmit_IsUsedEquals1AndQuoteEquals1AndSubmitEquals2ReturnFalse()
        {
            bx_agent agent = new bx_agent()
            {
                IsUsed   = 1,
                IsQuote  = 1,
                IsSubmit = 2
            };

            var result = agent.AgentCanSubmit();

            Assert.IsFalse(result);
        }
コード例 #10
0
        /// <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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        /// <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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        /// <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);
        }
コード例 #15
0
        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);
        }
コード例 #16
0
        /// <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);
        }
コード例 #17
0
        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);
        }
コード例 #18
0
        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);
        }
コード例 #19
0
        /// <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);
        }
コード例 #20
0
        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);
        }
コード例 #21
0
        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);
        }
コード例 #22
0
        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);
        }
コード例 #23
0
        /// <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);
        }
コード例 #24
0
        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);
        }
コード例 #25
0
        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);
        }
コード例 #26
0
        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);
        }
コード例 #27
0
        /// <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);
        }
コード例 #28
0
        /// <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);
        }
コード例 #29
0
        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);
            }
        }
コード例 #30
0
        /// <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);
        }