From f99abcd94998485854ca18f149fecc33c24bf5de Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Fri, 20 Nov 2020 14:10:25 +0800 Subject: [PATCH] 校准值插入redis --- src/main/java/com/moral/service/DeviceService.java | 4 + src/main/java/com/moral/util/RedisUtils.java | 195 ++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/moral/task/DeviceAdjustValueTimingTask.java | 26 ++++++ src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 7 + 4 files changed, 232 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/moral/service/DeviceService.java b/src/main/java/com/moral/service/DeviceService.java index 786bbb1..7c76d7f 100644 --- a/src/main/java/com/moral/service/DeviceService.java +++ b/src/main/java/com/moral/service/DeviceService.java @@ -1,5 +1,7 @@ package com.moral.service; +import com.moral.entity.Device; + import java.util.List; import java.util.Map; @@ -20,4 +22,6 @@ List<Map<String, Object>> macAndOrganizationIdMap(List<String> macs); List<Map<String, Object>> getAllByMacList(List<String> macList); + + Device getDeviceByID(int id); } diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java index 2d97264..e3dfd63 100644 --- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java @@ -3,6 +3,7 @@ import java.util.List; import java.util.Map; +import com.moral.entity.Device; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -61,4 +62,10 @@ public List<Map<String, Object>> getAllByMacList(List<String> macList) { return deviceMapper.getAllByMacList(macList); } + + @Override + public Device getDeviceByID(int id) { + Device result = deviceMapper.selectByPrimaryKey(id); + return result; + } } diff --git a/src/main/java/com/moral/task/DeviceAdjustValueTimingTask.java b/src/main/java/com/moral/task/DeviceAdjustValueTimingTask.java index f8ea0d4..0d47fa1 100644 --- a/src/main/java/com/moral/task/DeviceAdjustValueTimingTask.java +++ b/src/main/java/com/moral/task/DeviceAdjustValueTimingTask.java @@ -1,9 +1,13 @@ package com.moral.task; +import com.alibaba.fastjson.JSON; +import com.moral.entity.Device; import com.moral.service.DeviceAdjustValueService; import com.moral.service.DeviceAdjustValueTimingService; +import com.moral.service.DeviceService; import com.moral.util.AlarmUtils_2; import com.moral.util.LengthOfTimeUtils; +import com.moral.util.RedisUtils; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.log.XxlJobLogger; @@ -27,6 +31,12 @@ @Resource private DeviceAdjustValueService deviceAdjustValueService; + + @Resource + private DeviceService deviceService; + + @Resource + RedisUtils redisUtils; @XxlJob("DeviceAdjustValueTiming") public ReturnT DeviceAdjustValueTiming(String params) { @@ -70,6 +80,22 @@ }else { deviceAdjustValueService.updateValueByDeviceID(device_id,value); } + try { + // ���������redis + //Map<String,String> adjustMap = new HashMap<>(); + if(value!=null&&!value.isEmpty()){ + Map<String, Object> valueMap = JSON.parseObject(value); + System.out.println("valueMap:"+valueMap); + if(!valueMap.isEmpty()){ + Device device = deviceService.getDeviceByID(device_id); + String key = RedisUtils.getAdjustKey(device.getMac()); + redisUtils.set(key,valueMap); + } + } + }catch (Exception e){ + ReturnT returnT = new ReturnT(500, "������redis���������������"); + return returnT; + } ReturnT returnT = new ReturnT(200, "������������������������"); return returnT; } diff --git a/src/main/java/com/moral/util/RedisUtils.java b/src/main/java/com/moral/util/RedisUtils.java new file mode 100644 index 0000000..43122d4 --- /dev/null +++ b/src/main/java/com/moral/util/RedisUtils.java @@ -0,0 +1,195 @@ +package com.moral.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.moral.common.BooleanValueFilter; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +@Component +public class RedisUtils { + private static final String AlarmPrefix = "alarm_"; + public static String getAlarmKey(int organizationId){ + return AlarmPrefix+organizationId; + } + private static final String Adjust = "adjust_"; + public static String getAdjustKey(String mac){ + return Adjust + mac; + } + @Resource + private RedisTemplate redisTemplate; + @Resource + private BooleanValueFilter javaTypePatchValueFilter; + /** + * ���������������������value + * + * @param keys + */ + public void remove(final String... keys) { + for (String key : keys) { + remove(key); + } + } + + /** + * ������������key + * + * @param pattern + */ + public void removePattern(final String pattern) { + Set<Serializable> keys = redisTemplate.keys(pattern); + if (keys.size() > 0) + redisTemplate.delete(keys); + } + + /** + * ���������������value + * + * @param key + */ + public void remove(final String key) { + if (exists(key)) { + redisTemplate.delete(key); + } + } + + /** + * ���������������������������������value + * + * @param key + * @return + */ + public boolean exists(final String key) { + return redisTemplate.hasKey(key); + } + + /** + * ������������ + * + * @param key + * @return + */ + public Object get(final String key) { + Object result = null; + ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue(); + result = operations.get(key); + return result; + } + /** + * ������������,������������������ + * + * @param key + * @return + */ + public <T>T get(String key,Class<T> clazz) { + Object obj = get(key); + String json = obj!=null?obj.toString():null; + if(json!=null) { + return (T) parseObject(json,clazz); + } + return null; + } + /** + * ������������,������������������ + * + * @param key + * @return + */ + public <T>T get(String key,TypeReference typeReference) { + Object obj = get(key); + String json = obj!=null?obj.toString():null; + if(json!=null) { + return (T) parseObject(json,typeReference); + } + return null; + } + private static <T>T parseObject(String key,Class<T> clazz) { + return (T) JSON.parseObject(key,clazz); + } + private static <T>T parseObject(String key,TypeReference typeReference) { + return (T) JSON.parseObject(key,typeReference); + } + public <T> List<T> getList(String pattern,TypeReference typeReference){ + List<String> jsonList = getList(pattern); + List<T> list = new ArrayList<T>(); + for(String json:jsonList) { + list.add((T)parseObject(json,typeReference)); + } + return list; + } + public <T> List<T> getList(String pattern,Class<T> clazz){ + List<String> jsonList = getList(pattern); + List<T> list = new ArrayList<>(); + for(String json:jsonList) { + list.add(parseObject(json,clazz)); + } + return list; + } + public List<String> getList(String pattern){ + Set<String> keys = keys(pattern); + List<String> list = new ArrayList<String>(); + for(String key:keys) { + Object obj = get(key); + String json = obj!=null?obj.toString():null; + if(json!=null) { + list.add(json); + } + } + return list; + } + public Set<String> keys(String pattern) { + return redisTemplate.keys(pattern); + } + /** + * ������������ + * + * @param key + * @param value + * @return + */ + public boolean set(final String key, Object value) { + boolean result = false; + try { + if(value!=null&&!(value instanceof String)) { + value = JSON.toJSONString(value,new BooleanValueFilter()); + } + ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue(); + operations.set(key, value); + result = true; + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * ������������ + * + * @param key + * @param value + * @return + */ + public boolean set(final String key, Object value, Long expireTime) { + boolean result = false; + try { + if(value!=null&&!(value instanceof String)) { + value = JSON.toJSONString(value, javaTypePatchValueFilter); + } + ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue(); + operations.set(key, value); + redisTemplate.expire(key, expireTime, TimeUnit.SECONDS); + result = true; + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } +} -- Gitblit v1.8.0