|
@@ -25,6 +25,7 @@ import com.diagbot.exception.ServiceErrorCode;
|
|
|
import com.diagbot.service.impl.SysUserDeptServiceImpl;
|
|
|
import com.diagbot.service.impl.SysUserRoleServiceImpl;
|
|
|
import com.diagbot.service.impl.SysUserServiceImpl;
|
|
|
+import com.diagbot.task.LockTask;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
|
import com.diagbot.util.DateUtil;
|
|
|
import com.diagbot.util.EntityUtil;
|
|
@@ -53,9 +54,9 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
import java.awt.image.BufferedImage;
|
|
|
-import java.io.ByteArrayOutputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -102,6 +103,8 @@ public class SysUserFacade extends SysUserServiceImpl {
|
|
|
private SysHospitalSetFacade sysHospitalSetFacade;
|
|
|
@Autowired
|
|
|
private RedisUtils redisUtils;
|
|
|
+ @Autowired
|
|
|
+ private LockTask lockTask;
|
|
|
|
|
|
|
|
|
public void getCaptcha(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
@@ -200,7 +203,7 @@ public class SysUserFacade extends SysUserServiceImpl {
|
|
|
|
|
|
|
|
|
//判断用户是否锁定
|
|
|
- if(lockFlag){
|
|
|
+ if (lockFlag) {
|
|
|
lockCheck(redisUtils, user);
|
|
|
}
|
|
|
//密码是否正确
|
|
@@ -288,7 +291,7 @@ public class SysUserFacade extends SysUserServiceImpl {
|
|
|
//锁定账号
|
|
|
lockUser(user.getId(), LockEnum.LOCK.getKey());
|
|
|
//启动定时任务解锁
|
|
|
- runTimerTask(user.getId(), LockEnum.UNLOCK.getKey(), unlockTime * 1000);
|
|
|
+ runTimerTask(user.getId(), LockEnum.UNLOCK.getKey(), unlockTime);
|
|
|
//redis存入解锁账号(用户解锁剩余时间)
|
|
|
redisUtils.set("user:lockTime_" + user.getId(), "lock", unlockTime);
|
|
|
//获取锁定时间
|
|
@@ -343,7 +346,7 @@ public class SysUserFacade extends SysUserServiceImpl {
|
|
|
}
|
|
|
|
|
|
private void runTimerTask(Long id, String lock, int time) {
|
|
|
- new Timer().schedule(new TimerTask() {
|
|
|
+ lockTask.getMScheduledExecutorService().schedule(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
try {
|
|
@@ -352,7 +355,7 @@ public class SysUserFacade extends SysUserServiceImpl {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
- }, time);
|
|
|
+ }, time, TimeUnit.SECONDS);
|
|
|
}
|
|
|
|
|
|
public boolean lockUser(Long id, String key) {
|