Sfoglia il codice sorgente

调用健康档案转接服务

zhenglingfeng 8 anni fa
parent
commit
c61e3f39d4

+ 55 - 55
patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/DoctorInterceptor.java

@ -22,61 +22,61 @@ public class DoctorInterceptor extends BaseInterceptor {
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
////		boolean flag = true;
////		try {
////			response.setCharacterEncoding("UTF-8");
////			JSONObject json = getAgent(request);
////			if (json == null) {
////				// 未登录
////				response.getOutputStream().write(error(SystemConf.NOT_LOGIN, "请登录后再操作!").getBytes());
////				return false;
////			}
////			String tokenStr = json.has("token") ? json.getString("token") : "";
////			String uid = json.has("uid") ? json.getString("uid") : "";
////			String imei = json.has("imei") ? json.getString("imei") : "";
////
////			if (StringUtils.isEmpty(tokenStr) || StringUtils.isEmpty(imei) || StringUtils.isEmpty(uid)) {
////				response.getOutputStream().write(error(SystemConf.NOT_LOGIN, "请登录后再操作!").getBytes());
////				return false;
////			}
////
////			Token token = SystemData.doctorTokens.get(uid);
////			if (token == null) {
////				token = tokenDao.findByPatient(uid, 2);
////				if (token != null) {
////					// 加入缓存
////					SystemData.doctorTokens.put(uid, token);
////				}
////			}
////			if (token == null || token.getPlatform() != 2) {
////				// 未登录
////				response.getOutputStream().write(error(SystemConf.NOT_LOGIN, "请登录后再操作!").getBytes());
////				flag = false;
////			} else {
////				if (token.getTimeout().getTime() < new Date().getTime()) {
////					// 登录超时
////					response.getOutputStream().write(error(SystemConf.LOGIN_TIMEOUT, "登录超时,请重新登录").getBytes());
////					flag = false;
////				} else if (!StringUtils.equals(tokenStr, token.getToken()) || !StringUtils.equals(uid, token.getUser()) || !StringUtils.equals(imei, token.getImei())) {
////					// 别处登录
////					response.getOutputStream().write(error(SystemConf.LOGIN_OTHER, "帐号在别处登录,请重新登录").getBytes());
////					flag = false;
////				} else {
////					// 一天只更新一次
////					if (DateUtil.getDays(token.getCzrq(), DateUtil.getNowDateShort()) != 0) {
////						// 今天未更新,则更新缓存
////						token.setCzrq(new Date());
////						// 更新内存
////						SystemData.doctorTokens.put(uid, token);
////						// 更新数据库
////						tokenDao.save(token);
////					}
////				}
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
		return true;
		boolean flag = true;
		try {
			response.setCharacterEncoding("UTF-8");
			JSONObject json = getAgent(request);
			if (json == null) {
				// 未登录
				response.getOutputStream().write(error(SystemConf.NOT_LOGIN, "请登录后再操作!").getBytes());
				return false;
			}
			String tokenStr = json.has("token") ? json.getString("token") : "";
			String uid = json.has("uid") ? json.getString("uid") : "";
			String imei = json.has("imei") ? json.getString("imei") : "";
			if (StringUtils.isEmpty(tokenStr) || StringUtils.isEmpty(imei) || StringUtils.isEmpty(uid)) {
				response.getOutputStream().write(error(SystemConf.NOT_LOGIN, "请登录后再操作!").getBytes());
				return false;
			}
			Token token = SystemData.doctorTokens.get(uid);
			if (token == null) {
				token = tokenDao.findByPatient(uid, 2);
				if (token != null) {
					// 加入缓存
					SystemData.doctorTokens.put(uid, token);
				}
			}
			if (token == null || token.getPlatform() != 2) {
				// 未登录
				response.getOutputStream().write(error(SystemConf.NOT_LOGIN, "请登录后再操作!").getBytes());
				flag = false;
			} else {
				if (token.getTimeout().getTime() < new Date().getTime()) {
					// 登录超时
					response.getOutputStream().write(error(SystemConf.LOGIN_TIMEOUT, "登录超时,请重新登录").getBytes());
					flag = false;
				} else if (!StringUtils.equals(tokenStr, token.getToken()) || !StringUtils.equals(uid, token.getUser()) || !StringUtils.equals(imei, token.getImei())) {
					// 别处登录
					response.getOutputStream().write(error(SystemConf.LOGIN_OTHER, "帐号在别处登录,请重新登录").getBytes());
					flag = false;
				} else {
					// 一天只更新一次
					if (DateUtil.getDays(token.getCzrq(), DateUtil.getNowDateShort()) != 0) {
						// 今天未更新,则更新缓存
						token.setCzrq(new Date());
						// 更新内存
						SystemData.doctorTokens.put(uid, token);
						// 更新数据库
						tokenDao.save(token);
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return flag;
	}
	@Override