コード例 #1
0
        public async Task <GetReInfoNewViewModel> GetReInfo(GetReInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri)
        {
            var viewModel = new GetReInfoNewViewModel();

            #region 参数校验
            //校验请求串
            var baseRequest = new AppBaseRequest()
            {
                Agent      = request.Agent,
                SecCode    = request.SecCode,
                CustKey    = request.CustKey,
                BhToken    = request.BhToken,
                ChildAgent = request.ChildAgent
            };
            //校验返回值
            var baseResponse = _appVerifyService.Verify(baseRequest, pairs);
            if (baseResponse.ErrCode != 1)
            {
                viewModel.BusinessStatus = baseResponse.ErrCode;
                viewModel.StatusMessage  = baseResponse.ErrMsg;
                return(viewModel);
            }
            #endregion
            #region 业务逻辑
            //拼接请求串
            string strUrl = string.Format("http://{0}:{1}/api/CarInsurance/GetReInfo", uri.Host, uri.Port);
            //3,续保请求
            BaseResponse rep = await SimulateGet(strUrl, pairs);

            if (rep.ErrCode == 1)
            {
                viewModel = rep.ErrMsg.FromJson <GetReInfoNewViewModel>();
            }
            else
            {
                viewModel.BusinessStatus = rep.ErrCode;
                viewModel.StatusMessage  = rep.ErrMsg;
            }
            bx_userinfo userinfo = _userInfoRepository.FindByOpenIdAndLicense(request.CustKey, request.LicenseNo, request.ChildAgent.ToString(), request.RenewalCarType);
            viewModel.Buid       = userinfo != null ? userinfo.Id : 0;
            viewModel.Agent      = baseResponse.Agent;
            viewModel.AgentName  = baseResponse.AgentName;
            viewModel.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            viewModel.IsDistrib  = userinfo != null ? userinfo.IsDistributed : 0;
            //添加续保通知,向bx_notice_xb插记录,商业险或交强险在90天范围之内
            //20170111产品说再改吧,又不需要app的通知了
            //if (userinfo != null)
            //{
            //    long noticeBuid = userinfo.Id;
            //    _noticexbService.AddNoticexb(viewModel.UserInfo.LicenseNo, viewModel.UserInfo.BusinessExpireDate,
            //        viewModel.UserInfo.ForceExpireDate, viewModel.UserInfo.NextBusinessStartDate,
            //        viewModel.UserInfo.NextForceStartDate, viewModel.SaveQuote.Source, int.Parse(userinfo.Agent), noticeBuid, 1);
            //}
            #endregion
            return(viewModel);
        }
コード例 #2
0
        public GetReInfoNewViewModel GetReInfoDetail(GetReInfoRequest request, IEnumerable <KeyValuePair <string, string> > pairs, Uri uri)
        {
            var viewModel = new GetReInfoNewViewModel();

            #region 参数校验
            //校验请求串
            var baseRequest = new AppBaseRequest()
            {
                Agent      = request.Agent,
                SecCode    = request.SecCode,
                CustKey    = request.CustKey,
                BhToken    = request.BhToken,
                ChildAgent = request.ChildAgent
            };
            //校验返回值
            var baseResponse = _appVerifyService.Verify(baseRequest, pairs);
            if (baseResponse.ErrCode != 1)
            {
                viewModel.BusinessStatus = baseResponse.ErrCode;
                viewModel.StatusMessage  = baseResponse.ErrMsg;
                return(viewModel);
            }
            #endregion
            #region 业务逻辑
            //拼接请求串
            string strUrl = string.Format("http://{0}:{1}/api/Bjd/GetReInfoDetail", uri.Host, uri.Port);
            //3,续保请求
            BaseResponse rep   = SimulateSyncGet(strUrl, pairs);
            var          model = new AppReInfoViewModel();
            if (rep.ErrCode == 1)
            {
                model = rep.ErrMsg.FromJson <AppReInfoViewModel>();
                viewModel.BusinessStatus = model.BusinessStatus;
                viewModel.StatusMessage  = model.StatusMessage;
                viewModel.UserInfo       = model.UserInfo;
                viewModel.SaveQuote      = model.SaveQuote;
                viewModel.Buid           = model.Buid;
                viewModel.Agent          = baseResponse.Agent;
                viewModel.AgentName      = baseResponse.AgentName;
            }
            else
            {
                viewModel.BusinessStatus = rep.ErrCode;
                viewModel.StatusMessage  = rep.ErrMsg;
                bx_userinfo userinfo = _userInfoRepository.FindByOpenIdAndLicense(request.CustKey, request.LicenseNo, request.ChildAgent.ToString(), request.RenewalCarType);
                viewModel.Buid      = userinfo != null ? userinfo.Id : 0;
                viewModel.Agent     = baseResponse.Agent;
                viewModel.AgentName = baseResponse.AgentName;
            }
            #endregion
            return(viewModel);
        }
コード例 #3
0
        public HttpResponseMessage GetReInfoDetail([FromUri] GetReInfoRequest request)
        {
            _logAppInfo.Info(string.Format("获取续保详情接口请求串:{0}", Request.RequestUri));
            var viewModel = new GetReInfoNewViewModel();

            if (!ModelState.IsValid)
            {
                viewModel.BusinessStatus = -10000;
                string msg = ModelState.Values.Where(a => a.Errors.Count == 1).Aggregate(string.Empty, (current, a) => current + (a.Errors[0].ErrorMessage + ";   "));
                viewModel.StatusMessage = "输入参数错误," + msg;
                return(viewModel.ResponseToJson());
            }
            viewModel = _appAchieveService.GetReInfoDetail(request, Request.GetQueryNameValuePairs(), Request.RequestUri);
            //_logAppInfo.Info(string.Format("获取续保详情接口返回值:{0}", viewModel.ToJson()));
            return(viewModel.ResponseToJson());
        }
コード例 #4
0
        // [EnableThrottling()]
        public async Task <HttpResponseMessage> FetchReInsuranceInfo([FromUri] GetReInfoRequest request)
        {
            _logAppInfo.Info(string.Format("App请求续保接口请求串:{0}", Request.RequestUri));
            var viewModel = new GetReInfoNewViewModel();

            if (!ModelState.IsValid)
            {
                viewModel.BusinessStatus = -10000;
                string msg = ModelState.Values.Where(a => a.Errors.Count == 1).Aggregate(string.Empty, (current, a) => current + (a.Errors[0].ErrorMessage + ";   "));
                viewModel.StatusMessage = "输入参数错误," + msg;
                return(viewModel.ResponseToJson());
            }
            //if (request.RenewalType == 6 || request.RenewalType == 7)
            //{
            //    viewModel.BusinessStatus = 0;
            //    return viewModel.ResponseToJson();
            //}
            viewModel = await _workOrderService.GetReInfo(request, Request.GetQueryNameValuePairs(), Request.RequestUri);

            _logAppInfo.Info(string.Format("App请求续保接口返回值:{0}", viewModel.ToJson()));
            return(viewModel.ResponseToJson());
        }
コード例 #5
0
        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);
        }