using SysBaseLibs; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace GSMarketSys { public class ISipPlatHelper { public static string _message = string.Empty; public static string _userNo = string.Empty; public static string _userPwd = string.Empty; public static string _appNo = string.Empty; public static string _guid = string.Empty; public string Message { get { return _message; } } public ISipPlatHelper() { } // 从系统配置中获取平台单点登录的信息 private static bool GetLoginInfo() { bool bRet = false; string strSipPlatLoginInfo = SysDataLibs.AppEnv.SysSetObj.GetString("SipPlatLoginInfo"); strSipPlatLoginInfo = strSipPlatLoginInfo.Trim(); if (strSipPlatLoginInfo.Length < 1) { ThreadLog.LogErr("Failed to get SipPlatLoginInfo in SysSetting! "); return false; } string strSeperator = "@@@@"; int nSeperatorLen = strSeperator.Length; string strUserNo, strUserPwd; string strAppNo = string.Empty; // 格式为 帐号@@@@密码@@@@子系统编号 int idx = strSipPlatLoginInfo.IndexOf(strSeperator); if (idx > 0) { strUserNo = strSipPlatLoginInfo.Substring(0, idx); int idx2 = strSipPlatLoginInfo.IndexOf(strSeperator, idx + nSeperatorLen); if (idx2 > 0) { strUserPwd = strSipPlatLoginInfo.Substring(idx + nSeperatorLen, idx2 - idx - nSeperatorLen); strAppNo = strSipPlatLoginInfo.Substring(idx2 + nSeperatorLen); if (strAppNo != "") { _userNo = strUserNo; _userPwd = strUserPwd; _appNo = strAppNo; bRet = true; } } } if (bRet == false) { string strTemp = "Bad config for SipPlatLoginInfo in SysSetting, value=" + strSipPlatLoginInfo; ThreadLog.LogErr(strTemp); } return bRet; } // 检查是否登录 public static bool CheckLogin() { bool bLogin = false; try { nsRightsServiceSSO.RightsServiceSSOSoapClient client = new nsRightsServiceSSO.RightsServiceSSOSoapClient(); // 根据guid检查是否有效用户 if ((_guid.Length > 0) && (_appNo.Length > 0)) { if (client.IsValidUser(_guid, _appNo) == true) return true; } // 若guid无效,获取平台单点登录信息 if (GetLoginInfo() == false) { return false; } // 调用平台单点登录接口 nsRightsServiceSSO.OperationResult result = client.LoginToApp(_userNo, _userPwd, _appNo); if (result.Flag != true) { _message = "Failed to LoginToApp, ErrorCode = " + result.ErrorCode + ", Reason=" + result.Message; } else { _guid = result.Tag.ToString(); _message = "LoginToApp success, UID" + _guid; bLogin = true; } } catch (Exception err) { _message = "Failed to LoginToApp, Reason = " + err.Message; bLogin = false; } if (bLogin == false) { ThreadLog.LogErr(_message); } return bLogin; } // 发送短信 public static bool SendSMS(string strSendBy, string strMobiles, string strContent) { bool bRet = false; try { // 检查登录 if (CheckLogin() == false) return false; nsMessagePlat.MessagaPlatSoapClient client = new nsMessagePlat.MessagaPlatSoapClient(); /*nsMessagePlat.UserInfo userInfo = new nsMessagePlat.UserInfo(); userInfo.UserNo = _userNo; userInfo.UserPwd = _userPwd; nsMessagePlat.MsgBody msgBody = new nsMessagePlat.MsgBody(); msgBody.Encoding = nEncoding; // 0:GBK,1:UTF8 msgBody.Mobiles = strMobiles; msgBody.Content = strContent; nsMessagePlat.ServiceLogin result = client.SendMsg(userInfo, msgBody);*/ nsMessagePlat.ServiceLogin result = client.SendMessage(strSendBy, strMobiles, strContent, _guid); if (result.Flag != true) { _message = "Failed to MessagePlat, Reason=" + result.Message; } else { _message = "MessagePlat success"; bRet = true; } } catch (Exception err) { _message = "Failed to MessagePlat, Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } #region DataDictionary // 注册数据字典 public static bool DataDicReg(string strDSName, string strDSDescription, List dataDicList) { bool bRet = false; try { // 检查登录 if (CheckLogin() == false) return false; if ((dataDicList == null) || (dataDicList.Count == 0)) return false; nsDataDicWS.DataDicInfo dataDicInfo = new nsDataDicWS.DataDicInfo(); dataDicInfo.AppNo = _appNo; dataDicInfo.DSDes = strDSDescription; dataDicInfo.DSName = strDSName; dataDicInfo.DataDic = dataDicList.ToArray(); // 调用数据字典注册接口 nsDataDicWS.DataDicWSSoapClient client = new nsDataDicWS.DataDicWSSoapClient(); nsDataDicWS.ServiceLogin result = client.DataDicReg(dataDicInfo, _guid); if (result.Flag != true) { _message = "Failed to DataDicReg, Reason=" + result.Message; } else { _message = "DataDicReg success!"; bRet = true; } } catch (Exception err) { _message = "Failed to DataDicReg, Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } // 更新数据字典 public static bool DataDicEdit(string strDSName, string strDSDescription, List dataDicList) { bool bRet = false; try { // 检查登录 if (CheckLogin() == false) return false; if ((dataDicList == null) || (dataDicList.Count == 0)) return false; nsDataDicWS.DataDicInfo dataDicInfo = new nsDataDicWS.DataDicInfo(); dataDicInfo.AppNo = _appNo; dataDicInfo.DSDes = strDSDescription; dataDicInfo.DSName = strDSName; dataDicInfo.DataDic = dataDicList.ToArray(); // 调用数据字典更新接口 nsDataDicWS.DataDicWSSoapClient client = new nsDataDicWS.DataDicWSSoapClient(); nsDataDicWS.ServiceLogin result = client.DataDicInfoEdit(dataDicInfo, _guid); if (result.Flag != true) { _message = "Failed to DataDicEdit, Reason=" + result.Message; } else { _message = "DataDicEdit success!"; bRet = true; } } catch (Exception err) { _message = "Failed to DataDicEdit, Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } // 获取数据字典信息 public static nsDataDicWS.DataDicInfo DataDicInfo(string strDSName) { nsDataDicWS.DataDicInfo result = null; try { // 检查登录 if (CheckLogin() == false) return null; nsDataDicWS.DataDicWSSoapClient client = new nsDataDicWS.DataDicWSSoapClient(); result = client.GetDataDicInfo(strDSName, _guid); } catch (Exception) { } return result; } // 删除数据字典 public static bool DataDicDel(string strDSName) { bool bRet = false; try { // 检查登录 if (CheckLogin() == false) return false; nsDataDicWS.DataDicWSSoapClient client = new nsDataDicWS.DataDicWSSoapClient(); nsDataDicWS.ServiceLogin result = client.DataDicInfoDel(strDSName, _guid); if (result.Flag != true) { _message = "Failed to DataDicDel, Reason=" + result.Message; } else { _message = "DataDicDel success!"; bRet = true; } } catch (Exception err) { _message = "Failed to DataDicDel, Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } #endregion // 肉菜追溯节点名称 public static string MeatTraceFlowNodeTypeName(int nodeType) { string strRet = string.Empty; switch (nodeType) { case 1: strRet = "养殖基地"; break; case 2: strRet = "屠宰场"; break; case 3: strRet = "批发市场"; break; case 4: strRet = "农贸市场"; break; case 5: strRet = "超市"; break; case 6: strRet = "超市供应商"; break; case 7: strRet = "产销对接配送中心"; break; case 8: strRet = "团体消费企业"; break; case 9: strRet = "加工企业"; break; case 10: strRet = "直营店"; break; default: strRet = "未知类型"; break; } return strRet; } // 肉菜追溯码查询 public static nsTraceWebService.TraceResult MeatTrace(string strZSCode) { nsTraceWebService.TraceResult result = null; try { // 不需要登录 // 调用接口 nsTraceWebService.TraceWebServiceSoapClient client = new nsTraceWebService.TraceWebServiceSoapClient(); result = client.GetTraceResult(strZSCode); /*// 仅供测试用 if (result == null) { result = new nsTraceWebService.TraceResult(); result.BatchCode = "批号12345"; result.ProductionLocation = "产地"; result.ProductType = "猪肉"; result.SlaughterDate = DateTime.Now; result.TraceCode = strZSCode; List listFlow = new List(); nsTraceWebService.FlowNode item1 = new nsTraceWebService.FlowNode(); item1.FlowIndex = 0; item1.ChargeMan = "负责人1"; item1.NodeName = "节点1"; item1.NodeType = 1; listFlow.Add(item1); nsTraceWebService.FlowNode item2 = new nsTraceWebService.FlowNode(); item2.FlowIndex = 1; item2.ChargeMan = "负责人2"; item2.NodeName = "节点2"; item2.NodeType = 2; listFlow.Add(item2); result.FlowList = listFlow.ToArray(); }*/ } catch (Exception) { } return result; } #region SubSysUserManager // 查询子系统用户的平台注册信息 public static nsSubSysUserManage.ServiceUserInfo SubSysUserInfo(string strUserNo, string strAppNo) { nsSubSysUserManage.ServiceUserInfo userInfo = null; try { // 检查登录 if (CheckLogin() == false) return null; nsSubSysUserManage.SubSysUserManageSoapClient client = new nsSubSysUserManage.SubSysUserManageSoapClient(); userInfo = client.GetUserInfo(strUserNo, strAppNo, _guid); //nsRightsServiceForMultiApp.RightsServiceForMultiApp client = new nsRightsServiceForMultiApp.RightsServiceForMultiApp(); //DataTable dt = client.GetUserInfo(strSubSysUser, _guid, _appNo); //if ((dt != null) && (dt.TableName == "User")) //{ // 假如用户不存在,dt.TableName == "Message" // bRet = true; //} } catch (Exception err) { userInfo = null; _message = "Failed to SubSysUserInfo, User=" + strUserNo + ",Reason=" + err.Message; ThreadLog.LogErr(_message); } return userInfo; } // 子系统用户注册到平台 public static bool SubSysUserReg(string strUserNo, string strPassword, string strUserName, int sex, string strEmail) { bool bRet = false; try { // 检查登录 if (CheckLogin() == false) return false; nsSubSysUserManage.ServiceUserInfo userInfo = new nsSubSysUserManage.ServiceUserInfo(); userInfo.UserNo = strUserNo; userInfo.PassWord = strPassword; userInfo.UserName = strUserName; userInfo.Sex = sex; // 1:男,0:女 userInfo.Email = strEmail; nsSubSysUserManage.SubSysUserManageSoapClient client = new nsSubSysUserManage.SubSysUserManageSoapClient(); nsSubSysUserManage.ServiceLogin result = client.SubSysUserReg(userInfo, _guid); if (result.Flag != true) { _message = "Failed to SubSysUserReg, Reason=" + result.Message; } else { _message = "SubSysUserReg success!"; bRet = true; } } catch (Exception err) { _message = "Failed to SubSysUserReg, Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } // 子系统用户注册到平台 public static bool SubSysUserReg(nsSubSysUserManage.ServiceUserInfo userInfo) { bool bRet = false; if ((userInfo == null) || (userInfo.UserNo == null)) return false; try { // 检查登录 if (CheckLogin() == false) return false; nsSubSysUserManage.SubSysUserManageSoapClient client = new nsSubSysUserManage.SubSysUserManageSoapClient(); nsSubSysUserManage.ServiceLogin result = client.SubSysUserReg(userInfo, _guid); if (result.Flag != true) { _message = "Failed to SubSysUserReg, User=" + userInfo.UserNo + ",Reason=" + result.Message; } else { _message = "SubSysUserReg success, User=" + userInfo.UserNo; bRet = true; } } catch (Exception err) { _message = "Failed to SubSysUserReg, User=" + userInfo.UserNo + ",Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } // 修改平台子系统用户注册信息 public static bool SubSysUserEdit(string strUserNo, string strPassword, string strUserName, int sex, string strEmail) { bool bRet = false; try { // 检查登录 if (CheckLogin() == false) return false; nsSubSysUserManage.ServiceUserInfo userInfo = new nsSubSysUserManage.ServiceUserInfo(); userInfo.UserNo = strUserNo; userInfo.PassWord = strPassword; userInfo.UserName = strUserName; userInfo.Sex = sex; userInfo.Email = strEmail; nsSubSysUserManage.SubSysUserManageSoapClient client = new nsSubSysUserManage.SubSysUserManageSoapClient(); nsSubSysUserManage.ServiceLogin result = client.SubSysUserEdit(userInfo, strUserNo, _guid); if (result.Flag != true) { _message = "Failed to SubSysUserEdit, Reason=" + result.Message; } else { _message = "SubSysUserEdit success!"; bRet = true; } } catch (Exception err) { _message = "Failed to SubSysUserEdit, Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } // 修改平台子系统用户注册信息 public static bool SubSysUserEdit(nsSubSysUserManage.ServiceUserInfo userInfo) { bool bRet = false; if ((userInfo == null) || (userInfo.UserNo == null)) return false; try { // 检查登录 if (CheckLogin() == false) return false; nsSubSysUserManage.SubSysUserManageSoapClient client = new nsSubSysUserManage.SubSysUserManageSoapClient(); nsSubSysUserManage.ServiceLogin result = client.SubSysUserEdit(userInfo, userInfo.UserNo, _guid); if (result.Flag != true) { _message = "Failed to SubSysUserEdit, User=" + userInfo.UserNo + ",Reason=" + result.Message; } else { _message = "SubSysUserEdit success, User=" + userInfo.UserNo; bRet = true; } } catch (Exception err) { _message = "Failed to SubSysUserEdit, User=" + userInfo.UserNo + ",Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } // 平台删除子系统用户 public static bool SubSysUserDel(int IsDel, string strUserNo, string strAppNo) { bool bRet = false; try { // 检查登录 if (CheckLogin() == false) return false; // IsDel 0:逻辑删除(禁用),1:物理删除 nsSubSysUserManage.SubSysUserManageSoapClient client = new nsSubSysUserManage.SubSysUserManageSoapClient(); nsSubSysUserManage.ServiceLogin result = client.SubSysUserDel(IsDel, strUserNo, strAppNo, _guid); if (result.Flag != true) { _message = "Failed to SubSysUserDel, User=" + strUserNo + ",Reason=" + result.Message; } else { _message = "SubSysUserDel success, User=" + strUserNo; bRet = true; } } catch (Exception err) { _message = "Failed to SubSysUserDel, User=" + strUserNo + ",Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } #endregion // 对外门户登录 public static nsSubSysLogin.ServiceLogin LoginToPortalSite(string strUserNo, string strPassword) { nsSubSysLogin.ServiceLogin result = null; try { nsSubSysLogin.SubSysLoginSoapClient client = new nsSubSysLogin.SubSysLoginSoapClient(); result = client.LoginToApp(strUserNo, strPassword); } catch (Exception err) { ThreadLog.LogErr("LoginToPortalSite failed, " + err.Message); } return result; } // 共享平台及子系统登录 public static nsRightsWS.ServiceLogin LoginToPlatOrSubSys(string strUserNo, string strPassword, string strAppNo) { nsRightsWS.ServiceLogin result = null; try { nsRightsWS.RightsWSSoapClient client = new nsRightsWS.RightsWSSoapClient(); result = client.LoginToApp(strUserNo, strPassword, strAppNo); } catch (Exception err) { ThreadLog.LogErr("LoginToPlatOrSubSys failed, " + err.Message); } return result; } // 单点注销 public static bool SubSysLogout(string strUserNo) { bool bRet = false; try { // 检查登录 if (CheckLogin() == false) return false; nsSubSysLogout.SubSysLogoutSoapClient client = new nsSubSysLogout.SubSysLogoutSoapClient(); nsSubSysLogout.ServiceLogin result = client.Logout(strUserNo, _guid); if (result.Flag != true) { _message = "Failed to SubSysLogout, User=" + strUserNo + ",Reason=" + result.Message; } else { _message = "SubSysLogout success, User=" + strUserNo; bRet = true; } } catch (Exception err) { _message = "SubSysLogout failed, User=" + strUserNo + ",Reason=" + err.Message; bRet = false; } if (bRet == false) { ThreadLog.LogErr(_message); } return bRet; } // 肉类商品来源查询 public static string QueryMeatSource(List queryConList) { string strResult = string.Empty; try { // 检查登录 if (CheckLogin() == false) return ""; nsPlatDataQuery.PlatDataQuerySoapClient query = new nsPlatDataQuery.PlatDataQuerySoapClient(); // 供货时间 供货单位 进货市场 经营户名称 进货数量 检疫证号 进货单位 经营户工商注册号 市场工商注册号 检疫单位 string[] strArr = { "CommitDate", "CommitCorp", "EnterCorp", "BossName", "EnterNum", "QuarNum", "Unit", "BossRegNo", "MarketRegNo", "QuarantineUnit" }; nsPlatDataQuery.ArrayOfString strs = new nsPlatDataQuery.ArrayOfString(); strs.Add("CommitDate"); strs.Add("CommitCorp"); strs.Add("EnterCorp"); strs.Add("BossName"); strs.Add("EnterNum"); strs.Add("QuarNum"); strs.Add("Unit"); strs.Add("BossRegNo"); strs.Add("MarketRegNo"); strs.Add("QuarantineUnit"); nsPlatDataQuery.ArrayOfCondition loQueryConList = new nsPlatDataQuery.ArrayOfCondition(); foreach (nsPlatDataQuery.Condition loCondition in queryConList) { loQueryConList.Add(loCondition); } object str = query.GetSubSysData(loQueryConList, "VIW_ImportantProductSrc", strs, _guid); strResult = str.ToString(); } catch (Exception err) { _message = "Failed to QueryMeatSource, Reason=" + err.Message; ThreadLog.LogErr(_message); } return strResult; } // 单点登录 public static nsRightsServiceSSO.OperationResult LoginSSO(string UserNo, string UserPwd, string AppNo) { nsRightsServiceSSO.OperationResult result = null; try { nsRightsServiceSSO.RightsServiceSSOSoapClient client = new nsRightsServiceSSO.RightsServiceSSOSoapClient(); result = client.LoginToApp(UserNo, UserPwd, _appNo); } catch (Exception err) { _message = "Failed to LoginSSO, Reason = " + err.Message; ThreadLog.LogErr(_message); } return result; } // 信息交流 public static nsInformationExchange.ServiceLogin InforExchg_InforReply(nsInformationExchange.InformationExChangeEntity entity) { nsInformationExchange.ServiceLogin result = null; try { // 检查登录 if (CheckLogin() == false) { return null; } nsInformationExchange.InformationExchangeSoapClient client = new nsInformationExchange.InformationExchangeSoapClient(); result = client.InforReply(entity, _guid); } catch (Exception err) { ThreadLog.LogErr("InforExchg_InforReply failed, " + err.Message); } return result; } #region 举报投诉 // 投诉转发 public static nsComplaintsService.ServiceLogin ComplaintsTransmit(nsComplaintsService.OnlineComplaintsEntity entity) { nsComplaintsService.ServiceLogin result = null; try { // 检查登录 if (CheckLogin() == false) { return null; } nsComplaintsService.ComplaintsServiceSoapClient client = new nsComplaintsService.ComplaintsServiceSoapClient(); result = client.CompaintsTransmit(entity, _guid); } catch (Exception err) { ThreadLog.LogErr("ComplaintsTransmit failed, " + err.Message); } return result; } // 投诉处理延期申请的答复 public static nsComplaintsService.ServiceLogin ComplaintsDelayApply(nsComplaintsService.OnlineComplaintsDelayEntity entity) { nsComplaintsService.ServiceLogin result = null; try { // 检查登录 if (CheckLogin() == false) { return null; } nsComplaintsService.ComplaintsServiceSoapClient client = new nsComplaintsService.ComplaintsServiceSoapClient(); result = client.CompaintsDelayApply(entity, _guid); } catch (Exception err) { ThreadLog.LogErr("ComplaintsDelayApply failed, " + err.Message); } return result; } // 投诉答复 public static nsComplaintsService.ServiceLogin ComplaintsReply(nsComplaintsService.OnlineComplaintsReplyEntity entity) { nsComplaintsService.ServiceLogin result = null; try { // 检查登录 if (CheckLogin() == false) { return null; } nsComplaintsService.ComplaintsServiceSoapClient client = new nsComplaintsService.ComplaintsServiceSoapClient(); result = client.CompaintsReply(entity, _guid); } catch (Exception err) { ThreadLog.LogErr("ComplaintsReply failed, " + err.Message); } return result; } #endregion } }