DeviceManager.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.zy.bms.redis;
  2. import com.alibaba.fastjson.JSON;
  3. import com.zy.bms.common.Constant;
  4. import com.zy.bms.model.DeviceLocation;
  5. import org.springframework.data.redis.core.RedisTemplate;
  6. import org.springframework.stereotype.Component;
  7. import javax.annotation.Resource;
  8. import java.util.concurrent.TimeUnit;
  9. /**
  10. * 设备信息,存放在缓存中的数据
  11. *
  12. * @author yang xiao kun
  13. * create on 2021/2/8
  14. */
  15. @Component
  16. public class DeviceManager {
  17. @Resource
  18. private RedisTemplate<String, String> redisTemplate;
  19. /**
  20. * 将最新位置信息保存至redis中
  21. * 24小时过期
  22. *
  23. * @param entity 位置信息
  24. */
  25. public void saveLocation(DeviceLocation entity) {
  26. redisTemplate.opsForValue()
  27. .set(Constant.REDIS_PREFIX_LOCATION + entity.getDeviceId(), JSON.toJSONString(entity), 24, TimeUnit.HOURS);
  28. }
  29. /**
  30. * 获取设备最新位置信息
  31. *
  32. * @param deviceId 设备ID
  33. */
  34. public DeviceLocation getLocation(String deviceId) {
  35. String json = redisTemplate.opsForValue().get(Constant.REDIS_PREFIX_LOCATION + deviceId);
  36. if (json == null || json.equals("")) return null;
  37. return JSON.parseObject(json, DeviceLocation.class);
  38. }
  39. }