xin
2025-07-15 2c0e5069ad7ec2fb43dc8eb1bb248b8c16595dc3
oying-common/src/main/java/com/oying/utils/RedisUtils.java
@@ -21,14 +21,15 @@
 * @author Z
 */
@Component
@SuppressWarnings({"unchecked","all"})
@SuppressWarnings({"unchecked", "all"})
public class RedisUtils {
    private static final Logger log = LoggerFactory.getLogger(RedisUtils.class);
    @Value("${jwt.generate-order-sn}")
    private String generateOrderSn;
    @Value("${wx.enabled}")
    private Boolean wxEnabled;
    private static final String T = "-T-";
    private static final String T = "T-";
    private static final String OY = "OY-";
    private RedisTemplate<Object, Object> redisTemplate;
    public RedisUtils(RedisTemplate<Object, Object> redisTemplate) {
@@ -46,7 +47,7 @@
    public String generateOrderSn(Integer i) {
        StringBuilder sb = new StringBuilder();
        String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
        String key = generateOrderSn + date;
        String key = generateOrderSn + i + date;
        Long increment = increment(key);
        sb.append(date);
        sb.append(String.format("%04d", i));
@@ -58,7 +59,7 @@
        }
        if (wxEnabled) {
            // 生产环境
            return sb.toString();
            return OY + sb.toString();
        } else {
            // 测试环境
            return T + sb.toString();
@@ -227,9 +228,10 @@
    /**
     * 批量模糊删除key
     *
     * @param pattern
     */
    public void scanDel(String pattern){
    public void scanDel(String pattern) {
        ScanOptions options = ScanOptions.scanOptions().match(pattern).build();
        try (Cursor<byte[]> cursor = redisTemplate.executeWithStickyConnection(
                (RedisCallback<Cursor<byte[]>>) connection -> (Cursor<byte[]>) new ConvertingCursor<>(
@@ -273,7 +275,7 @@
    /**
     * 普通缓存获取
     *
     * @param key 键
     * @param key   键
     * @param clazz 列表中元素的类型
     * @return 值
     */
@@ -300,7 +302,7 @@
     * @return 值
     */
    public String getStr(String key) {
        if(StrUtil.isBlank(key)){
        if (StrUtil.isBlank(key)) {
            return null;
        }
        Object value = redisTemplate.opsForValue().get(key);
@@ -320,7 +322,7 @@
    public List<Object> multiGet(List<String> keys) {
        List list = redisTemplate.opsForValue().multiGet(Sets.newHashSet(keys));
        List resultList = Lists.newArrayList();
        Optional.ofNullable(list).ifPresent(e-> list.forEach(ele-> Optional.ofNullable(ele).ifPresent(resultList::add)));
        Optional.ofNullable(list).ifPresent(e -> list.forEach(ele -> Optional.ofNullable(ele).ifPresent(resultList::add)));
        return resultList;
    }
@@ -390,6 +392,27 @@
        }
    }
    /**
     * 分布式ID生成器
     *
     * @param key   键
     * @param value 值
     * @param time  时间(秒) time要大于0 如果time小于等于0 将设置无限期,注意:这里将会替换原有的时间
     * @return true成功 false 失败
     */
    public boolean setIfAbsent(String key, Object value, long time) {
        try {
            if (time > 0) {
                Boolean result = redisTemplate.opsForValue().setIfAbsent(key, value, time, TimeUnit.SECONDS);
                return result;
            } else {
                return false;
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return false;
        }
    }
    // ================================Map=================================
    /**
@@ -816,6 +839,7 @@
    /**
     * 递增
     *
     * @param key
     * @return
     */
@@ -825,6 +849,7 @@
    /**
     * 递减
     *
     * @param key
     * @return
     */