From 574ef6cfdbc697d7cb475603e06cfdb6f0f18ce0 Mon Sep 17 00:00:00 2001 From: duteliang <383200134@qq.com> Date: Thu, 1 Feb 2024 00:50:42 +0800 Subject: [PATCH] init --- .../com/ruoyi/cai/auth/CaiLoginManager.java | 11 ++++++--- .../java/com/ruoyi/cai/domain/UserInfo.java | 4 ++++ .../admin/vo/userforbid/UserForbidInfo.java | 3 ++- .../ruoyi/cai/manager/UserForbidManager.java | 14 ++++++++--- .../service/impl/UserForbidServiceImpl.java | 24 ++++++++++++++----- .../com/ruoyi/common/utils/ServletUtils.java | 8 +++++++ 6 files changed, 51 insertions(+), 13 deletions(-) diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java index ed22dec2..42d609b8 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java @@ -91,7 +91,8 @@ public class CaiLoginManager { if(user == null){ throw new ServiceException("用户不存在或密码错误"); } - UserForbidManager.CheckForbid forbid = userForbidManager.checkForbid(user.getId(), user.getUsercode(), null, ServletUtils.getClientIP()); + String imei = ServletUtils.getImei(); + UserForbidManager.CheckForbid forbid = userForbidManager.checkForbid(user.getId(), user.getUsercode(), imei, ServletUtils.getClientIP()); if(forbid != null && forbid.isForbid()){ throw new ServiceException(forbid.getMessage()); } @@ -216,7 +217,7 @@ public class CaiLoginManager { } - public void recordLoginInfo(User user, String ip) { + public void recordLoginInfo(User user, String ip,String imei) { String address = AddressUtils.getRealAddressByIP(ip); UserInfo userInfo = userInfoService.getById(user.getId()); UserInfo update = new UserInfo(); @@ -225,6 +226,9 @@ public class CaiLoginManager { update.setLastLoginIp(ip); update.setLastLoginTime(LocalDateTime.now()); update.setLastLocation(address); + if(StringUtils.isNotBlank(imei)){ + update.setImei(imei); + } userInfoService.updateById(update); } @@ -259,7 +263,8 @@ public class CaiLoginManager { LoginHelper.login(loginUser); sysLoginService.recordLogininfor(loginUser.getUsername(), UserType.APP_USER.getUserType(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); String clientIP = ServletUtils.getClientIP(); - ExecutorConstant.COMMON_EXECUTOR.execute(() -> recordLoginInfo(user,clientIP)); + String imei = ServletUtils.getImei(); + ExecutorConstant.COMMON_EXECUTOR.execute(() -> recordLoginInfo(user,clientIP,imei)); return StpUtil.getTokenValue(); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/UserInfo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/UserInfo.java index d2540bcf..6f278fe6 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/UserInfo.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/UserInfo.java @@ -69,5 +69,9 @@ public class UserInfo { * 注册时间 */ private LocalDateTime regTime; + /** + * 设备号 + */ + private String imei; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/userforbid/UserForbidInfo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/userforbid/UserForbidInfo.java index fa219a60..4cafbf9c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/userforbid/UserForbidInfo.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/userforbid/UserForbidInfo.java @@ -12,7 +12,8 @@ public class UserForbidInfo { private UserForbid userForbid; private String userForbidBetween; private UserForbid ipUserForbid; - private String ipForbidBetween; + private UserForbid imeiUserForbid; + private String imeiForbidBetween; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/UserForbidManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/UserForbidManager.java index ef20afce..e88873e1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/UserForbidManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/UserForbidManager.java @@ -56,7 +56,15 @@ public class UserForbidManager { dto.setRemark(userForbidReq.getReason()); this.forbid(dto); }else if(integer == 2){ // 封设备 - // 封设备 + UserInfo userInfo = userInfoService.getByUserId(user.getId()); + if(userInfo != null && StringUtils.isNotEmpty(userInfo.getImei())){ + UserForbidDTO dto = new UserForbidDTO(); + dto.setForbidTime(userForbidReq.getForbidTime()); + dto.setForbidType(ForbidTypeEnum.IMEI.getCode()); + dto.setMember(userInfo.getImei()); + dto.setRemark(userForbidReq.getReason()); + this.forbid(dto); + } }else if(integer == 3){ // 封IP UserInfo userInfo = userInfoService.getByUserId(user.getId()); if(userInfo != null && StringUtils.isNotEmpty(userInfo.getLastLoginIp())){ @@ -113,7 +121,7 @@ public class UserForbidManager { noForbid = CheckForbid.forbid(traceId); noForbid.setMessage("您的账号已被封禁"); - }else if(IMEI != null){ + }else if(StringUtils.isNotBlank(IMEI)){ forbidId = forbidCache.checkForbid(IMEI, ForbidTypeEnum.IMEI); if(forbidId == null){ return noForbid; @@ -123,7 +131,7 @@ public class UserForbidManager { String traceId = IdManager.nextIdStr(); noForbid = CheckForbid.forbid(traceId); noForbid.setMessage("您的设备已被封禁"); - }else if(ip != null){ + }else if(StringUtils.isNotBlank(ip)){ forbidId = forbidCache.checkForbid(ip, ForbidTypeEnum.IP); if(forbidId == null){ return noForbid; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserForbidServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserForbidServiceImpl.java index f780db90..60cb6e78 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserForbidServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserForbidServiceImpl.java @@ -21,6 +21,7 @@ import com.ruoyi.cai.service.UserInfoService; import com.ruoyi.cai.service.UserService; import com.ruoyi.cai.util.CaiDateUtil; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -118,12 +119,23 @@ public class UserForbidServiceImpl extends ServiceImpl