package com.yihu.wlyy.aop;

import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.yihu.wlyy.repository.security.TokenDao;

@Component
@Aspect
public class UserFilterAOP {

	@Autowired
	public TokenDao tokenDao;

//	private JSONObject getAgent() {
//		try {
//			HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
//			String userAgent = request.getHeader("User-Agent");
//			return new JSONObject(userAgent);
//		} catch (Exception e) {
//			return null;
//		}
//	}
//
//	@Before("execution(* com.yihu.wlyy.service.app..*.*(..))")
//	public void before() throws Exception {
//		JSONObject json = getAgent();
//		if(json == null){
//			// 未登录
//			throw new InvalidUserException(SystemConf.NOT_LOGIN, "请登录后再操作！");
//		}
//		String user = json.getString("uid");
//		String imei = json.getString("imei");
//		int platform = json.getInt("platform");
//
//		Token token = SystemData.allUserTokens.get(user);
//		if (token == null) {
//			token = tokenDao.findByUser(user, platform);
//			if (token == null) {
//				// 未登录
//				throw new InvalidUserException(SystemConf.NOT_LOGIN, "请登录后再操作！");
//			} else {
//				if (token.getTimeout().getTime() < new Date().getTime()) {
//					// 登录超时
//					throw new InvalidUserException(SystemConf.LOGIN_TIMEOUT, "登录超时，请重新登录");
//				} else if (!StringUtils.equals(imei, token.getImei())) {
//					// 别处登录
//					throw new InvalidUserException(SystemConf.LOGIN_OTHER, "帐号在别处登录，请重新登录");
//				} else {
//					// 登录正常，更新缓存
//					SystemData.allUserTokens.put(user, token);
//				}
//			}
//		}
//	}

}
