From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 22 一月 2019 15:58:24 +0800
Subject: [PATCH] 邀请码添加返回状态

---
 fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java |  111 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 75 insertions(+), 36 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java b/fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java
index 7f3a045..240026f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java
+++ b/fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java
@@ -2,7 +2,9 @@
 
 import java.io.IOException;
 import java.lang.reflect.Method;
+import java.net.URLDecoder;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -14,69 +16,106 @@
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
+import org.yeshi.utils.JsonUtil;
 
 import com.yeshi.fanli.entity.common.AdminUser;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.AdminUserService;
+import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.annotation.RequestNoLogin;
-import org.yeshi.utils.JsonUtil;
+
+import net.sf.json.JSONObject;
 
 @Component
 @Aspect
 public class LoginAspect {
-	
-//	@Around("execution(public * com.yeshi.fanli.controller.admin.*.*(..))")
+
+	@Resource
+	private AdminUserService adminUserService;
+
+	@Around("execution(public * com.yeshi.fanli.controller.admin.*.*(..))")
 	public Object verifyLoginState(ProceedingJoinPoint joinPoint) throws IOException {
-		
+
 		Signature signature = joinPoint.getSignature();
 		MethodSignature methodSignature = (MethodSignature) signature;
 		Method targetMethod = methodSignature.getMethod();
-		
-		ServletRequestAttributes servletContainer = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
-		
-		HttpServletRequest request = servletContainer.getRequest();
-		
-		
-		AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
-		
-		if(admin==null){
-			Method realMethod=null;
-			try {
-				realMethod = joinPoint.getTarget().getClass().getDeclaredMethod(joinPoint.getSignature().getName(),
-						targetMethod.getParameterTypes());
-			} catch (NoSuchMethodException e) {
-				e.printStackTrace();
-			} catch (SecurityException e) {
-				e.printStackTrace();
-			}
 
-			//鍒ゆ柇鏄惁鏈夊拷鐣ラ獙璇佺殑娉ㄨВ
-			if (realMethod==null||!realMethod.isAnnotationPresent(RequestNoLogin.class)) 
-			{
-				HttpServletResponse response = servletContainer.getResponse();
+		ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder
+				.getRequestAttributes();
+
+		HttpServletRequest request = servletContainer.getRequest();
+
+		AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
+
+		if (admin == null) {
+
+			String from = request.getParameter("from");
+			// 閭欢H5鏉ユ簮鐨勪笉鍒ゆ柇鏄惁鐧诲綍
+			if ("emailh5".equalsIgnoreCase(from)) {
 				String callback = request.getParameter("callback");
-				if (StringUtil.isNullOrEmpty(callback)) {
-					response.getWriter().print(JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍"));
+				String signAES = request.getParameter("sign");
+				if (signAES != null && signAES.contains("%"))
+					signAES = URLDecoder.decode(request.getParameter("sign"), "UTF-8");
+				String sign = AESUtil.decrypt(signAES, Constant.ADMINH5_AESKEY);
+				if (!StringUtil.isNullOrEmpty(sign)) {
+					LogHelper.error("H5瀹℃牳绛惧悕:" + sign);
+					JSONObject json = JSONObject.fromObject(sign);
+					long time = json.optLong("timeStamp");
+					long adminId = json.optLong("adminId");
+					AdminUser adminUser = adminUserService.selectByPrimaryKey(adminId);
+					// 1涓皬鏃堕摼鎺ュけ鏁�
+					if (System.currentTimeMillis() - time > 1000 * 60 * 60 || adminUser == null) {
+						servletContainer.getResponse().getWriter()
+								.print(callback + "(" + JsonUtil.loadFalseResult(2, "閾炬帴澶辨晥") + ")");
+						return null;
+					} else {
+						request.getSession().setAttribute(Constant.SESSION_ADMIN, adminUser);
+						request.getSession().setAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT, "1");
+					}
 				} else {
-					response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍") + ")");
+					servletContainer.getResponse().getWriter()
+							.print(callback + "(" + JsonUtil.loadFalseResult(3, "閾炬帴澶辨晥") + ")");
+					return null;
 				}
-				
-				return null;
+
+			} else {
+				Method realMethod = null;
+				try {
+					realMethod = joinPoint.getTarget().getClass().getDeclaredMethod(joinPoint.getSignature().getName(),
+							targetMethod.getParameterTypes());
+				} catch (NoSuchMethodException e) {
+					e.printStackTrace();
+				} catch (SecurityException e) {
+					e.printStackTrace();
+				}
+
+				// 鍒ゆ柇鏄惁鏈夊拷鐣ラ獙璇佺殑娉ㄨВ
+				if (realMethod == null || !realMethod.isAnnotationPresent(RequestNoLogin.class)) {
+					HttpServletResponse response = servletContainer.getResponse();
+					String callback = request.getParameter("callback");
+					if (StringUtil.isNullOrEmpty(callback)) {
+						response.getWriter().print(JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍"));
+					} else {
+						response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍") + ")");
+					}
+
+					return null;
+				}
 			}
 		}
-		
+
 		Object[] args = joinPoint.getArgs();
 		Object obj = null;
-		
+
 		try {
 			obj = joinPoint.proceed(args);
 		} catch (Throwable e) {
 			e.printStackTrace();
 		}
-		
+
 		return obj;
 	}
-	
-
 
 }

--
Gitblit v1.8.0