From 1e15debe492781ea2d7cc3557204ebc73cf1fbf0 Mon Sep 17 00:00:00 2001 From: qinjie <463333974@qq.com> Date: Fri, 6 Dec 2024 10:06:04 +0800 Subject: [PATCH] =?UTF-8?q?redis=E9=93=BE=E6=8E=A5=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84=E9=A6=96=E9=A1=B5=E8=BF=94=E5=9B=9E=E5=80=BC=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SummaryServiceImpl.java | 68 +++++++++++-------- 1 file changed, 41 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/isu/gaswellwatch/service/impl/SummaryServiceImpl.java b/src/main/java/com/isu/gaswellwatch/service/impl/SummaryServiceImpl.java index d97fa42..df7a09f 100644 --- a/src/main/java/com/isu/gaswellwatch/service/impl/SummaryServiceImpl.java +++ b/src/main/java/com/isu/gaswellwatch/service/impl/SummaryServiceImpl.java @@ -6,6 +6,8 @@ import com.isu.gaswellwatch.vo.DeviceVO; import com.isu.gaswellwatch.vo.summary.PieDataVO; import com.isu.gaswellwatch.vo.summary.PieSummaryVO; import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.RedisConnectionFailureException; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -19,6 +21,7 @@ import static com.isu.gaswellwatch.modbus.data.PersistenceHandler.*; @Service("summaryService") @Transactional(rollbackFor = Exception.class) +@Slf4j public class SummaryServiceImpl implements SummaryService { @Resource(name = "stringRedisTemplate") @@ -30,7 +33,14 @@ public class SummaryServiceImpl implements SummaryService { @Override public List getIndexPieSummary() { - Map onlineMap = redisTemplate.opsForHash().entries(ONLINE_DEVICE_CACHE); + Map onlineMap = new HashMap<>(); + try{ + onlineMap = redisTemplate.opsForHash().entries(ONLINE_DEVICE_CACHE); + }catch (RedisConnectionFailureException e){ + log.error("获取在线设备缓存失败",e); + return getPieSummaryVOS(); + } + //TODO 记得改回从缓存里取值 // Map onlineMap = new HashMap<>(); // onlineMap.put("1","true"); @@ -38,32 +48,7 @@ public class SummaryServiceImpl implements SummaryService { // onlineMap.put("3","true"); // onlineMap.put("4","true"); if(onlineMap.isEmpty()){ - List result = new ArrayList<>(); - PieSummaryVO pieSummaryVO = new PieSummaryVO(); - pieSummaryVO.setChartName("total"); - pieSummaryVO.setTitle("设备总数"); - pieSummaryVO.setData(List.of()); - result.add(pieSummaryVO); - - PieSummaryVO pieSummaryVO1 = new PieSummaryVO(); - pieSummaryVO1.setChartName(KNPCV1_MODBUS_TYPE); - pieSummaryVO1.setTitle("KNPCV1"); - pieSummaryVO1.setData(List.of()); - result.add(pieSummaryVO1); - - PieSummaryVO pieSummaryVO2 = new PieSummaryVO(); - pieSummaryVO2.setChartName(ETC_MODBUS_TYPE); - pieSummaryVO2.setTitle("ETC"); - pieSummaryVO2.setData(List.of()); - result.add(pieSummaryVO2); - - PieSummaryVO pieSummaryVO3 = new PieSummaryVO(); - pieSummaryVO3.setChartName(SCSS_MODBUS_TYPE); - pieSummaryVO3.setTitle("四川双晟"); - pieSummaryVO3.setData(List.of()); - result.add(pieSummaryVO3); - - return result; + return getPieSummaryVOS(); } List deviceIdList = onlineMap.keySet().stream().map(Long::parseLong).toList(); @@ -110,6 +95,35 @@ public class SummaryServiceImpl implements SummaryService { return pieSummaryVOList; } + private static List getPieSummaryVOS() { + List result = new ArrayList<>(); + PieSummaryVO pieSummaryVO = new PieSummaryVO(); + pieSummaryVO.setChartName("total"); + pieSummaryVO.setTitle("设备总数"); + pieSummaryVO.setData(List.of()); + result.add(pieSummaryVO); + + PieSummaryVO pieSummaryVO1 = new PieSummaryVO(); + pieSummaryVO1.setChartName(KNPCV1_MODBUS_TYPE); + pieSummaryVO1.setTitle("KNPCV1"); + pieSummaryVO1.setData(List.of()); + result.add(pieSummaryVO1); + + PieSummaryVO pieSummaryVO2 = new PieSummaryVO(); + pieSummaryVO2.setChartName(ETC_MODBUS_TYPE); + pieSummaryVO2.setTitle("ETC"); + pieSummaryVO2.setData(List.of()); + result.add(pieSummaryVO2); + + PieSummaryVO pieSummaryVO3 = new PieSummaryVO(); + pieSummaryVO3.setChartName(SCSS_MODBUS_TYPE); + pieSummaryVO3.setTitle("四川双晟"); + pieSummaryVO3.setData(List.of()); + result.add(pieSummaryVO3); + + return result; + } + private static void addKNPCDeviceSummary(String productName, Map> deviceGroup, Map onlineMap, List pieSummaryVOList, String title) { List knpcDeviceList = deviceGroup.get(productName); PieSummaryVO pieSummaryVO = new PieSummaryVO();