📄 rtxsvrapi.java
字号:
package rtx;
/**
* 封装对RTX的操作
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company: Tencent C0. Ltd</p>
* @author herolin
* @version 1.0
*/
public class RTXSvrApi {
//客户端与server传递的协议
static int PRO_ADDUSER = 0x0001; //添加用户信息
static int PRO_DELUSER = 0x0002; //删除用户信息
static int PRO_GETUSERDETAILINFO = 0x0004; //获取用户详细信息
static int PRO_SETUSERDETAILINFO = 0x0005; //更新用户详细信息
static int PRO_GETUSERSMPLINFO = 0x0006; //获取用户简要信息
static int PRO_SETUSERSMPLINFO = 0x0003; //更改用户简要信息
static int PRO_SETUSERPRIVILEGE = 0x0007; //设置用户权限
static int PRO_IFEXIST = 0x0008; //判断用户是否存在
static int PRO_TRANUSER = 0X0009; //用户名与UIN的互转
static int PRO_ADDDEPT = 0x0101; //增加部门
static int PRO_DELDEPT = 0x0102; //删除部门
static int PRO_SETDEPT = 0x0103; //更新部门信息
static int PRO_GETCHILDDEPT = 0x0104; //获取子部门
static int PRO_GETDEPTALLUSER = 0x0105; //获取部门用户
static int PRO_SETDEPTPRIVILEGE = 0x0106; //设置部门权限
static int PRO_GETDEPTSMPLINFO = 0x0107; //获取部门信息
static int PRO_SMS_LOGON = 0x1000;
static int PRO_SMS_SEND = 0x1001; //发送短信 多个手机号码(逗号分隔)可群发
static int PRO_SMS_NICKLIST = 0x1002; //按用户读取短信
static int PRO_SMS_FUNCLIST = 0x1003; //按功能号读取短信
static int PRO_SMS_CHECK = 0x1004; //获取未读短信数量
static int PRO_SYS_GETSESSIONKEY = 0x2000; //单点验证获取sessionKey
static int PRO_SYS_GETUSERSTATUS = 0x2001; //查询用户在线状态
static int PRO_SYS_SENDIM = 0x2002; //发送IM消息
static int PRO_SYS_SESSIONKEYVERIFY = 0x2003; //验证sessionKey
static int PRO_EXT_NOTIFY = 0x2100; //即时消息提醒
static int PRO_IMPORTUSER = 0x0001; //导入xml用户数据
static int PRO_EXMPORTUSER = 0x0002; //导出xml用户数据
//对象名称
static String OBJNAME_RTXEXT = "EXTTOOLS"; //扩展对象
static String OBJNAME_RTXSYS = "SYSTOOLS"; //系统对象
static String OBJNAME_DEPTMANAGER = "DEPTMANAGER"; //部门对象
static String OBJNAME_USERMANAGER = "USERMANAGER"; //用户对象
static String OBJNAME_SMSMANAGER = "SMSOBJECT"; //短信对象
static String OBJNAME_USERSYNC = "USERSYNC"; //用户数据导入导出
static String KEY_TYPE = "TYPE";
static String KEY_USERID = "USERID";
static String KEY_USERNAME = "USERNAME";
static String KEY_UIN = "UIN"; //RTX编号
static String KEY_NICK = "NICK"; //登陆名
static String KEY_MOBILE = "MOBILE"; //手机
static String KEY_OUTERUIN = "OUTERUIN";
static String KEY_LASTMODIFYTIME = "LASTMODIFYTIME";
static String KEY_FACE = "FACE"; //头像
static String KEY_PASSWORD = "PWD"; //密码
static String KEY_AGE = "AGE"; //年龄
static String KEY_GENDER = "GENDER"; //性别
static String KEY_BIRTHDAY = "BIRTHDAY"; //生日
static String KEY_BLOODTYPE = "BLOODTYPE"; //血型
static String KEY_CONSTELLATION = "CONSTELLATION"; //星座
static String KEY_COLLAGE = "COLLAGE"; //大学
static String KEY_HOMEPAGE = "HOMEPAGE"; //主页
static String KEY_EMAIL = "EMAIL"; //邮箱
static String KEY_PHONE = "PHONE"; //电话
static String KEY_FAX = "FAX"; //电话分机号码
static String KEY_ADDRESS = "ADDRESS"; //地址
static String KEY_POSTCODE = "POSTCODE"; //邮编号码
static String KEY_COUNTRY = "COUNTRY"; //国家
static String KEY_PROVINCE = "PROVINCE"; //省份
static String KEY_CITY = "CITY"; //城市
static String KEY_MEMO = "MEMO"; //个人说明
static String KEY_STREET = "STREET"; //街道
static String KEY_MOBILETYPE = "MOBILETYPE";
static String KEY_AUTHTYPE = "AUTHTYPE";
static String KEY_POSITION = "POSITION";
static String KEY_OPENGSMINFO = "OPENGSMINFO";
static String KEY_OPENCONTACTINFO = "OPENCONTACTINFO";
static String KEY_PUBOUTUIN = "PUBOUTUIN";
static String KEY_PUBOUTNICK = "PUBOUTNICK";
static String KEY_PUBOUTNAME = "PUBOUTNAME";
static String KEY_PUBOUTDEPT = "PUBOUTDEPT";
static String KEY_PUBOUTPOSITION = "PUBOUTPOSITION";
static String KEY_PUBOUTINFO = "PUBOUTINFO";
static String KEY_OUTERPUBLISH = "OUTERPUBLISH";
static String KEY_LDAPID = "LDAPID";
static String KEY_DEPTID = "DEPTID";
static String KEY_PDEPTID = "PDEPTID";
static String KEY_SORTID = "SORTID";
static String KEY_NAME = "NAME";
static String KEY_INFO = "INFO";
static String KEY_COMPLETEDELBS = "COMPLETEDELBS";
//权限相关
static String KEY_DENY = "DENY";
static String KEY_ALLOW = "ALLOW";
static String KEY_SESSIONKEY = "SESSIONKEY";
//导入导出xml数据相关
static String KEY_MODIFYMODE = "MODIFYMODE";
static String KEY_DATA = "DATA";
//IM消息
static String KEY_SDKPASSWORD = "SDKPASSWORD";
//短信相关
static String KEY_SENDER = "SENDER";
static String KEY_FUNNO = "FUNCNO";
static String KEY_RECEIVER = "RECEIVER";
static String KEY_RECEIVERUIN = "RECEIVERUIN";
static String KEY_SMS = "SMS";
static String KEY_CUT = "CUT";
static String KEY_NOTITLE = "NOTITLE";
static String KEY_DELFLAG = "DELFLAG";
//RTXServer业务逻辑
static String KEY_RECVUSERS = "RECVUSERS";
static String KEY_IMMSG = "IMMSG";
//消息提醒
static String KEY_MSGID = "MSGID";
static String KEY_MSGINFO = "MSGINFO";
static String KEY_ASSISTANTTYPE = "ASSTYPE";
static String KEY_TITLE = "TITLE";
static String KEY_DELAYTIME = "DELAYTIME";
//结果集合的描述
static String KEY_RESULT_INCODE = "INNERCODE"; //内部错误
static String KEY_RESULT_ERR_INFO = "ERR_INFO";
static String KEY_RESULT_CODE = "CODE"; //返回错误
static String KEY_RESULT_TYPE = "TYPE"; //返回类型
static String KEY_RESULT_NAME = "NAME";
static String KEY_RESULT_VALUE = "VALUE";
static String KEY_RESULT_VARIANT = "VARIANT";
//私有属性
private int iObj;
private int iProp;
private int innerCode;
private int iResult;
static {
System.loadLibrary("SDKAPIJava");
}
private static RTXSvrApi rtxDao;
public static RTXSvrApi getInstance(){
if(rtxDao == null){
rtxDao = new RTXSvrApi();
}
return rtxDao;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 系统自带的函数 //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化类
public native boolean Init();
//析构类
public native void UnInit();
//通过int类型的错误代码获取错误信息
public native String GetError(int innerCode);
//获取版本号
public native String GetVersion();
//通过对象名称创建一个对象,对象名称如OBJNAME_RTXEXT,返回int类型的句柄,在本文称为iObjectHandle
public native int GetNewObject(String szObjectName);
//通过句柄获取对象名称(该方法一般用不上)
public native String GetObjectName(int iObjectHandle);
//设置句柄的对象名称(该方法一般用不上)
public native int SetObjectName(int iObjectHandle, String szObjectName);
//获取属性集合句柄
public native int GetNewPropertys();
//该int类型的数是否是句柄 (该方法一般用不上)
public native int IsHandle(int iHandle);
//引用计数(该方法一般用不上)
public native int AddRefHandle(int iHandle);
//释放句柄
public native int ReleaseHandle(int iHandle);
//向属性集合添加属性,iHandle表示属性集合的句柄
public native int AddProperty(int iPropertyHandle, String szName, String szValue);
//在属性集合中删除某个属性,通过索引删除
public native int ClearProperty(int iPropertyHandle, int iIndex);
//在属性集合中删除某个属性,通过属性名删除
public native int RemoveProperty(int iPropertyHandle, String szName);
//获取属性集合中某个属性的值
public native String GetProperty(int iPropertyHandle, String szName);
//设置服务器IP地址
public native int SetServerIP(int iObjectHandle, String szServerIP);
//获取服务器IP地址
public native String GetServerIP(int iObjectHandle);
//获取服务器IP地址
public native int GetServerPort(int iObjectHandle);
//设置服务器端口
public native int SetServerPort(int iObjectHandle, int iPort);
//获取属性集合中属性的总数
public native int GetPropertysCount(int iHandle);
//通过索引获取属性集合中的条目
public native int GetPropertysItem(int iHandle, int iIndex);
//调用SDK,传入对象句柄,属性句柄,命令ID
public native int Call(int iObjectHandle, int iPropertyHandle, int iCmdID);
//获取返回结果的集性集合,传入一个返回结果的句柄
public native int GetResultPropertys(int iResultHandle);
//通过传入一个返回结果的句柄,获取该句柄的结果,以int类型表示
public native int GetResultInt(int iResultHandle);
//通过传入一个返回结果的句柄,获取该句柄的结果,以String类型表示
public native String GetResultString(int iResultHandle);
//获取一个属性的名称
public String GetPropertyItemName(int iHandle) {
return GetProperty(iHandle, KEY_RESULT_NAME);
}
//获取一个属性的值
public String GetPropertyItemValue(int iHandle) {
return GetProperty(iHandle, KEY_RESULT_VALUE);
}
//获取内部错误代码
public int GetResultInnerCode(int iHandle) {
String sz = GetProperty(iHandle, KEY_RESULT_INCODE);
return Integer.parseInt(sz);
}
//获取内部错误信息
public String GetResultErrString(int iHandle) {
String sz = GetProperty(iHandle, KEY_RESULT_ERR_INFO);
return sz;
}
//获取SDK调用返回结果的Code,0表示成功,其他表示失败
public int GetResultCode(int iHandle) {
String sz = GetProperty(iHandle, KEY_RESULT_CODE);
return Integer.parseInt(sz);
}
//获取某个属性的类型(一般用不上)
public int GetResultType(int iHandle) {
String sz = GetProperty(iHandle, KEY_RESULT_TYPE);
return Integer.parseInt(sz);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 扩展的函数 //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
* 初始化对象
* @param objName String
*/
private void svrInit(String objName) {
iObj = GetNewObject(objName);
iProp = GetNewPropertys();
}
/**
* 释放资源
*/
private void release() {
ReleaseHandle(iObj);
ReleaseHandle(iProp);
ReleaseHandle(iResult);
}
/**
* 设置服务器IP
* @param strIP String
*/
public void setServerIP(String strIP){
svrInit(OBJNAME_RTXSYS);
int iResult=SetServerIP(iObj,strIP);
release();
}
/**
* 设置服务器端口
* @param iPort int 端口,默认是6000
*/
public void setServerPort(int iPort){
svrInit(OBJNAME_RTXSYS);
int iResult=SetServerPort(iObj,iPort);
release();
}
/**
* 取服务器IP
*@param iPort int
*/
public String getServerIP(){
svrInit(OBJNAME_RTXSYS);
String ip=GetServerIP(iObj);
release();
return ip;
}
/**
* 取服务器端口
* @return String 服务器地址
*/
public int getServerPort(){
svrInit(OBJNAME_RTXSYS);
int port=GetServerPort(iObj);
release();
return port;
}
/**
* 查询用户在线状态
* @param UserName String 用户帐号
* @return int 0:离线 1:在线 2:离开 11:不存在该用户 其它:未知状态
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -