ClusterDeviceRegistry.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.coffee.bus.device;
  2. import cn.hutool.core.util.StrUtil;
  3. import cn.hutool.json.JSONUtil;
  4. import com.coffee.bus.bean.DeviceBasicInfo;
  5. import com.coffee.common.redis.RedisUtils;
  6. import lombok.AllArgsConstructor;
  7. import org.springframework.stereotype.Service;
  8. import java.util.Map;
  9. /**
  10. * @author lifang
  11. * @version 1.0.0
  12. * @ClassName ClusterDeviceRegistry.java
  13. * @Description TODO
  14. * @createTime 2022年04月01日 17:10:00
  15. */
  16. @AllArgsConstructor
  17. @Service
  18. public class ClusterDeviceRegistry implements DeviceRegistry {
  19. private final RedisUtils redisUtils;
  20. @Override
  21. public DeviceOperator getDevice(String deviceId) {
  22. if(StrUtil.isEmpty(deviceId)){
  23. return DeviceOperator.of(new DeviceBasicInfo(),redisUtils);
  24. }
  25. Map<Object, Object> result = redisUtils.hmget(deviceId);
  26. if(result==null||result.size()==0){
  27. return DeviceOperator.of(DeviceBasicInfo.of(deviceId),redisUtils);
  28. }
  29. return DeviceOperator.of(JSONUtil.toBean(JSONUtil.toJsonStr(result),DeviceBasicInfo.class),redisUtils);
  30. }
  31. @Override
  32. public void register(DeviceBasicInfo basicInfo) {
  33. if(StrUtil.isNotEmpty(basicInfo.getDeviceId())){
  34. DeviceOperator.of(basicInfo, redisUtils).sysn();
  35. }
  36. }
  37. @Override
  38. public void unRegister(String deviceId) {
  39. DeviceBasicInfo deviceBasicInfo = DeviceBasicInfo.of(deviceId);
  40. deviceBasicInfo.setDeviceId(deviceId);
  41. DeviceOperator.of(deviceBasicInfo, redisUtils).clear();
  42. }
  43. }