| 
					
				 | 
			
			
				@@ -1,6 +1,5 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package thyyxxk.webserver.service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.hutool.core.date.DateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.util.StrUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.crypto.SecureUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -66,13 +65,26 @@ public class LoginService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             userInfo.setNextInputTimes(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             userInfo.setInputErrFrequency(times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 输入次数大于三次锁定 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (times >= 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                now = DateUtil.offsetMinute(now, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (times > 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 如果当前时间在限制时间之前就用限制时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (now.toInstant().isBefore(tempUserInfo.getNextInputTimes().toInstant())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    now = tempUserInfo.getNextInputTimes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 如果不在就加 10 分钟 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    now = DateUtil.offsetMinute(now, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 userInfo.setNextInputTimes(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 dao.addInputErrFrequency(tempUserInfo.getCodeRs(), times, now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return ResultVoUtil.fail(ExceptionEnum.LOCK_OUT_THE_USER, StrUtil.format("用户已被锁定请:【{}】后重试。", DateUtil.formatDatetime(userInfo.getNextInputTimes())), userInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return ResultVoUtil.fail(ExceptionEnum.INVALID_PASSWORD, userInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dao.addInputErrFrequency(tempUserInfo.getCodeRs(), times, now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (userInfo.getNextInputTimes() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return ResultVoUtil.fail(ExceptionEnum.LOCK_OUT_THE_USER, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        StrUtil.format("用户已被锁定请:【{}】后重试。", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                DateUtil.formatDatetime(userInfo.getNextInputTimes())), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        userInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return ResultVoUtil.fail(ExceptionEnum.INVALID_PASSWORD, userInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (tempUserInfo.getInputErrFrequency() > 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -162,5 +174,4 @@ public class LoginService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return code + flakeIdSub + tokenSub; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |