From e55c8b0a92eb9715edd90c31dfd4de51a47b588b Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 04 十一月 2022 17:40:08 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java | 178 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 99 insertions(+), 79 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
index 8af864d..4188b54 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -12,10 +12,13 @@
import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
import com.sandu.ximon.admin.dto.YSY_MonitorDto;
import com.sandu.ximon.admin.param.MonitorParam;
+import com.sandu.ximon.admin.redis.DeviceRedisKey;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.ListPagingUtils;
+import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
+import com.sandu.ximon.admin.vo.RedisDeviceStatus;
import com.sandu.ximon.dao.bo.MonitorBo;
import com.sandu.ximon.dao.domain.Monitor;
import com.sandu.ximon.dao.domain.PoleBinding;
@@ -23,6 +26,7 @@
import com.sandu.ximon.dao.enums.PoleBindingEnums;
import com.sandu.ximon.dao.mapper.MonitorMapper;
import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -33,6 +37,7 @@
@Service
@AllArgsConstructor
+@Slf4j
public class MonitorService extends BaseServiceImpl<MonitorMapper, Monitor> {
private final MonitorMapper monitorMapper;
//钀ょ煶浜慉ppKey
@@ -56,10 +61,12 @@
private final PoleBindingService poleBindingService;
+ private final RedisUtils redisUtils;
+
/**
- * 妯$硦鏌ヨ
+ * 鎽勫儚澶村垪琛ㄦā绯婃煡璇�
*/
- public CommonPage listMonitorByKeyword(BaseConditionVO baseConditionVO,Integer order,Integer seq, MonitorParam monitorParam) {
+ public CommonPage listMonitorByKeyword(BaseConditionVO baseConditionVO, Integer order, Integer seq, MonitorParam monitorParam) {
//缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
if (monitorParam.getBindingState() == null) {
//鍏ㄩ儴
@@ -68,7 +75,7 @@
//鎺掑簭瀛楁
String orderByResult = "id";
//姝e簭銆佸�掑彊
- String orderBySeq =OrderByEnums.ASC.getCode();
+ String orderBySeq = OrderByEnums.ASC.getCode();
if (order != null) {
switch (order) {
case 1:
@@ -97,9 +104,9 @@
List<MonitorBo> list;
if (SecurityUtils.getClientId() == null) {
- list = monitorMapper.listMonitorDeviceSerial1(null, monitorParam.getKeyword(), monitorParam.getBindingState(),orderBy);
+ list = monitorMapper.listMonitorDeviceSerial1(null, monitorParam.getKeyword(), monitorParam.getBindingState(), orderBy);
} else {
- list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), monitorParam.getKeyword(), monitorParam.getBindingState(),orderBy);
+ list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), monitorParam.getKeyword(), monitorParam.getBindingState(), orderBy);
}
//娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
@@ -143,68 +150,65 @@
return commonPage;
}
- public Monitor getYSYMonitorInfoAndaddMonitorToTable(String deviceSerial) {
- YSY_MonitorDto getMonitorDto = getYSYMonitorInfo(getAccessToken(), deviceSerial);
+ /**
+ * 鎽勫儚澶村垪琛ㄥ湴锛堢敤浜庨椤垫暟鎹粺璁★級
+ *
+ * @return
+ */
+ public List<MonitorBo> listMonitorOnHome() {
- if ("200".equals(getMonitorDto.getCode())) {
- Monitor monitor = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
- if (monitor != null) {
- monitor.setDeviceSerial(getMonitorDto.getData().getDeviceSerial());
-
- monitor.setDeviceName(getMonitorDto.getData().getDeviceName());
- monitor.setDeviceType(getMonitorDto.getData().getModel());
- monitor.setEquipmentState(getMonitorDto.getData().getStatus());
- monitor.setIsEncrypt(getMonitorDto.getData().getIsEncrypt());
- monitor.setAddTime(getMonitorDto.getData().getUpdateTime());
- monitor.setNetAddress(getMonitorDto.getData().getNetAddress());
- //鏇存柊鎽勫儚澶寸姸鎬�
- updateById(monitor);
- } else {
- monitor = new Monitor();
- monitor.setDeviceSerial(getMonitorDto.getData().getDeviceSerial());
- monitor.setDeviceName(getMonitorDto.getData().getDeviceName());
- monitor.setDeviceType(getMonitorDto.getData().getModel());
- monitor.setEquipmentState(getMonitorDto.getData().getStatus());
- monitor.setIsEncrypt(getMonitorDto.getData().getIsEncrypt());
- monitor.setAddTime(getMonitorDto.getData().getUpdateTime());
- monitor.setNetAddress(getMonitorDto.getData().getNetAddress());
- //鏇存柊鎽勫儚澶寸姸鎬�
- save(monitor);
- }
-
- return monitor;
+ List<MonitorBo> list;
+ if (SecurityUtils.getClientId() == null) {
+ list = monitorMapper.listMonitorDeviceSerial1(null, null, 2, null);
} else {
- return null;
+ list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), null, 2, null);
}
+
+ //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
+ if (list == null) {
+ return new ArrayList<>();
+ }
+
+ return list;
}
/**
* 鍒犻櫎鎽勫儚澶�
*
- * @param Id
+ * @param
* @return
*/
- public boolean deleteMonitor(Long Id) {
- Monitor monitor = getById(Id);
- if (monitor == null) {
- throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+ public boolean deleteMonitor(List<Long> ids) {
+ List<Long> idList = new ArrayList<Long>();
+ List<Monitor> monitors = listByIds(ids);
+ if (!monitors.isEmpty()) {
+ monitors.forEach(
+ monitor -> {
+ if (monitor == null) {
+ throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+ }
+ PoleBinding one = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, monitor.getDeviceSerial()));
+ if (one != null) {
+ //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
+ poleBindingService.unBindPole(null, monitor.getDeviceSerial());
+ }
+ /**
+ * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曞紑濮�
+ */
+ String content = "{鎽勫儚澶碈ode锛�" + monitor.getDeviceSerial() + "锛� 鎽勫儚澶村悕绉帮細" + monitor.getDeviceName() + " }";
+ List<String> listCode = new ArrayList<>();
+ listCode.add(monitor.getDeviceSerial());
+ StoreOperationRecordsUtils.storeOperationData(listCode, null, "鍒犻櫎鎽勫儚澶�", content);
+ /**
+ * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曠粨鏉�
+ */
+ idList.add(monitor.getId());
+ }
+ );
}
- PoleBinding one = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, monitor.getDeviceSerial()));
- if (one != null) {
- //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
- poleBindingService.unBindPole(null, monitor.getDeviceSerial());
- }
- /**
- * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曞紑濮�
- */
- String content = "{鎽勫儚澶碈ode锛�" + monitor.getDeviceSerial() + "锛� 鎽勫儚澶村悕绉帮細" + monitor.getDeviceName() + " }";
- List<String> listCode = new ArrayList<>();
- listCode.add(monitor.getDeviceSerial());
- StoreOperationRecordsUtils.storeOperationData(listCode, null, "鍒犻櫎鎽勫儚澶�", content);
- /**
- * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曠粨鏉�
- */
- return removeById(Id);
+ //鍏ㄩ儴鍒犻櫎鎴愬姛
+ return removeByIds(idList);
+
}
/**
@@ -216,7 +220,17 @@
paramMap.put("appKey", AppKey);
paramMap.put("appSecret", Secret);
String s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
+ if (!s.startsWith("{") || !s.endsWith("}")) {
+ log.error("鑾峰彇鎽勫儚澶磘oken澶辫触,鏍煎紡鏈夎!");
+ }
YSY_AccessTokenDto accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
+
+ //浜屾鑾峰彇
+ if (accessTokenDto == null) {
+ log.error("鑾峰彇鎽勫儚澶磘oken澶辫触,鏍煎紡鏈夎!");
+ s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
+ accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
+ }
return accessTokenDto.getData().getAccessToken();
}
@@ -387,29 +401,6 @@
}
/**
- * 灏嗘憚鍍忓ご璁惧鐩稿叧淇℃伅鏇存柊鍒版暟鎹簱
- *
- * @param monitor 鎽勫儚澶村璞�
- * @return
- */
- public boolean upDateMonitorInfo(Monitor monitor) {
- if (monitor.getId() == null) {
- throw new BusinessException("缂哄皯鎽勫儚澶寸浉鍏矷D鍙傛暟");
- }
-
- Monitor info = getById(monitor.getId());
-
- if (info == null) {
- throw new BusinessException("鎵句笉鍒扮浉鍏虫憚鍍忓ご");
- }
- if (!monitor.getDevicesCode().equals(info.getDevicesCode()) || !monitor.getDeviceSerial().equals(info.getDeviceSerial())) {
- throw new BusinessException("鐩戞帶搴忓垪鍙锋垨鐩戞帶楠岃瘉鐮佷笉姝g‘");
- }
-
- return updateById(monitor);
- }
-
- /**
* 杩斿洖鎽勫儚澶村疄鏃剁敾闈㈡挱鏀惧湴鍧�
*
* @param accessToken
@@ -496,4 +487,33 @@
}
+ /**
+ * 鍚慠edis涓瓨鍏ヨ澶囩姸鎬�
+ */
+ public void setCacheData() {
+ list().forEach(
+ device -> {
+ RedisDeviceStatus deviceStatus = new RedisDeviceStatus();
+ deviceStatus.setDeviceId(device.getDeviceSerial());
+ if (device != null) {
+ EquipmentInfomation monitorInfo = getMonitorInfo(device.getDeviceSerial());
+ if (monitorInfo != null) {
+ if ("鍦ㄧ嚎".equals(monitorInfo.getEquipmentState())) {
+ deviceStatus.setStatus(0);
+ } else {
+ deviceStatus.setStatus(1);
+ }
+
+ } else {
+ deviceStatus.setStatus(1);
+ }
+ }
+ redisUtils.set(DeviceRedisKey.MONITOR + device.getDeviceSerial(), JSON.toJSONString(deviceStatus));
+// redisUtils.delete(DeviceRedisKey.MONITOR + device.getDeviceSerial());
+ }
+ );
+
+ }
+
+
}
--
Gitblit v1.9.3