|
@@ -1,5 +1,6 @@
|
|
|
package thyyxxk.webserver.service;
|
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.crypto.SecureUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
@@ -16,6 +17,7 @@ import thyyxxk.webserver.service.externalhttp.CorpWxSrvc;
|
|
|
import thyyxxk.webserver.service.redislike.RedisLikeService;
|
|
|
import thyyxxk.webserver.utils.*;
|
|
|
|
|
|
+import javax.annotation.PostConstruct;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
@@ -43,7 +45,6 @@ public class LoginService {
|
|
|
|
|
|
public ResultVo<UserInfo> login(UserInfo userInfo) {
|
|
|
Date now = new Date();
|
|
|
-
|
|
|
UserInfo tempUserInfo = dao.findUserByCodeRsFromDjUserBase(userInfo.getCodeRs());
|
|
|
if (null == tempUserInfo) {
|
|
|
tempUserInfo = dao.findUserByCodeRsFromEmployeeMi(userInfo.getCodeRs());
|
|
@@ -53,41 +54,42 @@ public class LoginService {
|
|
|
dao.insertNewUserToDjUserBase(tempUserInfo);
|
|
|
}
|
|
|
// 如果当前时间在 限制时间之前就是锁定
|
|
|
-// if (tempUserInfo.getNextInputTimes() != null && now.toInstant().isBefore(tempUserInfo.getNextInputTimes().toInstant())) {
|
|
|
-// return ResultVoUtil.fail(ExceptionEnum.LOCK_OUT_THE_USER, StrUtil.format("用户已被锁定请:【{}】后重试。", DateUtil.formatDatetime(tempUserInfo.getNextInputTimes())), tempUserInfo);
|
|
|
-// }
|
|
|
+ if (tempUserInfo.getNextInputTimes() != null && now.toInstant().isBefore(tempUserInfo.getNextInputTimes().toInstant())) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOCK_OUT_THE_USER, StrUtil.format("用户已被锁定请:【{}】后重试。", DateUtil.formatDatetime(tempUserInfo.getNextInputTimes())), tempUserInfo);
|
|
|
+ }
|
|
|
+
|
|
|
String pwd = SecureUtil.md5(userInfo.getPassword());
|
|
|
if (!Objects.equals("fromTriageScreen", userInfo.getSid()) && !pwd.equals(tempUserInfo.getPassword())) {
|
|
|
-// Integer times = dao.selectInputErrFrequency(tempUserInfo.getCodeRs());
|
|
|
-// times = times == null ? 1 : times + 1;
|
|
|
-// userInfo.setNextInputTimes(null);
|
|
|
-// userInfo.setInputErrFrequency(times);
|
|
|
+ Integer times = dao.selectInputErrFrequency(tempUserInfo.getCodeRs());
|
|
|
+ times = times == null ? 1 : times + 1;
|
|
|
+ userInfo.setNextInputTimes(null);
|
|
|
+ userInfo.setInputErrFrequency(times);
|
|
|
// 输入次数大于三次锁定
|
|
|
-// 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);
|
|
|
-// }
|
|
|
-// 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 (times > 3) {
|
|
|
+ // 如果当前时间在限制时间之前就用限制时间
|
|
|
+ if (now.toInstant().isBefore(tempUserInfo.getNextInputTimes().toInstant())) {
|
|
|
+ now = tempUserInfo.getNextInputTimes();
|
|
|
+ } else {
|
|
|
+ // 如果不在就加一定的时间
|
|
|
+ now = DateUtil.offsetMinute(now, dao.selectLockTime());
|
|
|
+ }
|
|
|
+ userInfo.setNextInputTimes(now);
|
|
|
+ dao.addInputErrFrequency(tempUserInfo.getCodeRs(), times, now);
|
|
|
+ }
|
|
|
+ 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) {
|
|
|
-// dao.addInputErrFrequency(tempUserInfo.getCodeRs(), 0, null);
|
|
|
-// }
|
|
|
+ if (tempUserInfo.getInputErrFrequency() > 0) {
|
|
|
+ dao.addInputErrFrequency(tempUserInfo.getCodeRs(), 0, null);
|
|
|
+ }
|
|
|
String token = TokenUtil.getInstance().createToken(tempUserInfo.getCode());
|
|
|
try {
|
|
|
JSONObject json = srvc.getUserinfo(tokenService.getWeComAddressBookToken(), tempUserInfo.getCodeRs());
|