/// <summary>
        /// 查找最后一条已出单记录
        /// </summary>
        /// <param name="buid"></param>
        /// <returns></returns>
        public bx_consumer_review FindNewClosedOrder(long buid, int status = 1)
        {
            bx_consumer_review model = new bx_consumer_review();

            try
            {
                model = DataContextFactory.GetDataContext().bx_consumer_review.Where(x => x.b_uid == buid && x.result_status == status).OrderByDescending(o => o.id).FirstOrDefault();
            }
            catch (Exception ex)
            {
                logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException);
            }
            return(model);
        }
        public bx_consumer_review Find(int id)
        {
            bx_consumer_review model = new bx_consumer_review();

            try
            {
                model = DataContextFactory.GetDataContext().bx_consumer_review.Where(i => i.id == id).FirstOrDefault();
            }
            catch (Exception ex)
            {
                logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException);
            }
            return(model);
        }
        public int UpdateDetail(bx_consumer_review bxWorkOrderDetail)
        {
            int count = 0;

            try
            {
                DataContextFactory.GetDataContext().bx_consumer_review.AddOrUpdate(bxWorkOrderDetail);
                count = DataContextFactory.GetDataContext().SaveChanges();
            }
            catch (Exception ex)
            {
                logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException);
            }
            return(count);
        }
        public int AddDetail(bx_consumer_review bxWorkOrderDetail)
        {
            int workOrderDetailId = 0;

            try
            {
                var t = DataContextFactory.GetDataContext().bx_consumer_review.Add(bxWorkOrderDetail);
                DataContextFactory.GetDataContext().SaveChanges();
                workOrderDetailId = t.id;
            }
            catch (Exception ex)
            {
                logError.Info("发生异常:" + ex.Source + "\n" + ex.StackTrace + "\n" + ex.Message + "\n" + ex.InnerException);
                workOrderDetailId = 0;
            }
            return(workOrderDetailId);
        }
        public ReadMessageResponse ReadMessage(ReadMessageRequest request, IEnumerable <KeyValuePair <string, string> > pairs)
        {
            var      response   = new ReadMessageResponse();
            IBxAgent agentModel = GetAgentModelFactory(request.Agent);

            //参数校验
            if (!agentModel.AgentCanUse())
            {
                response.ErrCode = -10001;
                response.ErrMsg  = "参数校验错误,请检查您的校验码";
                return(response);
            }
            if (!AppValidateReqest(pairs, request.SecCode))
            {
                response.ErrCode = -10001;
                response.ErrMsg  = "参数校验错误,请检查您的校验码";
                return(response);
            }

            int result = 0;

            switch (request.MsgType)
            {
            case 1:
            {        //修改bx_notice_xb表
                bx_notice_xb bxNoticeXb = _noticexbRepository.Find(request.MsgId);
                if (bxNoticeXb != null)
                {
                    bxNoticeXb.stauts = 1;
                    result            = _noticexbRepository.Update(bxNoticeXb);
                }
            }
            break;

            case 2:
            {        //修改bx_consumer_review表
                bx_consumer_review bxConsumerReview = _consumerReviewRepository.Find(request.MsgId);
                if (bxConsumerReview != null)
                {
                    bxConsumerReview.read_status = 1;
                    result = _consumerReviewRepository.UpdateDetail(bxConsumerReview);
                }
            }
            break;

            default:
            {        //修改bx_message表
                bx_message bxMessage = _messageRepository.Find(request.MsgId);
                if (bxMessage != null)
                {
                    bxMessage.Msg_Status  = 1;
                    bxMessage.Update_Time = DateTime.Now;
                    result = _messageRepository.Update(bxMessage);
                }
            }
            break;
            }
            if (result > 0)
            {
                response.Status = HttpStatusCode.OK;
            }
            return(response);
        }
        public BaseViewModel AddReVisited(AddReVisitedRequest request)
        {
            var viewModel = new BaseViewModel();

            try
            {
                DateTime dateTime = DateTime.Now;

                var bxUserInfo = new bx_userinfo();
                if (request.Buid.HasValue && request.Buid.Value != 0)
                {//根据buid获取userinfo对象
                    bxUserInfo = _userInfoRepository.FindByBuid(request.Buid.Value);
                }

                if (bxUserInfo == null)
                {
                    viewModel.BusinessStatus = -10002;
                    viewModel.StatusMessage  = "获取信息失败";
                    return(viewModel);
                }
                int workOrderId = 0;
                bx_userinfo_renewal_info workorder = _userinfoRenewalInfoRepository.FindByBuid(request.Buid.Value);
                if (workorder == null)
                {
                    workorder                  = new bx_userinfo_renewal_info();
                    workorder.sa_id            = request.ChildAgent;
                    workorder.sa_name          = request.ChildName;
                    workorder.client_name      = request.CustomerName;
                    workorder.client_mobile    = request.Phone;
                    workorder.b_uid            = request.Buid.Value;
                    workorder.client_intention = 3;//默认添加,其他情况
                    workorder.create_time      = dateTime;
                    workorder.xubao_id         = request.ChildAgent;
                    workorder.xubao_name       = request.ChildName;
                    workOrderId                = _userinfoRenewalInfoRepository.Add(workorder);
                }
                else
                {
                    workOrderId = workorder.id;
                    if (!string.IsNullOrWhiteSpace(request.CustomerName) || !string.IsNullOrWhiteSpace(request.Phone))
                    {
                        workorder.client_name   = request.CustomerName;
                        workorder.client_mobile = request.Phone;
                        if (_userinfoRenewalInfoRepository.Update(workorder) == 0)
                        {
                            //将失败信息插入到error里
                        }
                    }
                }
                if (workOrderId > 0)
                {
                    var workOrderDetail = new bx_consumer_review
                    {
                        b_uid         = (int)bxUserInfo.Id,
                        content       = request.Remark,
                        operatorId    = request.ChildAgent,
                        operatorName  = request.ChildName,
                        read_status   = 0,              //0未读,1已读
                        status        = request.Status, //跟进类型,0回访,1投诉,2跟进..
                        result_status = 4,              //受理结果,默认 其他。目前暂不使用
                        create_time   = dateTime
                    };
                    if (!string.IsNullOrWhiteSpace(request.NextReviewDate))
                    {
                        workOrderDetail.next_review_date = DateTime.Parse(request.NextReviewDate);
                    }
                    int workOrderDetailId = _consumerReviewRepository.AddDetail(workOrderDetail);
                    if (workOrderDetailId > 0)
                    {
                        viewModel.BusinessStatus = 1;
                    }
                    else
                    {
                        viewModel.BusinessStatus = -10002;
                        viewModel.StatusMessage  = "添加信息失败";
                    }
                }
            }
            catch (Exception ex)
            {
                viewModel.BusinessStatus = -10003;
                viewModel.StatusMessage  = "服务器发生异常";
                logError.Info("添加受理记录异常,受理记录信息:" + request.ToJson() + "\n 异常信息:" + ex.StackTrace + " \n " + ex.Message);
            }
            return(viewModel);
        }
        /// <summary>
        /// 业务:续保顾问用。创建WorkOrderDetail对象和更新WorkOrder对象
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public AddOrUpdateWorkOrderDetailResponse AddOrUpdateWorkOrderDetail(AddOrUpdateWorkOrderDetailRequest request, IEnumerable <KeyValuePair <string, string> > pairs)
        {
            var response = new AddOrUpdateWorkOrderDetailResponse();

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

            //参数校验
            if (!agentModel.AgentCanUse())
            {
                response.Status = HttpStatusCode.BadRequest;
                return(response);
            }
            if (!AppValidateReqest(pairs, request.SecCode))
            {
                response.Status = HttpStatusCode.Forbidden;
                return(response);
            }

            if (request.Status == 0)
            {
                response.ErrCode = -1;
                response.ErrMsg  = "受理状态不能为空";
                return(response);
            }
            try
            {
                DateTime dateTime = DateTime.Now;
                bx_userinfo_renewal_info workOrder;

                bx_userinfo bxUserInfo;
                if (request.Buid.HasValue && request.Buid.Value != 0)
                {
                    //如果传buid过来,重新赋值request
                    bxUserInfo = _userInfoRepository.FindByBuid(request.Buid.Value);
                    if (bxUserInfo != null)
                    {
                        request.LicenseNo  = bxUserInfo.LicenseNo;
                        request.OwnerAgent = int.Parse(bxUserInfo.Agent);
                    }
                }
                else
                {
                    //根据OpenId、车牌号、代理人Id找userinfo对象
                    bxUserInfo = _userInfoRepository.FindByAgentLicense(request.LicenseNo, request.OwnerAgent.ToString());
                }

                if (bxUserInfo == null)
                {
                    response.ErrCode = 0;
                    response.ErrMsg  = "查不到此续保信息";
                    return(response);
                }
                int workOrderId = request.WorkOrderId;
                if (workOrderId == 0)
                {
                    workOrder                  = new bx_userinfo_renewal_info();
                    workOrder.sa_id            = request.SaAgent;
                    workOrder.sa_name          = request.SaAgentName;
                    workOrder.client_name      = request.CustomerName;
                    workOrder.client_mobile    = request.Phone;
                    workOrder.b_uid            = (int)bxUserInfo.Id;
                    workOrder.client_intention = 3;//默认添加,其他情况
                    //workOrder.remark = request.Remark;
                    workOrder.create_time = dateTime;
                    workOrder.xubao_id    = request.ChildAgent;
                    workOrder.xubao_name  = request.ChildName;
                    workOrderId           = _userinfoRenewalInfoRepository.Add(workOrder);
                }
                if (workOrderId > 0)
                {
                    var workOrderDetail = new bx_consumer_review
                    {
                        b_uid        = (int)bxUserInfo.Id,
                        content      = request.Remark,
                        operatorId   = request.ChildAgent,
                        operatorName = request.ChildName
                    };
                    if (!string.IsNullOrWhiteSpace(request.NextReviewDate))
                    {
                        workOrderDetail.next_review_date = DateTime.Parse(request.NextReviewDate);
                    }
                    workOrderDetail.read_status      = 0;
                    workOrderDetail.status           = 0;//跟进类型,0回访,1投诉,2跟进..
                    workOrderDetail.result_status    = request.Status;
                    workOrderDetail.intentioncompany = request.IntentionCompany;
                    workOrderDetail.create_time      = dateTime;
                    int workOrderDetailId = _consumerReviewRepository.AddDetail(workOrderDetail);
                    if (workOrderDetailId > 0)
                    {
                        if (workOrderId != 0)
                        {
                            if (request.Status == 1)
                            {
                                //5,添加出单通知
                                var msgRequest = new AddMessageRequest
                                {
                                    Body       = request.LicenseNo,
                                    MsgType    = 7,
                                    ToAgentId  = request.Agent,
                                    MsgLevel   = 1,
                                    SendTime   = DateTime.Now.ToString(),
                                    ChildAgent = request.ChildAgent,
                                    LicenseNo  = request.LicenseNo,
                                    Buid       = bxUserInfo.Id,
                                    Source     = request.IntentionCompany
                                };
                                _messageService.AddMessage(msgRequest);
                            }
                            //修改意向里的主记录
                            workOrder = new bx_userinfo_renewal_info();
                            workOrder = _userinfoRenewalInfoRepository.FindById(workOrderId);
                            if (workOrder != null)
                            {
                                workOrder.intentioncompany = request.IntentionCompany;
                                workOrder.result_status    = request.Status;
                                workOrder.xubao_id         = request.ChildAgent;
                                workOrder.xubao_name       = request.ChildName;
                                _userinfoRenewalInfoRepository.Update(workOrder);
                                //if (_userinfoRenewalInfoRepository.Update(workOrder) > 0)
                                //{
                                response.ErrCode           = 1;
                                response.WorkOrderDetailId = workOrderDetailId;
                                //}
                                //else
                                //{
                                //    response.ErrCode = 0;
                                //}
                            }
                        }
                        else
                        {
                            response.ErrCode = 0;
                            //response.ErrCode = 1;
                            //response.WorkOrderDetailId = workOrderDetailId;
                        }
                    }
                    else
                    {
                        response.ErrCode = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                response.ErrCode = 0;
                logError.Info("添加受理记录异常,受理记录信息:" + request.ToJson() + "\n 异常信息:" + ex.StackTrace + " \n " + ex.Message);
            }
            return(response);
        }