package com.fzzy.gateway.service; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.fzzy.api.utils.ContextUtil; import com.fzzy.api.utils.RedisConst; import com.fzzy.api.utils.RedisUtil; import com.fzzy.gateway.entity.GatewayDevice; import com.fzzy.gateway.service.repository.GatewayDeviceRep; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; @Component public class GatewayDeviceService { @Resource private GatewayDeviceRep gatewayDeviceRep; @Resource private RedisUtil redisUtil; /** * gatewayDeviceService#listAll * * @return */ @DataProvider public List listAll() { List list = gatewayDeviceRep.findAll(); return list; } /** * gatewayDeviceService#updateSave * * @param entity */ @DataResolver public void updateSave(GatewayDevice entity) { GatewayDevice data = new GatewayDevice(); BeanUtils.copyProperties(entity, data); if (null == data.getId()) { data.setId(ContextUtil.getUUID()); } gatewayDeviceRep.save(data); flushCache(); } /** * gatewayDeviceService#delData * * @param data */ @Expose public String delData(GatewayDevice data) { GatewayDevice data2 = new GatewayDevice(); BeanUtils.copyProperties(data, data2); gatewayDeviceRep.delete(data2); flushCache(); return null; } /** * gatewayDeviceService#flushCache */ @Expose public void flushCache() { List list = listAll(); if (null == list || list.isEmpty()) return; String key; for (GatewayDevice device : list) { key = RedisConst.buildKey(RedisConst.KYE_GATE_DEVICE, device.getDeviceId()); redisUtil.set(key, device); } } /** * 缓存获取设备信息 * * @param deviceId * @return */ public GatewayDevice getCacheDevice(String deviceId) { String key = RedisConst.buildKey(RedisConst.KYE_GATE_DEVICE, deviceId); return (GatewayDevice) redisUtil.get(key); } }