This commit is contained in:
张良(004796)
2024-01-18 18:29:21 +08:00
parent fce0047b57
commit 3e5b7b9984
21 changed files with 768 additions and 28 deletions

View File

@@ -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);
}

View File

@@ -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> {
}

View File

@@ -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);
}

View File

@@ -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);
});
}
}

View File

@@ -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 {
}

View File

@@ -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;
}
}