detect.jsp 5.58 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@page import="weaver.social.im.SocialImLogin"%>
<%@page import="weaver.social.im.SocialIMClient"%>
<%@page import="weaver.social.service.SocialIMService"%>
<%@ include file="/social/detect/interface/baseapi.jsp"%>
<%@ include file="/social/detect/sysinfo.jsp"%> 
<jsp:useBean id="ResourceComInfo" class="weaver.hrm.resource.ResourceComInfo" scope="page" />
<%
response.setHeader("cache-control", "no-cache");
response.setHeader("pragma", "no-cache");
response.setHeader("expires", "Mon 1 Jan 1990 00:00:00 GMT");

String userId = user.getUID() + "";
String userName = ResourceComInfo.getLastname(user.getUID()+"");
String userHead = ResourceComInfo.getMessagerUrls(userId);
String method = Util.null2String(request.getParameter("m"));
Log logger= LogFactory.getLog(this.getClass());
JSONObject res = new JSONObject();
int errorCode = -1;
try{
	if(method.equalsIgnoreCase("checkopenfire")) {
		String[] hosts = parseHost(sysinfo.getString("openfireEMobileUrl"));
		if (!sysinfo.getBoolean("isUseOpenfire")) {
			errorCode = 101;
		} else if (!checkPort(hosts[1], Util.getIntValue(hosts[2]))) {
			errorCode = 102;
		}
	} else if(method.equalsIgnoreCase("checkudid")) {
		if (sysinfo.getBoolean("isUseOpenfire")) {
			rs.execute("select 1 from mobileProperty where name = 'rongAppUDID'");
			if (rs.next()) {
				rs.execute("delete from mobileProperty where name = 'rongAppUDID'");
				errorCode = 2;
			}
		}
	} else if(method.equalsIgnoreCase("checktoken")) {
		String token = "";
		if (sysinfo.getBoolean("isUseOpenfire")) {
			token = getToken(sysinfo.getString("openfireEMobileUrl"), 
					userId, userName, userHead, true);
			if (token.isEmpty()) {
				errorCode = 301;
			}
		} else {
			Map<String, String> rongConfig = WeaverRongUtil.getInstanse().getRongConfig(userId, userName, userHead);
			token = rongConfig.get("TOKEN");
			if (token.isEmpty()) {
				errorCode = 302;
			}
		}
	} else if(method.equalsIgnoreCase("checkappkey")) {
		Map<String, String> rongConfig = WeaverRongUtil.getInstanse().getRongConfig(userId, userName, userHead);
		String appkey = rongConfig.get("APPKEY");
		if (appkey.equals("")) {
			errorCode = 401;
		} else {
			String regex="^[a-z0-9A-Z]+$";
			if (!appkey.matches(regex)) {
				errorCode = 402;
			}
		}
	} else if(method.equalsIgnoreCase("checkfilter")) {
		// 检查格式
		JSONObject result = checkSocialFilter();
		boolean exist = result.getBoolean("exist");
		boolean correct = result.getBoolean("correct");
		boolean duplicate = result.getBoolean("duplicate");
		String error = result.getString("error");
		if (!error.isEmpty()) {
			errorCode = 501;
		} else if (!exist) {
			errorCode = 502;
		} else if (!correct) {
			errorCode = 503;
		} else if (duplicate) {
			errorCode = 504;
		}
		result = checkFilter();
		int numSocialIMFilter = result.getInt("isSocialIMFilter");
		int numWSessionClusterFilter = result.getInt("isWSessionClusterFilter");
		int numSecurityFilter = result.getInt("isSecurityFilter");
		error = result.getString("error");
		if (!error.isEmpty()) {
			errorCode = 501;
		} else {
			if (numSocialIMFilter == 0) {
				errorCode = 502;
			} else if ((numWSessionClusterFilter<numSocialIMFilter && numWSessionClusterFilter != 0)||
					numSocialIMFilter<numSecurityFilter) {
				errorCode = 505;
			}
		}
	} else if(method.equalsIgnoreCase("checkfileclean")) {
		boolean isServletConfigured = isConfigured("SocialIMServlet");
		if (!isServletConfigured) {
			errorCode = 601;
		} else {
			String isdeletefile = Prop.getPropValue("EMessage4Config", "isdeletefile");
			if (!"1".equals(isdeletefile )) {
				errorCode = 602;
			} else {
				String isOpenDeleteFileTask = getClientProp("isOpenDeleteFileTask");
				if(!"1".equals(isOpenDeleteFileTask)) {
					errorCode = 603;
				}
			}
		}
	} else if(method.equalsIgnoreCase("checkweb")) {
		// 1 检查总开关
		boolean isOpenIM = SocialIMService.isOpenIM();
		// 2 检查web版开关
		boolean isOpenWebIM = SocialIMService.isUseWebEmessage();
		// 3 检查license授权
		boolean isLicenseOk = SocialImLogin.checkLience() == 1;
		// 4 检查version版本号
		boolean isE4 = SocialIMService.checkE4Version();
		boolean isAccessLogin= false, isPcOnline =false;
		if(user != null) {
			// 5 检查是否禁止登录
			isAccessLogin= SocialImLogin.checkForbitLogin(user.getUID()+"");
			// 6 检查pc版登录状态
			isPcOnline = SocialImLogin.CheckpcOnline(userId, userName, userHead);
		}
		if(!isOpenIM) {
			errorCode = 701;
		} else if (!isOpenWebIM) {
			errorCode = 702;
		} else if (!isLicenseOk) {
			errorCode = 703;
		} else if (!isE4) {
			errorCode = 704;
		} else if (!isAccessLogin) {
			errorCode = 705;
		} else if (isPcOnline) {
			errorCode = 706;
		}
	} else if(method.equalsIgnoreCase("checkpush")) {
		boolean isPcOnline = SocialImLogin.CheckpcOnline(userId, userName, userHead);
		if (!isPcOnline) {
			errorCode = 800;
		} 
		String receivers = userId;
		String requesttitle = "测试打开内部推送";
		String requestdetails = "创建人:"+ userName +"<br>创建时间:" + TimeUtil.getCurrentTimeString();
		String requesturl = "http://www.weaver.com.cn";
		String extra = "";
		List<String> receiverIds = Util.TokenizerString(receivers, ",");
		try {
			SocialIMClient.pushInternal(1, requesttitle, requestdetails, "1", extra, receiverIds);
			SocialIMClient.pushExternal("系统提醒", "测试外部推送", requestdetails, requesturl, extra, receiverIds);
		} catch (Exception e) {
			errorCode = 501;
		}
	}
	getResult(res, errorCode, sysinfo);
	out.print(res);
} catch (Exception e) {
	logger.error("social-detect-error-method-" + method + "-message-" + e.getMessage());
}
%>