Newer
Older
smartwell_demos / src / main / java / com / casic / util / RedisCommon.java
chaizhuang on 7 Sep 2023 1 KB 下发配置确认
package com.casic.util;

import com.alibaba.fastjson.JSON;
import com.casic.model.CommConfigDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.concurrent.TimeUnit;

@Component
public class RedisCommon {

    @Value("${casic.device.redis.invalid-time}")
    private String invalidTime;
    @Value("${casic.device.redis.config-prefix}")
    private String configPrefix;

    @Autowired
    private RedisTemplate<String, String> redisTemplate;


    public Map<String, Object> getMsg(String key) {
        // 判断上次保存时间,如果到期(key失效),再保存新的
        String timeStampKey = configPrefix + key;
        Object dataJson = null;
        synchronized (timeStampKey) {
            dataJson = redisTemplate.opsForValue().get(timeStampKey);
            redisTemplate.delete(timeStampKey);
        }
        return JSON.parseObject((String) dataJson);
    }


    public void send(CommConfigDTO commConfigDTO, String devCode) {
        redisTemplate.opsForValue().set(configPrefix + devCode,
                JSON.toJSONString(commConfigDTO),
                Integer.valueOf(invalidTime),
                TimeUnit.SECONDS);
    }
}