Exemplo n.º 1
0
        public HttpResponseMessage LastDayReInfoTotal([FromUri] LastDayReInfoTotalRequest request)
        {
            _logAppInfo.Info(string.Format("续保统计接口请求串:{0}", Request.RequestUri));
            LastDayReInfoTotalViewModel viewModel = new LastDayReInfoTotalViewModel();

            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 = _messageService.LastDayReInfoTotal(request, Request.GetQueryNameValuePairs());

            _logAppInfo.Info(string.Format("续保统计接口返回值:{0}", response.ToJson()));
            if (response.Status == HttpStatusCode.Forbidden)
            {
                viewModel.BusinessStatus = -10001;
                viewModel.StatusMessage  = "参数校验错误,请检查您的校验码";
                return(viewModel.ResponseToJson());
            }
            if (response.Status == HttpStatusCode.ExpectationFailed)
            {
                viewModel.BusinessStatus = -10003;
                viewModel.StatusMessage  = "服务发生异常";
                return(viewModel.ResponseToJson());
            }
            viewModel.BusinessStatus = response.ErrCode;
            viewModel.StatusMessage  = response.ErrMsg;
            if (response.ErrCode == 1)
            {
                viewModel.InStoreNum   = response.InStoreNum;
                viewModel.ExpireNum    = response.ExpireNum;
                viewModel.IntentionNum = response.IntentionNum;
                viewModel.OrderNum     = response.OrderNum;
                viewModel.ReInfo       = response.ReInfo.ConvertViewModel();
            }
            return(viewModel.ResponseToJson());
        }
        public LastDayReInfoTotalResponse LastDayReInfoTotal(LastDayReInfoTotalRequest request,
                                                             IEnumerable <KeyValuePair <string, string> > pairs)
        {
            var response = new LastDayReInfoTotalResponse();

            //bhToken校验
            if (!AppTokenValidateReqest(request.BhToken, request.ChildAgent))
            {
                response.ErrCode = -300;
                response.ErrMsg  = "登录信息已过期,请重新登录";
                return(response);
            }
            var agentModel = GetAgent(request.Agent);

            //参数校验
            if (agentModel == null)
            {
                response.ErrCode = -10001;
                response.ErrMsg  = "参数校验错误,请检查您的校验码";
                return(response);
            }
            if (!AppValidateReqest(pairs, request.SecCode))
            {
                response.ErrCode = -10001;
                response.ErrMsg  = "参数校验错误,请检查您的校验码";
                return(response);
            }
            switch (request.LevelType)
            {
            case 6:
                if (request.Agent != request.ChildAgent)
                {
                    response.ErrCode = -10002;
                    response.ErrMsg  = "参数错误";
                    return(response);
                }
                break;

            case 4:
                if (request.Agent == request.ChildAgent)
                {
                    response.ErrCode = -10002;
                    response.ErrMsg  = "参数错误";
                    return(response);
                }
                break;
            }
            //获取顶级下的所有续保的在当天的数据,
            //取出已出单的数据
            //存到缓存中

            try
            {
                response.ErrCode = 1;
                string msgId     = request.StrId.Substring(request.StrId.IndexOf('_') + 1, request.StrId.Length - (request.StrId.IndexOf('_') + 1));
                var    bxMessage = _messageRepository.FindById(int.Parse(msgId));
                if (bxMessage == null)
                {
                    response.ErrCode = 0;
                    response.ErrMsg  = "无法找到此消息";
                    return(response);
                }
                if (bxMessage.Title.Length < 10)
                {
                    response.ErrCode = 0;
                    response.ErrMsg  = "消息标题有误";
                    return(response);
                }

                var sonself = new List <bx_agent>();
                //当前根据openid获取当前经纪人
                if (request.LevelType == 4)
                {//返回当前子集
                    sonself = _agentRepository.GetSonsAgent(request.ChildAgent).ToList();
                }
                else if (request.LevelType == 6)
                {//返回顶级
                    sonself = _agentRepository.GetSonsAgent(request.Agent).ToList();
                }
                sonself.Add(agentModel);
                int totalCount = 0;
                var userinfo   = _userInfoRepository.ReportForReInfoList(sonself, bxMessage.Title.Substring(0, 10), request.LicenseNo,
                                                                         out totalCount);
                response.ReInfo = userinfo;

                string   body    = bxMessage.Body;
                string[] listStr = body.Split(',');
                //进店数
                response.InStoreNum = int.Parse(listStr[0].Substring(2, listStr[0].Length - 3));
                //到期数
                response.ExpireNum = int.Parse(listStr[1].Substring(2, listStr[1].Length - 3));
                //意向数
                response.IntentionNum = int.Parse(listStr[2].Substring(2, listStr[2].Length - 3));
                //出单数
                response.OrderNum = totalCount;
            }
            catch (Exception ex)
            {
                response.InStoreNum   = 0;
                response.ExpireNum    = 0;
                response.IntentionNum = 0;
                response.OrderNum     = 0;
                response.Status       = HttpStatusCode.ExpectationFailed;
                logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException);
            }

            return(response);
        }