package com.coffee.bus.device; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.coffee.bus.bean.DeviceBasicInfo; import com.coffee.common.redis.RedisUtils; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.Map; /** * @author lifang * @version 1.0.0 * @ClassName ClusterDeviceRegistry.java * @Description TODO * @createTime 2022年04月01日 17:10:00 */ @AllArgsConstructor @Service public class ClusterDeviceRegistry implements DeviceRegistry { private final RedisUtils redisUtils; @Override public DeviceOperator getDevice(String deviceId) { if(StrUtil.isEmpty(deviceId)){ return DeviceOperator.of(new DeviceBasicInfo(),redisUtils); } Map result = redisUtils.hmget(deviceId); if(result==null||result.size()==0){ return DeviceOperator.of(DeviceBasicInfo.of(deviceId),redisUtils); } return DeviceOperator.of(JSONUtil.toBean(JSONUtil.toJsonStr(result),DeviceBasicInfo.class),redisUtils); } @Override public void register(DeviceBasicInfo basicInfo) { if(StrUtil.isNotEmpty(basicInfo.getDeviceId())){ DeviceOperator.of(basicInfo, redisUtils).sysn(); } } @Override public void unRegister(String deviceId) { DeviceBasicInfo deviceBasicInfo = DeviceBasicInfo.of(deviceId); deviceBasicInfo.setDeviceId(deviceId); DeviceOperator.of(deviceBasicInfo, redisUtils).clear(); } }