This commit is contained in:
张良(004796)
2024-02-01 16:45:34 +08:00
parent bc30fe24a4
commit d4908f9db8
3 changed files with 49 additions and 14 deletions

View File

@@ -96,7 +96,7 @@ public class UserForbidController extends BaseController {
@SaCheckPermission("cai:userForbid:unForbid")
@GetMapping("/un/forbid")
public R<Void> unForbid(Long id) {
userForbidManager.unForbidByForbidId(id);
userForbidManager.unForbidByForbidId(id, null);
return R.ok();
}
}

View File

@@ -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)){ // 封用户
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)){
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);
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(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

View File

@@ -71,7 +71,7 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
} else if(ForbidStatusEnum.NORMAL.getCode().equals(one.getForbidStatus())){ // 已解封
one.setBeginTime(LocalDateTime.now());
one.setEndTime(getEndTime(one.getBeginTime(), forbidTime));
} else if(ForbidStatusEnum.FORBID.getCode().equals(one.getForbidStatus()) && one.getEndTime().isAfter(LocalDateTime.now())){ // 已解封到期
} else if(ForbidStatusEnum.FORBID.getCode().equals(one.getForbidStatus()) && one.getEndTime().isBefore(LocalDateTime.now())){ // 已解封到期
one.setBeginTime(LocalDateTime.now());
one.setEndTime(getEndTime(one.getBeginTime(), forbidTime));
} else {