/// <summary> /// 查询宇通用户 /// </summary> /// <returns></returns> public static DataTable SearchContact() { //如果没有接入码或者sap代码,则不调用接口 if (string.IsNullOrEmpty(GlobalStaticObj_YT.ClientID) || string.IsNullOrEmpty(GlobalStaticObj_YT.SAPCode)) { return null; } ServicePointManager.ServerCertificateValidationCallback = WebServUtil.ValidateServerCertificate; QueryContact.clientInfo clientInfo = new QueryContact.clientInfo(); clientInfo.clientID = GlobalStaticObj_YT.ClientID; clientInfo.serviceID = "queryContact"; QueryContact.portTypeService serv = new QueryContact.portTypeService(); string updateTime = Secret.Encrypt3DES_UTF8("1900-01-01", GlobalStaticObj_YT.KeySecurity_YT);//查询所有日期的 string priovinceCode = Secret.Encrypt3DES_UTF8(GlobalStaticObj_Server.Instance.ServiceStationProvince, GlobalStaticObj_YT.KeySecurity_YT); //string priovinceCode = Secret.Encrypt3DES_UTF8("620000", GlobalStaticObj_YT.KeySecurity_YT); string stationCode = Secret.Encrypt3DES_UTF8(GlobalStaticObj_YT.SAPCode, GlobalStaticObj_YT.KeySecurity_YT); string dateStr = Secret.Encrypt3DES_UTF8(GlobalStaticObj_Server.Instance.CurrentDateTime.ToString("yyyy-MM-dd HH:mm:ss"), GlobalStaticObj_YT.KeySecurity_YT); string requestType = Secret.Encrypt3DES_UTF8("QUERY", GlobalStaticObj_YT.KeySecurity_YT); clientInfo = WebServUtil.EncModel<QueryContact.clientInfo>(clientInfo); string contType = Secret.Encrypt3DES_UTF8("03", GlobalStaticObj_YT.KeySecurity_YT);//用户类型 List<ListItem> listContact = new List<ListItem>(); DataTable dt = new DataTable(); dt.Columns.Add("cont_crm_guid"); dt.Columns.Add("cont_name"); dt.Columns.Add("cont_phone"); QueryContact.Result result = new QueryContact.Result(); string message = string.Empty;//错误消息 try { result = serv.queryContact(updateTime, priovinceCode, contType, stationCode, dateStr, requestType, clientInfo); } catch (InvalidOperationException ioe) { //Utility.Log.Log.writeLineToLog(ioe, "联系人信息同步"); GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("联系人信息同步", ioe); return null; } string state = Secret.Decrypt3DES_UTF8(result.state, GlobalStaticObj_YT.KeySecurity_YT); if (state == "F") { string errMsg = Secret.Decrypt3DES_UTF8(result.errorMsg, GlobalStaticObj_YT.KeySecurity_YT); //Utility.Log.Log.writeLineToLog("【联系人信息同步】" + errMsg, "接口"); GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("联系人信息同步", errMsg); return null; } QueryContact.contact[] contactArr = WebServUtil.DesList(result.Details); if (contactArr.Length == 0) { return dt; } foreach (QueryContact.contact cont in contactArr) { DataRow dr = dt.NewRow(); dr["cont_crm_guid"] = cont.cont_crm_guid; dr["cont_name"] = cont.cont_name; dr["cont_phone"] = cont.cont_phone; dt.Rows.Add(dr); } return dt; }
/// <summary> 联系人信息同步 /// </summary> /// <param name="updateTime">最后更新时间</param> /// <param name="contType">联系人类别</param> /// <returns>返回同步联系人条数,如为-1,同步失败</returns> public static string LoadContact(string updateTime, string contType) { //如果没有接入码或者sap代码,则不调用接口 if (string.IsNullOrEmpty(GlobalStaticObj_YT.ClientID) || string.IsNullOrEmpty(GlobalStaticObj_YT.SAPCode)) { return ""; } ServicePointManager.ServerCertificateValidationCallback = WebServUtil.ValidateServerCertificate; QueryContact.clientInfo clientInfo = new QueryContact.clientInfo(); clientInfo.clientID = GlobalStaticObj_YT.ClientID; clientInfo.serviceID = "queryContact"; QueryContact.portTypeService serv = new QueryContact.portTypeService(); updateTime = Secret.Encrypt3DES_UTF8(updateTime, GlobalStaticObj_YT.KeySecurity_YT); string priovinceCode = Secret.Encrypt3DES_UTF8(GlobalStaticObj_Server.Instance.ServiceStationProvince, GlobalStaticObj_YT.KeySecurity_YT); //string priovinceCode = Secret.Encrypt3DES_UTF8("620000", GlobalStaticObj_YT.KeySecurity_YT); string stationCode = Secret.Encrypt3DES_UTF8(GlobalStaticObj_YT.SAPCode, GlobalStaticObj_YT.KeySecurity_YT); string dateStr = Secret.Encrypt3DES_UTF8(GlobalStaticObj_Server.Instance.CurrentDateTime.ToString("yyyy-MM-dd HH:mm:ss"), GlobalStaticObj_YT.KeySecurity_YT); string requestType = Secret.Encrypt3DES_UTF8("QUERY", GlobalStaticObj_YT.KeySecurity_YT); clientInfo = WebServUtil.EncModel<QueryContact.clientInfo>(clientInfo); contType = Secret.Encrypt3DES_UTF8(contType, GlobalStaticObj_YT.KeySecurity_YT); DateTime dtStart = GlobalStaticObj_Server.Instance.CurrentDateTime;//开始时间 string message = string.Empty;//错误信息 QueryContact.Result result = new QueryContact.Result(); try { result = serv.queryContact(updateTime, priovinceCode, contType, stationCode, dateStr, requestType, clientInfo); } catch (InvalidOperationException ioe) { message = ioe.Message; //Utility.Log.Log.writeLineToLog(ioe, "联系人信息同步"); GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("联系人信息同步", ioe); return "联系人接口调用超时!"; } catch (Exception e) { message = e.Message; //Utility.Log.Log.writeLineToLog(e, "联系人信息同步"); GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("联系人信息同步", e); return "联系人接口调用出错"; } string state = Secret.Decrypt3DES_UTF8(result.state, GlobalStaticObj_YT.KeySecurity_YT); if (state == "F") { string errMsg = Secret.Decrypt3DES_UTF8(result.errorMsg, GlobalStaticObj_YT.KeySecurity_YT); //Utility.Log.Log.writeLineToLog("【联系人信息同步】" + errMsg, "接口"); GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("联系人信息同步", errMsg); return "联系人调用接口失败!"; } QueryContact.contact[] contactArr = result.Details; //if (contactArr.Length == 0) //{ // return ""; //} contactArr = WebServUtil.DesList<QueryContact.contact>(contactArr); //bool flag = SaveContact(contactArr); bool flag = true; int updateCount = 0; int totalCount = 0; switch (Secret.Decrypt3DES_UTF8(contType, GlobalStaticObj_YT.KeySecurity_YT)) { case "01": flag = SaveContactNotBatch(contactArr, ref updateCount); totalCount = int.Parse(DBHelper.GetSingleValue("", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "select COUNT(1) from tb_contacts where data_source='2'")); break; case "02": flag = SaveUserNotBatch(contactArr, ref updateCount); totalCount = int.Parse(DBHelper.GetSingleValue("", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "select COUNT(1) from sys_user where data_sources='2'")); break; } if (!flag) { GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("联系人信息同步", "联系人更新失败"); return "联系人更新失败"; } DateTime dtEnd = GlobalStaticObj_Server.Instance.CurrentDateTime;//结束时间 WebServUtil.WriteInterficeSync(DataSources.EnumInterfaceType.Contact, DataSources.EnumExternalSys.YTCRM, totalCount, updateCount, GlobalStaticObj_Server.Instance.CurrentDateTime); WebServUtil.WriteInterficeSyncLog(DataSources.EnumInterfaceType.Contact, DataSources.EnumExternalSys.YTCRM, DataSources.EnumSyncDirection.DownLoad, "tb_contacts", dtStart, dtEnd, updateCount, message); return ""; ; }