This commit is contained in:
张良(004796)
2024-02-01 16:19:35 +08:00
parent c6d888b727
commit bc30fe24a4
2 changed files with 11 additions and 10 deletions

View File

@@ -231,11 +231,10 @@ public class UserForbidManager {
if(userForbid == null || ForbidStatusEnum.NORMAL.getCode().equals(userForbid.getForbidStatus())){
return;
}
if(!userForbid.getEndTime().isAfter(LocalDateTime.now())){
if(userForbid.getEndTime().isAfter(LocalDateTime.now())){
return;
}
this.unForbidByForbidId(id);
}
@Data

View File

@@ -57,24 +57,26 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
log.error("封禁入参错误 data={}", JSON.toJSONString(userForbidLog));
return;
}
// 暂不考虑并发
UserForbid one = this.getOne(Wrappers.lambdaQuery(UserForbid.class)
.eq(UserForbid::getMember, userForbidLog.getMember())
.eq(UserForbid::getType, forbidType.getCode()));
.eq(UserForbid::getType, forbidType.getCode())
.last("limit 1"));
if(one == null){
one = new UserForbid();
one.setType(userForbidLog.getType());
one.setMember(userForbidLog.getMember());
one.setBeginTime(LocalDateTime.now());
one.setEndTime(getEndTime(one.getBeginTime(), forbidTime));
} else if(ForbidStatusEnum.NORMAL.getCode().equals(one.getForbidStatus())){ // 已解封
one.setBeginTime(LocalDateTime.now());
} else if(ForbidStatusEnum.FORBID.getCode().equals(one.getForbidStatus()) && one.getEndTime().isBefore(LocalDateTime.now())){
one.setEndTime(getEndTime(one.getBeginTime(), forbidTime));
} else if(ForbidStatusEnum.FORBID.getCode().equals(one.getForbidStatus()) && one.getEndTime().isAfter(LocalDateTime.now())){ // 已解封到期
one.setBeginTime(LocalDateTime.now());
one.setEndTime(getEndTime(one.getBeginTime(), forbidTime));
} else {
one.setEndTime(getEndTime(one.getEndTime(),forbidTime)); // 还在封号中,续上时间
}
LocalDateTime endTime = getEndTime(one.getBeginTime(), forbidTime);
if(endTime == null){
return;
}
one.setEndTime(endTime);
one.setReason(userForbidLog.getReason());
one.setForbidStatus(ForbidStatusEnum.FORBID.getCode());
this.saveOrUpdate(one);
@@ -85,7 +87,7 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
forbidCache.addForbid(one);
try {
// 12小时
long between = CaiDateUtil.diff(endTime, LocalDateTime.now());
long between = CaiDateUtil.diff(one.getEndTime(), LocalDateTime.now());
CommonDelayDto dto = new CommonDelayDto();
dto.setForbidId(one.getId());
dto.setType(CommonDelayTypeEnum.USER_FORBID.getCode());