Exemple #1
0
        public HttpResponseMessage AddReVisited([FromBody] AddReVisitedRequest request)
        {
            _logAppInfo.Info(string.Format("添加回访记录接口请求串:{0}", Request.RequestUri));
            var viewModel = new BaseViewModel();

            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());
            }
            viewModel = _appAchieveService.AddReVisited(request, Request.GetQueryNameValuePairs());
            //_logAppInfo.Info(string.Format("添加回访记录列表接口返回值:{0}", viewModel.ToJson()));
            return(viewModel.ResponseToJson());
        }
        public BaseViewModel AddReVisited(AddReVisitedRequest request,
                                          IEnumerable <KeyValuePair <string, string> > pairs)
        {
            var viewModel = new BaseViewModel();

            #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 业务逻辑
            if (request.Buid.HasValue)
            {
                viewModel = _workOrderService.AddReVisited(request);
            }
            else
            {
                viewModel.BusinessStatus = -10000;
                viewModel.StatusMessage  = "输入参数错误,Buid不能为空";
            }
            #endregion
            return(viewModel);
        }
        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);
        }