|
@@ -16,6 +16,7 @@ import com.caimei365.user.model.dto.ScanBindDto;
|
|
|
import com.caimei365.user.model.dto.SuperVipDto;
|
|
|
import com.caimei365.user.model.po.OperationPo;
|
|
|
import com.caimei365.user.model.po.SuperVipPo;
|
|
|
+import com.caimei365.user.model.vo.LoginFailRecordVo;
|
|
|
import com.caimei365.user.model.vo.UserLoginVo;
|
|
|
import com.caimei365.user.service.LoginService;
|
|
|
import com.caimei365.user.utils.JwtUtil;
|
|
@@ -87,6 +88,15 @@ public class LoginServiceImpl implements LoginService {
|
|
|
UserLoginVo baseUser = loginMapper.getLoginUserByMobileOrEmail(mobileOrEmail);
|
|
|
|
|
|
if (baseUser != null) {
|
|
|
+ //如果30分钟内输入错误记录>=5,return该账号暂时被冻结,请(30-最前一次时间)分钟后重试或直接修改密码
|
|
|
+ Calendar c = Calendar.getInstance();
|
|
|
+ c.setTime(new Date());
|
|
|
+ c.add(Calendar.MINUTE, -30);
|
|
|
+ List<LoginFailRecordVo> fail = loginMapper.findLoginFailRecord(baseUser.getUserId(), c.getTime());
|
|
|
+ if (null != fail && fail.size() >= 5) {
|
|
|
+ Integer minutes = loginMapper.findTimes(fail.get(0).getId(),new Date());
|
|
|
+ return ResponseJson.error("该账号暂时被冻结,请" + (30 - minutes) + "分钟后重试或直接修改密码", null);
|
|
|
+ }
|
|
|
// 如果前端传入unionId,则存入返回前端
|
|
|
baseUser.setUnionId(unionId);
|
|
|
// 比对密码
|
|
@@ -100,6 +110,12 @@ public class LoginServiceImpl implements LoginService {
|
|
|
// 返回登录校验结果
|
|
|
return logonVerify(baseUser);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ // 增加一次错误输入密码记录,30分钟内连续五次冻结
|
|
|
+ loginMapper.insertLoginFailRecord(new Date(),baseUser.getUserId());
|
|
|
+ if (null != fail && 4 ==fail.size() ) {
|
|
|
+ return ResponseJson.error("您已连续输错5次密码,账号被暂时冻结,请于30分钟后重试或直接修改密码",null);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|