管道基础大数据平台系统开发-【后端】-Server
13693261870
2024-03-25 1c285b38777e9f37ee8d112e994443d3640b78c1
src/main/java/com/lf/server/service/sys/BlacklistService.java
@@ -1,12 +1,16 @@
package com.lf.server.service.sys;
import com.lf.server.entity.all.RedisCacheKey;
import com.lf.server.entity.all.SettingData;
import com.lf.server.entity.sys.BlacklistEntity;
import com.lf.server.helper.StringHelper;
import com.lf.server.mapper.sys.BlacklistMapper;
import com.lf.server.service.all.RedisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
 * 黑名单
@@ -17,16 +21,21 @@
    @Autowired
    BlacklistMapper blacklistMapper;
    @Autowired
    RedisService redisService;
    private final static int TWO = 2;
    @Override
    public Integer selectCount(String ip, Integer type) {
        ip = StringHelper.isNull(ip) ? null : "%" + ip.trim() + "%";
        ip = StringHelper.getLikeUpperStr(ip);
        return blacklistMapper.selectCount(ip, type);
    }
    @Override
    public List<BlacklistEntity> selectByPage(String ip, Integer type, Integer limit, Integer offset) {
        ip = StringHelper.isNull(ip) ? null : "%" + ip.trim() + "%";
        ip = StringHelper.getLikeUpperStr(ip);
        return blacklistMapper.selectByPage(ip, type, limit, offset);
    }
@@ -42,6 +51,33 @@
    }
    @Override
    public List<String> selectIpList(Integer type) {
        if (type == null || type < 1 || type > TWO) {
            return null;
        }
        String key = RedisCacheKey.blacklistKey(type.toString());
        Object obj = redisService.get(key);
        if (obj instanceof List<?>) {
            return (List<String>) obj;
        }
        List<String> list = blacklistMapper.selectIpList(type);
        if (list != null && list.size() > 0) {
            redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES);
        }
        return list;
    }
    /**
     * 清空缓存
     */
    public void clearCache() {
        redisService.clearKeys(RedisCacheKey.blacklistKey(""));
    }
    @Override
    public Integer insert(BlacklistEntity entity) {
        return blacklistMapper.insert(entity);
    }