From d4908f9db893e2755333783a6e269c1bc7f4186a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Thu, 1 Feb 2024 16:45:34 +0800 Subject: [PATCH] 123 --- .../cai/admin/UserForbidController.java | 2 +- .../ruoyi/cai/manager/UserForbidManager.java | 59 +++++++++++++++---- .../service/impl/UserForbidServiceImpl.java | 2 +- 3 files changed, 49 insertions(+), 14 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/UserForbidController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/UserForbidController.java index 3d5648fe..5fa6e28a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/UserForbidController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/UserForbidController.java @@ -96,7 +96,7 @@ public class UserForbidController extends BaseController { @SaCheckPermission("cai:userForbid:unForbid") @GetMapping("/un/forbid") public R unForbid(Long id) { - userForbidManager.unForbidByForbidId(id); + userForbidManager.unForbidByForbidId(id, null); return R.ok(); } } 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 d3ef02b6..c74a8023 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 @@ -1,5 +1,6 @@ package com.ruoyi.cai.manager; +import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -52,15 +53,28 @@ public class UserForbidManager { if(forbidTimeEnum == null){ throw new ServiceException("封禁天数错误"); } + if(forbidTimeEnum == ForbidTimeEnum.UNFORBID){ + UserForbidManager userForbidManager = SpringUtil.getBean(UserForbidManager.class); + for (Integer integer : type) { + if(ForbidTypeEnum.USER.getCode().equals(integer)){ + userForbidManager.unForbidByTypeAndMember(integer,user.getUsercode(),userForbidReq.getReason()); + }else if(ForbidTypeEnum.IMEI.getCode().equals(integer)){ + userForbidManager.unForbidByTypeAndMember(integer,user.getUsercode(),userForbidReq.getReason()); + }else if(ForbidTypeEnum.IP.getCode().equals(integer)){ + userForbidManager.unForbidByTypeAndMember(integer,user.getUsercode(),userForbidReq.getReason()); + } + } + return; + } for (Integer integer : type) { - if(ForbidTypeEnum.USER.getCode().equals(integer)){ // 封用户 + if(ForbidTypeEnum.USER.getCode().equals(integer)){ UserForbidDTO dto = new UserForbidDTO(); dto.setForbidTime(userForbidReq.getForbidTime()); dto.setForbidType(ForbidTypeEnum.USER.getCode()); dto.setMember(user.getUsercode()); dto.setRemark(userForbidReq.getReason()); this.forbid(dto); - }else if(ForbidTypeEnum.IMEI.getCode().equals(integer)){ // 封设备 + }else if(ForbidTypeEnum.IMEI.getCode().equals(integer)){ UserInfo userInfo = userInfoService.getByUserId(user.getId()); if(userInfo != null && StringUtils.isNotEmpty(userInfo.getImei())){ UserForbidDTO dto = new UserForbidDTO(); @@ -70,7 +84,7 @@ public class UserForbidManager { dto.setRemark(userForbidReq.getReason()); this.forbid(dto); } - }else if(ForbidTypeEnum.IP.getCode().equals(integer)){ // 封IP + }else if(ForbidTypeEnum.IP.getCode().equals(integer)){ UserInfo userInfo = userInfoService.getByUserId(user.getId()); if(userInfo != null && StringUtils.isNotEmpty(userInfo.getLastLoginIp())){ UserForbidDTO dto = new UserForbidDTO(); @@ -164,21 +178,41 @@ public class UserForbidManager { } @Transactional(rollbackFor = Exception.class) - public void unForbidByForbidId(Long id) { - UserForbid userForbid = userForbidService.getById(id); - userForbidService.update(Wrappers.lambdaUpdate(UserForbid.class) - .eq(UserForbid::getId,userForbid.getId()) - .set(UserForbid::getForbidStatus, ForbidStatusEnum.NORMAL.getCode())); + public void unForbidByTypeAndMember(Integer type,String member,String remark) { + UserForbid userForbid = userForbidService.getOne(Wrappers.lambdaQuery(UserForbid.class) + .eq(UserForbid::getType,type) + .eq(UserForbid::getMember,member) + .last("limit 1")); + if(ForbidStatusEnum.NORMAL.getCode().equals(userForbid.getForbidStatus()) + || userForbid.getEndTime().isBefore(LocalDateTime.now())){ // 无封号 + log.info("无封号,无需操作! type={},member={}", type,member); + }else{ + userForbidService.update(Wrappers.lambdaUpdate(UserForbid.class) + .eq(UserForbid::getId,userForbid.getId()) + .set(UserForbid::getForbidStatus, ForbidStatusEnum.NORMAL.getCode()) + .set(StringUtils.isNotBlank(remark), UserForbid::getReason, remark)); + } if(ForbidTypeEnum.USER.getCode().equals(userForbid.getType())){ User user = userService.getByUserCode(userForbid.getMember()); userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId()).set(User::getStatus,0)); anchorService.update(Wrappers.lambdaUpdate(Anchor.class).eq(Anchor::getId,user.getId()).set(Anchor::getStatus,0)); } - this.unForbid(userForbid.getType(),userForbid.getMember()); + forbidCache.unForbid(userForbid.getType(),userForbid.getMember()); } - public void unForbid(Integer type,String member){ - forbidCache.unForbid(type,member); + @Transactional(rollbackFor = Exception.class) + public void unForbidByForbidId(Long id,String remark) { + UserForbid userForbid = userForbidService.getById(id); + userForbidService.update(Wrappers.lambdaUpdate(UserForbid.class) + .eq(UserForbid::getId,userForbid.getId()) + .set(UserForbid::getForbidStatus, ForbidStatusEnum.NORMAL.getCode()) + .set(StringUtils.isNotBlank(remark), UserForbid::getReason, remark)); + if(ForbidTypeEnum.USER.getCode().equals(userForbid.getType())){ + User user = userService.getByUserCode(userForbid.getMember()); + userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId()).set(User::getStatus,0)); + anchorService.update(Wrappers.lambdaUpdate(Anchor.class).eq(Anchor::getId,user.getId()).set(Anchor::getStatus,0)); + } + forbidCache.unForbid(userForbid.getType(),userForbid.getMember()); } public void checkAll(){ @@ -234,7 +268,8 @@ public class UserForbidManager { if(userForbid.getEndTime().isAfter(LocalDateTime.now())){ return; } - this.unForbidByForbidId(id); + UserForbidManager userForbidManager = SpringUtil.getBean(UserForbidManager.class); + userForbidManager.unForbidByForbidId(id,null); } @Data 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 2abf81ee..3cc14061 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 @@ -71,7 +71,7 @@ public class UserForbidServiceImpl extends ServiceImpl