From 83326b4b2a8a10d11ae18dcedd2e6904dd69d2b2 Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期五, 11 二月 2022 12:32:11 +0800
Subject: [PATCH] 功能完善
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java | 257 ++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 214 insertions(+), 43 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 0f19ea5..7e9cbd8 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
@@ -1,62 +1,116 @@
package com.sandu.ximon.admin.service;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.PageHelper;
import com.sandu.common.execption.BusinessException;
+import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
-import com.sandu.ximon.admin.param.BannerParam;
import com.sandu.ximon.admin.param.MonitorParam;
-import com.sandu.ximon.dao.domain.Banner;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.dao.bo.AirEquipmentBo;
+import com.sandu.ximon.dao.bo.MonitorBo;
import com.sandu.ximon.dao.domain.Monitor;
+import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
+import com.sandu.ximon.admin.dto.YSY_MonitorDto;
import com.sandu.ximon.dao.mapper.MonitorMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
@Service
@AllArgsConstructor
public class MonitorService extends BaseServiceImpl<MonitorMapper, Monitor> {
private final MonitorMapper monitorMapper;
+ //钀ょ煶浜慉ppKey
+ private static final String AppKey = "51a534ebadf54c31a0848dc575dfa206";
+ //钀ょ煶浜� AppKey Secret
+ private static final String Secret = "8c32c67a73c87b9e461b2e3bdf58967a";
- /**
- * 鏌ヨ鍏ㄩ儴鎽勫儚澶�
- */
- public List<Monitor> listMonitor() {
- LambdaQueryWrapper<Monitor> wrapper = Wrappers.lambdaQuery(Monitor.class);
- List<Monitor> list = list(wrapper);
+ //钀ょ煶浜戝湴鍧�
+ private static final String YSY_URL = "https://open.ys7.com/api/lapp";
+ //鑾峰彇钀ょ煶浜慳ccessToken鍦板潃
+ private static final String ACCESSTOKEN_URL = "/token/get";
+ //娣诲姞钀ょ煶浜戞憚鍍忓ご
+ private static final String ADD_DEVICE_URL = "/device/add";
+ //鍒犻櫎钀ょ煶浜戞憚鍍忓ご
+ private static final String DELETE_DEVICE_URL = "/device/delete";
+ //鑾峰彇钀ょ煶浜戝崟涓澶囦俊鎭�
+ private static final String GET_DEVICE_URL = "/device/info";
+ //鑾峰彇钀ょ煶浜戞憚鍍忓ご鎾斁鍦板潃URL
+ private static final String GET_VEDIO_URL = "/v2/live/address/get";
- return list;
- }
+
+ private final PoleBindingService poleBindingService;
/**
* 妯$硦鏌ヨ
*/
- public List<Monitor> listMonitorByKeyword(MonitorParam monitorParam) {
- //璁惧鐘舵��:鍦ㄧ嚎/绂荤嚎/鍏ㄩ儴
- String equipmentState1;
- String equipmentState2;
- if ("鍏ㄩ儴".equals(monitorParam.getEquipmentState())) {
- equipmentState1 = "鍦ㄧ嚎";
- equipmentState2 = "绂荤嚎";
- } else {
- equipmentState1 = monitorParam.getEquipmentState();
- equipmentState2 = monitorParam.getEquipmentState();
- }
-
+ public List<MonitorBo> listMonitorByKeyword(BaseConditionVO baseConditionVO, MonitorParam monitorParam) {
+ Long clientId = SecurityUtils.getClientId();
+ PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+ List<MonitorBo> monitorList;
//缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
- String bindingState1;
- String bindingState2;
- if ("鍏ㄩ儴".equals(monitorParam.getBindingState())) {
- bindingState1 = "宸茬粦瀹�";
- bindingState2 = "鏈粦瀹�";
+ if (monitorParam.getBindingState() == null || 2 == monitorParam.getBindingState()) {
+ //鍏ㄩ儴
+ int bindingState = 2;
+ monitorList = monitorMapper.listMonitorByIds(monitorParam.getKeyword(), clientId, bindingState);
} else {
- bindingState1 = monitorParam.getBindingState();
- bindingState2 = monitorParam.getBindingState();
+ monitorList = monitorMapper.listMonitorByIds(monitorParam.getKeyword(), clientId, monitorParam.getBindingState());
}
- return monitorMapper.listMonitorByKeyword(monitorParam.getKeyword(), equipmentState1, equipmentState2, bindingState1, bindingState2);
+ return monitorList;
}
+
+
+// /**
+// * 鏌ヨ鍏ㄩ儴鎽勫儚澶�
+// */
+// public List<Monitor> listMonitor() {
+// LambdaQueryWrapper<Monitor> wrapper = Wrappers.lambdaQuery(Monitor.class);
+// List<Monitor> list = list(wrapper);
+//
+// return list;
+// }
+//
+// /**
+// * 妯$硦鏌ヨ
+// */
+// public List<Monitor> listMonitorByKeyword(MonitorParam monitorParam) {
+// //璁惧鐘舵��:鍦ㄧ嚎/绂荤嚎/鍏ㄩ儴
+// int equipmentState1;
+// int equipmentState2;
+// if (2 == monitorParam.getEquipmentState()) {
+// //鍦ㄧ嚎
+// equipmentState1 = 1;
+// //绂荤嚎
+// equipmentState2 = 0;
+// } else {
+// equipmentState1 = monitorParam.getEquipmentState();
+// equipmentState2 = monitorParam.getEquipmentState();
+// }
+//
+// //缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
+// int bindingState1;
+// int bindingState2;
+// if (2 == monitorParam.getBindingState()) {
+// //宸茬粦瀹�
+// bindingState1 = 1;
+// //鏈粦瀹�
+// bindingState2 = 0;
+// } else {
+// bindingState1 = monitorParam.getBindingState();
+// bindingState2 = monitorParam.getBindingState();
+// }
+//// return monitorMapper.listMonitorByKeyword(monitorParam.getKeyword(), equipmentState1, equipmentState2, bindingState1, bindingState2);
+// return monitorMapper.listMonitorByKeyword1(baseConditionVO, monitorParam.getKeyword(), bindingState1, bindingState2);
+// }
/**
* 鍒犻櫎鎽勫儚澶�
@@ -69,26 +123,143 @@
if (monitor == null) {
throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
}
+
+ //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
+ poleBindingService.unBindPole(monitor.getDeviceSerial());
return removeById(Id);
}
/**
- * 缂栬緫鎽勫儚澶�
- * @param Id
- * @param monitorParam
+ * 鑾峰彇钀ょ煶浜慳ccessToken
+ */
+
+ public String getAccessToken() {
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put("appKey", AppKey);
+ paramMap.put("appSecret", Secret);
+ String s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
+ YSY_AccessTokenDto accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
+ return accessTokenDto.getData().getAccessToken();
+ }
+
+ /**
+ * 娣诲姞钀ょ煶浜戞憚鍍忓ご
+ *
+ * @param accessToken 鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
+ * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+ * @param validateCode 璁惧楠岃瘉鐮侊紝璁惧鏈鸿韩涓婄殑鍏綅澶у啓瀛楁瘝
+ */
+ public YSY_MonitorDto addYSYMonitor(String accessToken, String deviceSerial, String validateCode) {
+
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put("accessToken", accessToken);
+ paramMap.put("deviceSerial", deviceSerial);
+ paramMap.put("validateCode", validateCode);
+ String s = HttpUtil.post(YSY_URL + ADD_DEVICE_URL, paramMap);
+ System.out.println(s);
+ YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+ return monitorDto;
+ }
+
+
+ /**
+ * 鍒犻櫎钀ょ煶浜戞憚鍍忓ご
+ *
+ * @param accessToken 鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
+ * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+ */
+ public YSY_MonitorDto deleteYSYMonitor(String accessToken, String deviceSerial) {
+
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put("accessToken", accessToken);
+ paramMap.put("deviceSerial", deviceSerial);
+ String s = HttpUtil.post(YSY_URL + DELETE_DEVICE_URL, paramMap);
+ System.out.println(s);
+ YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+ return monitorDto;
+ }
+
+ /**
+ * 鑾峰彇钀ょ煶浜戞憚鍍忓ご鍗曚釜璁惧淇℃伅
+ *
+ * @param accessToken 鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
+ * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+ */
+ public YSY_MonitorDto getYSYMonitorInfo(String accessToken, String deviceSerial) {
+
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put("accessToken", accessToken);
+ paramMap.put("deviceSerial", deviceSerial);
+ String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
+ System.out.println(s);
+ YSY_MonitorDto monitor = JSON.parseObject(s, YSY_MonitorDto.class);
+ return monitor;
+ }
+
+ /**
+ * 灏嗘憚鍍忓ご璁惧鐩稿叧淇℃伅瀛樺偍鍒版暟鎹簱
+ *
+ * @param monitor 鎽勫儚澶村璞�
* @return
*/
- public boolean updateBanner(Long Id, MonitorParam monitorParam) {
- Monitor monitor = getById(Id);
- if (monitor == null) {
- throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+ public boolean addMonitorInfoToTable(Monitor monitor) {
+ Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, monitor.getDeviceSerial()));
+ if (one == null) {
+ return save(monitor);
+ } else {
+ monitor.setId(one.getId());
+ return updateById(monitor);
}
- Monitor update = new Monitor();
- update.setId(Id);
- update.setSerialNumber(monitorParam.());
- update.setBannerUrl(bannerParam.getUrl());
- update.setId(bannerId);
- return updateById(update);
}
+ /**
+ * 灏嗘憚鍍忓ご璁惧鐩稿叧淇℃伅鏇存柊鍒版暟鎹簱
+ *
+ * @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
+ * @param deviceSerial
+ * @return
+ */
+ public String getMonitorVideoUrl(String accessToken, String deviceSerial, int protocol, int expireTime) {
+ if (expireTime < 30 || expireTime > 62208000) {
+ throw new BusinessException("璁剧疆鐨刄RL鎾斁鍦板潃杩囨湡鏃堕暱鏁版嵁閿欒");
+ }
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put("accessToken", accessToken);
+ paramMap.put("deviceSerial", deviceSerial);
+ paramMap.put("protocol", protocol);
+ paramMap.put("expireTime", expireTime);
+ String s = HttpUtil.post(YSY_URL + GET_VEDIO_URL, paramMap);
+ System.out.println(s);
+ YSY_MonitorDto monitor = JSON.parseObject(s, YSY_MonitorDto.class);
+ if ("200".equals(monitor.getCode())) {
+ return monitor.getData().getUrl();
+ } else {
+ throw new BusinessException(monitor.getMsg());
+ }
+ }
+
+
}
--
Gitblit v1.9.3