| 
															
																@@ -21,6 +21,8 @@ import com.jeeplus.sys.model.LoginForm; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.jeeplus.sys.service.SysConfigService; 
															 | 
															
															 | 
															
																 import com.jeeplus.sys.service.SysConfigService; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.jeeplus.sys.service.UserService; 
															 | 
															
															 | 
															
																 import com.jeeplus.sys.service.UserService; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.jeeplus.sys.service.dto.UserDTO; 
															 | 
															
															 | 
															
																 import com.jeeplus.sys.service.dto.UserDTO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.jeeplus.sys.utils.DictUtils; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.jeeplus.sys.utils.StringUtils; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.jeeplus.sys.utils.UserUtils; 
															 | 
															
															 | 
															
																 import com.jeeplus.sys.utils.UserUtils; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import io.swagger.annotations.Api; 
															 | 
															
															 | 
															
																 import io.swagger.annotations.Api; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import io.swagger.annotations.ApiOperation; 
															 | 
															
															 | 
															
																 import io.swagger.annotations.ApiOperation; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -51,6 +53,8 @@ import java.nio.file.AccessDeniedException; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import java.util.Date; 
															 | 
															
															 | 
															
																 import java.util.Date; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import java.util.UUID; 
															 | 
															
															 | 
															
																 import java.util.UUID; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import static java.awt.SystemColor.info; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 /** 
															 | 
															
															 | 
															
																 /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  * 登录Controller 
															 | 
															
															 | 
															
																  * 登录Controller 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  * 
															 | 
															
															 | 
															
																  * 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -83,8 +87,26 @@ public class LoginController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         String username = loginForm.getUsername (); 
															 | 
															
															 | 
															
																         String username = loginForm.getUsername (); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         String password = loginForm.getPassword (); 
															 | 
															
															 | 
															
																         String password = loginForm.getPassword (); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         String code = loginForm.getCode (); 
															 | 
															
															 | 
															
																         String code = loginForm.getCode (); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        if(!code.equals ( RedisUtils.getInstance ().get (CacheNames.SYS_CACHE_CODE, loginForm.getUuid ()))){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            throw new AccountExpiredException ( ErrorConstants.LOGIN_ERROR_ERROR_VALIDATE_CODE ); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Integer redisLoginNumber = (Integer) RedisUtils.getInstance ().get ( CacheNames.USER_CACHE_LOGIN_CODE + username ); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if(null == redisLoginNumber){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            redisLoginNumber = 0; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }else{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            redisLoginNumber ++ ; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        RedisUtils.getInstance().set(CacheNames.USER_CACHE_LOGIN_CODE + username , redisLoginNumber); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //给登录次数记录设置6小时的过期时间 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        RedisUtils.getInstance().expire(CacheNames.USER_CACHE_LOGIN_CODE + username , 21600); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        String dictValue = DictUtils.getDictLabel("login_number", "login_verification_number", null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //字典中限制显示次数 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Integer loginNumber = 0; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if(StringUtils.isNotBlank(dictValue)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            loginNumber = Integer.valueOf(dictValue); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if(redisLoginNumber >= loginNumber){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if(!code.equals ( RedisUtils.getInstance ().get (CacheNames.SYS_CACHE_CODE, loginForm.getUuid ()))){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                throw new AccountExpiredException ( ErrorConstants.LOGIN_ERROR_ERROR_VALIDATE_CODE ); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         SecurityUtils.login (username, password, authenticationManager  ); //登录操作spring security 
															 | 
															
															 | 
															
																         SecurityUtils.login (username, password, authenticationManager  ); //登录操作spring security 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -101,7 +123,8 @@ public class LoginController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         responseUtil.add ( TokenProvider.TOKEN, token); 
															 | 
															
															 | 
															
																         responseUtil.add ( TokenProvider.TOKEN, token); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         //更新登录信息 
															 | 
															
															 | 
															
																         //更新登录信息 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         updateUserLoginInfo ( responseUtil, userDTO , token); 
															 | 
															
															 | 
															
																         updateUserLoginInfo ( responseUtil, userDTO , token); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //删除redis中登录次数的信息 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        RedisUtils.getInstance ().delete ( CacheNames.USER_CACHE_LOGIN_CODE + username ); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         return responseUtil.ok ( ); 
															 | 
															
															 | 
															
																         return responseUtil.ok ( ); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -206,4 +229,31 @@ public class LoginController { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * 获取登录次数 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * @throws 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @ApiOperation ("获取登录次数") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @ApiLog("获取登录次数") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @GetMapping("/sys/getLoginCodeNumber") 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    public ResponseEntity getLoginCodeNumber(String userName){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //字典中限制显示次数 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Integer loginNumber = 0; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //redis中记录登录次数 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Object redisLoginNumber = RedisUtils.getInstance ().get ( CacheNames.USER_CACHE_LOGIN_CODE + userName ); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if(null == redisLoginNumber){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            redisLoginNumber = 0; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        String dictValue = DictUtils.getDictLabel("login_number", "login_verification_number", null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if(StringUtils.isNotBlank(dictValue)){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            loginNumber = Integer.valueOf(dictValue); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if(loginNumber > 0){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                loginNumber -- ; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        return ResponseUtil.newInstance ().add ( "redisLoginNumber", redisLoginNumber ).add ( "loginNumber", loginNumber ).ok (); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 |