Ejemplo n.º 1
0
        public HttpResponseMessage GetAgentIdentity([FromUri] GetAgentIdentityAndRateRequest request)
        {
            _logInfo.Info(string.Format("获取代理人身份接口请求串:{0}", Request.RequestUri));
            var viewModel = new AgentIdentityAndRateViewModel();

            if (!ModelState.IsValid)
            {
                viewModel.BusinessStatus = -10000;
                string msg = ModelState.Values.Where(item => item.Errors.Count == 1).Aggregate(string.Empty, (current, item) => current + (item.Errors[0].ErrorMessage + ";   "));
                viewModel.StatusMessage = "输入参数错误," + msg;
                return(viewModel.ResponseToJson());
            }
            var response = _agentService.GetAgent(request, Request.GetQueryNameValuePairs());

            if (response.Status == HttpStatusCode.BadRequest || response.Status == HttpStatusCode.Forbidden)
            {
                viewModel.BusinessStatus = -10001;
                viewModel.StatusMessage  = "参数校验错误,请检查您的校验码";
                return(viewModel.ResponseToJson());
            }
            if (response.Status == HttpStatusCode.ExpectationFailed)
            {
                viewModel.BusinessStatus = -10003;
                viewModel.StatusMessage  = "服务发生异常";
            }
            else
            {
                viewModel = response.ConvertToViewModel();
                viewModel.BusinessStatus = 1;
            }
            return(viewModel.ResponseToJson());
        }
Ejemplo n.º 2
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);
        }