private static void SetBGIDAndSCID(CustBussiness info)
        {
            string bgid     = "";
            string scid     = "";
            string errormsg = "";

            BLL.Util.GetBIGDSCID_UserID(info.CreateUserID, info.BGID, info.SCID, out bgid, out scid, out errormsg);

            if (string.IsNullOrEmpty(errormsg) && (!string.IsNullOrEmpty(bgid) && !string.IsNullOrEmpty(scid)))
            {
                info.BGID = bgid;
                info.SCID = scid;
            }
            else
            {
                BLL.Loger.Log4Net.Info(errormsg);
            }
        }
        private void UpdateBusinessDataByCallID(CustBussiness info)
        {
            long callID       = long.Parse(info.CallID);
            int  BGID         = int.Parse(info.BGID);
            int  SCID         = int.Parse(info.SCID);
            int  createuserid = int.Parse(info.CreateUserID);

            //查询现在表
            if (BLL.CallRecord_ORIG_Business.Instance.IsExistsByCallID(callID))
            {
                BLL.Loger.Log4Net.Info("在系统中已经存在业务数据,更新!callID=" + callID);
                //外呼时要记录当前坐席所属业务组
                //初始化是新建记录,但在业务操作页,最后保存时需更新记录
                BLL.Loger.Log4Net.Info("准备更新数据:");
                Entities.CallRecord_ORIG_Business model = new CallRecord_ORIG_Business();
                model.CallID       = callID;
                model.BGID         = BGID;
                model.SCID         = SCID;
                model.BusinessID   = info.BusinessID;
                model.CreateUserID = createuserid;
                model.CreateTime   = DateTime.Now;
                int recID = BLL.CallRecord_ORIG_Business.Instance.Update(model);
                BLL.Loger.Log4Net.Info("更新完毕:");
            }
            else
            {
                BLL.Loger.Log4Net.Info("准备插入数据:");
                Entities.CallRecord_ORIG_Business model = new CallRecord_ORIG_Business();
                model.CallID       = callID;
                model.BGID         = BGID;
                model.SCID         = SCID;
                model.BusinessID   = info.BusinessID;
                model.CreateUserID = createuserid;
                model.CreateTime   = DateTime.Now;
                int recID = BLL.CallRecord_ORIG_Business.Instance.Insert(model);

                model.RecID = recID;

                string descMsg = string.Empty;
                BitAuto.ISDC.CC2012.BLL.GetLogDesc.getAddLogInfo(model, out descMsg);
                BLL.Loger.Log4Net.Info(descMsg);
                BLL.Loger.Log4Net.Info("插入完毕:");
            }
        }
        private EnumResult VefiyCustData(CustBussiness info, out Entities.CallRecord_ORIG orig, out BitAuto.YanFa.Crm2009.Entities.DMSMember member)
        {
            orig   = null;
            member = null;

            if (string.IsNullOrEmpty(info.CustName))
            {
                return(EnumResult.CustNameEmpty);
            }
            int sex = 0;

            if (info.Sex != string.Empty && !int.TryParse(info.Sex, out sex))
            {
                return(EnumResult.SexPatternError);
            }
            else if (info.Sex == string.Empty)
            {
                info.Sex = "1";
            }
            else if (sex > 2 || sex < 1)
            {
                return(EnumResult.SexPatternError);
            }
            if (info.Tels == null)
            {
                return(EnumResult.CustTelEmpty);
            }
            else if (info.Tels.Length == 0)
            {
                return(EnumResult.CustTelEmpty);
            }
            else if (info.Tels.Length > 2)
            {
                return(EnumResult.CustTelPatternError);
            }
            //Regex reTel = new Regex(@"(^0[0-9]{2,3}[0-9]{7,8}$)|(^13[0-9]{9}$)|(^15[0-9]{9}$)|(^18[0-9]{9}$)|(^19[0-9]{9}$)|(^14[0-9]{9}$)|(^400\d{7}$)");
            foreach (string str in info.Tels)
            {
                if (!BLL.Util.IsTelephoneAnd400Tel(str))
                {
                    return(EnumResult.CustTelPatternError);
                }
            }

            int  temp     = 0;
            long templong = 0;

            if (string.IsNullOrEmpty(info.CallID))
            {
                return(EnumResult.CallIDEmpty);
            }
            else if (!long.TryParse(info.CallID, out templong))
            {
                return(EnumResult.CallIDPatternError);
            }
            else
            {
                orig = BLL.CallRecord_ORIG.Instance.GetCallRecord_ORIGByCallID(long.Parse(info.CallID));
                if (orig == null)
                {
                    return(EnumResult.CallIDNotExist);
                }
                else
                {
                    info.CreateUserID = orig.CreateUserID.ToString();
                }
            }
            if (string.IsNullOrEmpty(info.BusinessID))
            {
                return(EnumResult.BusinessIDEmpty);
            }
            if (string.IsNullOrEmpty(info.BGID))
            {
                return(EnumResult.BGIDEmpty);
            }
            if (!int.TryParse(info.BGID, out temp))
            {
                return(EnumResult.BGIDPatternError);
            }
            if (string.IsNullOrEmpty(info.SCID))
            {
                return(EnumResult.SCIDEmpty);
            }
            if (!int.TryParse(info.SCID, out temp))
            {
                return(EnumResult.SCIDPatternError);
            }
            if (!string.IsNullOrEmpty(info.MemberCode))
            {
                member = BitAuto.YanFa.Crm2009.BLL.DMSMember.Instance.GetDMSMemberByMemberCode(info.MemberCode);
                if (member == null)
                {
                    return(EnumResult.MemberCodeError);
                }
            }
            return(EnumResult.Success);
        }
        public EnumResult InsertCustData(string Verifycode, string jsonDataStr)
        {
            BLL.Loger.Log4Net.Info("准备验证:");
            string msg = string.Empty;

            if (BLL.CallRecord_ORIG_Authorizer.Instance.Verify(Verifycode, 0, ref msg, "插入话务与任务关联数据,授权失败。"))
            {
                BLL.Loger.Log4Net.Info("验证通过");
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                CustBussiness        info       = null;
                try
                {
                    BLL.Loger.Log4Net.Info("Json串:" + jsonDataStr);
                    info = serializer.Deserialize <CustBussiness>(jsonDataStr);
                    BLL.Loger.Log4Net.Info("Json格式转换成功");
                }
                catch (Exception ex)
                {
                    BLL.Loger.Log4Net.Info("Json格式转换失败,失败原因:" + ex.Message);
                    return(EnumResult.JsonPatternError);
                }

                Entities.CallRecord_ORIG orig;
                BitAuto.YanFa.Crm2009.Entities.DMSMember member;
                EnumResult vefiyResult = VefiyCustData(info, out orig, out member);
                if (vefiyResult == EnumResult.Success)
                {
                    try
                    {
                        //0 获取分组分类
                        SetBGIDAndSCID(info);
                        //1 插入个人信息表
                        string custId       = string.Empty;
                        string errMsg       = string.Empty;
                        int    custCategory = 4;
                        if (!string.IsNullOrEmpty(info.MemberCode))
                        {
                            //3-经销商;4-个人
                            custCategory = 3;
                        }
                        if (BLL.CustBasicInfo.Instance.InsertCustInfo(info.CustName, info.Tels, CommonFunction.ObjectToInteger(info.Sex), (int)orig.CreateUserID, custCategory, null, null, out errMsg, out custId))
                        {
                            BLL.Loger.Log4Net.Info("插入客户成功");
                            //删除经销商
                            BLL.DealerInfo.Instance.Delete(custId);

                            if (!string.IsNullOrEmpty(info.MemberCode))
                            {
                                //插入
                                Entities.DealerInfo model_Dealer = new Entities.DealerInfo();
                                model_Dealer.CustID       = custId;
                                model_Dealer.MemberCode   = info.MemberCode;
                                model_Dealer.Name         = member.Name;
                                model_Dealer.Status       = 0;
                                model_Dealer.CreateTime   = DateTime.Now;
                                model_Dealer.CreateUserID = (int)orig.CreateUserID;
                                BLL.DealerInfo.Instance.Insert(model_Dealer);
                                BLL.Loger.Log4Net.Info("插入经销商信息成功");
                            }

                            //2 插入访问记录
                            string tel          = BLL.Util.HaoMaProcess(orig.ANI);
                            long   callid       = CommonFunction.ObjectToLong(info.CallID, -2);
                            int    businesstype = (int)VisitBusinessTypeEnum.S0_其他系统;
                            int    tasksource   = orig.CallStatus == 2 ? 2 : 1;
                            BitAuto.ISDC.CC2012.Web.AjaxServers.CustBaseInfo.OperPopCustBasicInfo.OperCustVisitBusiness(custId, info.BusinessID, callid, businesstype, tasksource, (int)orig.CreateUserID, tel);

                            //3 插入话务业务表
                            UpdateBusinessDataByCallID(info);

                            //插入来去电表
                            CallRecordInfoInfo recordInfo = new CallRecordInfoInfo();
                            recordInfo.CallID     = long.Parse(info.CallID);
                            recordInfo.SCID       = int.Parse(info.SCID);
                            recordInfo.TaskID     = info.BusinessID;
                            recordInfo.TaskTypeID = (int)ProjectSource.None;
                            recordInfo.BGID       = int.Parse(info.BGID);
                            recordInfo.CustID     = custId;
                            recordInfo.CustName   = info.CustName;
                            recordInfo.Contact    = info.CustName;
                            long recId = 0;
                            BLL.CallRecordInfo.Instance.InsertCallRecordInfoToHuiMaiChe(recordInfo, orig, out recId);
                            return(EnumResult.Success);
                        }
                        else
                        {
                            return(EnumResult.Fail);
                        }
                    }
                    catch (Exception ex)
                    {
                        BLL.Loger.Log4Net.Error("【插入客户信息+话务】", ex);
                        return(EnumResult.Fail);
                    }
                }
                else
                {
                    BLL.Loger.Log4Net.Info("Json验证失败:msg=" + vefiyResult.ToString());
                    return(vefiyResult);
                }
            }
            else
            {
                BLL.Loger.Log4Net.Info("验证失败!msg=" + msg);
                return(EnumResult.VerifyError);
            }
        }