123
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.ForbidFilter;
|
||||
import com.ruoyi.cai.enums.ForbidTypeEnum;
|
||||
|
||||
/**
|
||||
* 登陆拦截记录Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-01-18
|
||||
*/
|
||||
public interface ForbidFilterService extends IService<ForbidFilter> {
|
||||
|
||||
void addForbidFilter(ForbidFilter forbidFilter);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.UserForbidLog;
|
||||
|
||||
/**
|
||||
* 封禁记录Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-01-18
|
||||
*/
|
||||
public interface UserForbidLogService extends IService<UserForbidLog> {
|
||||
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserForbid;
|
||||
import com.ruoyi.cai.domain.UserForbidLog;
|
||||
|
||||
/**
|
||||
* 封号列表Service接口
|
||||
@@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.UserForbid;
|
||||
*/
|
||||
public interface UserForbidService extends IService<UserForbid> {
|
||||
|
||||
void forbid(UserForbidLog userForbidLog, User user);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.ForbidFilter;
|
||||
import com.ruoyi.cai.executor.ExecutorConstant;
|
||||
import com.ruoyi.cai.mapper.ForbidFilterMapper;
|
||||
import com.ruoyi.cai.service.ForbidFilterService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 登陆拦截记录Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-01-18
|
||||
*/
|
||||
@Service
|
||||
public class ForbidFilterServiceImpl extends ServiceImpl<ForbidFilterMapper,ForbidFilter> implements ForbidFilterService {
|
||||
|
||||
@Override
|
||||
public void addForbidFilter(ForbidFilter forbidFilter) {
|
||||
ExecutorConstant.COMMON_EXECUTOR.execute(() -> {
|
||||
this.save(forbidFilter);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.UserForbidLog;
|
||||
import com.ruoyi.cai.mapper.UserForbidLogMapper;
|
||||
import com.ruoyi.cai.service.UserForbidLogService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 封禁记录Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-01-18
|
||||
*/
|
||||
@Service
|
||||
public class UserForbidLogServiceImpl extends ServiceImpl<UserForbidLogMapper,UserForbidLog> implements UserForbidLogService {
|
||||
|
||||
}
|
||||
@@ -1,11 +1,25 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.Anchor;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserForbid;
|
||||
import com.ruoyi.cai.domain.UserForbidLog;
|
||||
import com.ruoyi.cai.enums.ForbidTimeEnum;
|
||||
import com.ruoyi.cai.enums.ForbidTypeEnum;
|
||||
import com.ruoyi.cai.manager.ForbidCache;
|
||||
import com.ruoyi.cai.mapper.UserForbidMapper;
|
||||
import com.ruoyi.cai.service.AnchorService;
|
||||
import com.ruoyi.cai.service.UserForbidService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 封号列表Service业务层处理
|
||||
*
|
||||
@@ -13,6 +27,68 @@ import org.springframework.stereotype.Service;
|
||||
* @date 2023-12-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserForbid> implements UserForbidService {
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private AnchorService anchorService;
|
||||
@Autowired
|
||||
private ForbidCache forbidCache;
|
||||
|
||||
@Override
|
||||
public void forbid(UserForbidLog userForbidLog, User user) {
|
||||
ForbidTimeEnum forbidTime = ForbidTimeEnum.getByCode(userForbidLog.getForbidTime());
|
||||
ForbidTypeEnum forbidType = ForbidTypeEnum.getByCode(userForbidLog.getType());
|
||||
if(forbidTime == null || forbidType == null){
|
||||
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()));
|
||||
if(one == null){
|
||||
one = new UserForbid();
|
||||
one.setType(userForbidLog.getType());
|
||||
one.setMember(userForbidLog.getMember());
|
||||
one.setBeginTime(LocalDateTime.now());
|
||||
} else if(one.getForbidStatus() == 2){ // 已解封
|
||||
one.setBeginTime(LocalDateTime.now());
|
||||
} else if(one.getForbidStatus() == 1 && one.getEndTime().isBefore(LocalDateTime.now())){
|
||||
one.setBeginTime(LocalDateTime.now());
|
||||
}
|
||||
LocalDateTime endTime = getEndTime(one.getBeginTime(), forbidTime);
|
||||
if(endTime == null){
|
||||
return;
|
||||
}
|
||||
one.setEndTime(endTime);
|
||||
one.setReason(userForbidLog.getReason());
|
||||
this.save(one);
|
||||
if(user != null){
|
||||
userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId()).set(User::getStatus,1));
|
||||
anchorService.update(Wrappers.lambdaUpdate(Anchor.class).eq(Anchor::getId,user.getId()).set(Anchor::getStatus,1));
|
||||
}
|
||||
forbidCache.addForbid(one);
|
||||
}
|
||||
|
||||
private LocalDateTime getEndTime(LocalDateTime beginTime, ForbidTimeEnum time){
|
||||
switch (time){
|
||||
case DAY_1:
|
||||
return beginTime.plusDays(1);
|
||||
case DAY_3:
|
||||
return beginTime.plusDays(3);
|
||||
case DAY_7:
|
||||
return beginTime.plusDays(7);
|
||||
case HOUSE_6:
|
||||
return beginTime.plusHours(6);
|
||||
case MONTH_1:
|
||||
return beginTime.plusMonths(1);
|
||||
case YEAR_10:
|
||||
return beginTime.plusYears(10);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user