| dao/src/main/java/com/sandu/ximon/dao/domain/Monitor.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/java/com/sandu/ximon/dao/domain/YSY_AccessTokenDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/java/com/sandu/ximon/dao/domain/YSY_MonitorDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dao/src/main/resources/mapper/MonitorMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/param/MonitorParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
dao/src/main/java/com/sandu/ximon/dao/domain/Monitor.java
@@ -1,36 +1,86 @@ package com.sandu.ximon.dao.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.time.LocalDateTime; import lombok.Data; /** * æå头 * @TableName monitor */ @TableName(value ="monitor") @Data public class Monitor implements Serializable { /** * */ @TableId(type = IdType.AUTO) private Long id; //æå±äºº private Long userId; //çæ§åºåå· private String serialNumber; //æå±ç¯æ private String belongTo; //å°å private String address; //设å¤ç¶æ:å¨çº¿:1/离线:0 private int equipmentState; //å·¥ä½ç¶æï¼æ£å¸¸ä½¿ç¨:1/ç¦æ¢ä½¿ç¨:0 private int workState; //ç»å®ç¶æï¼å·²ç»å®:1/æªç»å®:0 private int bindingState; //夿³¨ /** * 设å¤åºåå· */ private String deviceSerial; /** * 设å¤éªè¯ç */ private String devicesCode; /** * 设å¤åç§° */ private String deviceName; /** * 设å¤ç±»å */ private String deviceType; /** * å¨çº¿ç¶æï¼0-ä¸å¨çº¿ï¼1-å¨çº¿ */ private Integer equipmentStatus; /** * æ¯å¦å å¯ï¼0-ä¸å å¯ï¼1-å å¯ */ private Integer isEncrypt; /** * å·¥ä½ç¶æ */ private Integer workState; /** * ç»å®ç¶æ */ private Integer bindingState; /** * 夿³¨ */ private String note; //æ¥å ¥æ¶é´ private LocalDateTime createTime; } /** * */ private LocalDateTime addTime; /** * */ private LocalDateTime updateTime; /** * MACå°å */ private String netAddress; @TableField(exist = false) private static final long serialVersionUID = 1L; } dao/src/main/java/com/sandu/ximon/dao/domain/YSY_AccessTokenDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.sandu.ximon.dao.domain; import lombok.Data; /** * @author ZZQ * @date 2021/12/17 14:32 */ @Data public class YSY_AccessTokenDto { //"{\"msg\":\"æä½æå!\",\"code\":\"200\", // \"data\":{\"accessToken\":\"at.4gl2j50x0x1qv6n60mwhc5kaa6csfend-1hr2lrhf51-1u5h20l-cxqlntrqs\",\"expireTime\":1640327042533}}" private String msg; private String code; private data data; public class data { private String accessToken; public String getAccessToken() { return accessToken; } public void setAccessToken(String accessToken) { this.accessToken = accessToken; } } } dao/src/main/java/com/sandu/ximon/dao/domain/YSY_MonitorDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,169 @@ package com.sandu.ximon.dao.domain; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; /** * @author ZZQ * @date 2021/12/17 15:46 */ @Data public class YSY_MonitorDto { private String code; private String msg; private data data; public class data { // { // "deviceSerial": "F34465099", // "deviceName": "DS-2DE4223IW-DE(F34465099)", // "localName": "DS-2DE4223IW-DE(F34465099)", // "model": "DS-2DE4223IW-DE", // "status": 1, // "defence": 0, // "isEncrypt": 1, // "alarmSoundMode": 0, // "offlineNotify": 0, // "category": "UNKNOWN", // "parentCategory": "COMMON", // "updateTime": 1612337396000, // "netType": null, // "signal": null, // "riskLevel": 0, // "netAddress": "119.132.57.169" // } private String deviceSerial; private String deviceName; private String localName; private String model; private Integer status; private Integer defence; private Integer isEncrypt; private Integer alarmSoundMode; private Integer offlineNotify; private String category; private String parentCategory; private LocalDateTime updateTime; // private Object netType; // private Object signal; private Integer riskLevel; private String netAddress; public String getDeviceSerial() { return deviceSerial; } public void setDeviceSerial(String deviceSerial) { this.deviceSerial = deviceSerial; } public String getDeviceName() { return deviceName; } public void setDeviceName(String deviceName) { this.deviceName = deviceName; } public String getLocalName() { return localName; } public void setLocalName(String localName) { this.localName = localName; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Integer getDefence() { return defence; } public void setDefence(Integer defence) { this.defence = defence; } public Integer getIsEncrypt() { return isEncrypt; } public void setIsEncrypt(Integer isEncrypt) { this.isEncrypt = isEncrypt; } public Integer getAlarmSoundMode() { return alarmSoundMode; } public void setAlarmSoundMode(Integer alarmSoundMode) { this.alarmSoundMode = alarmSoundMode; } public Integer getOfflineNotify() { return offlineNotify; } public void setOfflineNotify(Integer offlineNotify) { this.offlineNotify = offlineNotify; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public String getParentCategory() { return parentCategory; } public void setParentCategory(String parentCategory) { this.parentCategory = parentCategory; } public LocalDateTime getUpdateTime() { return updateTime; } public void setUpdateTime(LocalDateTime updateTime) { this.updateTime = updateTime; } public Integer getRiskLevel() { return riskLevel; } public void setRiskLevel(Integer riskLevel) { this.riskLevel = riskLevel; } public String getNetAddress() { return netAddress; } public void setNetAddress(String netAddress) { this.netAddress = netAddress; } } } dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java
@@ -11,3 +11,7 @@ List<Monitor> listMonitorByKeyword(String keyword, int equipmentState1, int equipmentState2, int bindingState1, int bindingState2); } dao/src/main/resources/mapper/MonitorMapper.xml
@@ -5,16 +5,19 @@ <mapper namespace="com.sandu.ximon.dao.mapper.MonitorMapper"> <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.Monitor"> <id property="id" column="id" jdbcType="BIGINT"/> <result property="userId" column="user_id" jdbcType="VARCHAR"/> <result property="serialNumber" column="serial_number" jdbcType="VARCHAR"/> <result property="belongTo" column="belong_to" jdbcType="VARCHAR"/> <result property="address" column="address" jdbcType="VARCHAR"/> <result property="equipmentState" column="equipment_state" jdbcType="INTEGER"/> <result property="workState" column="work_state" jdbcType="INTEGER"/> <result property="bindingState" column="binding_state" jdbcType="INTEGER"/> <result property="note" column="note" jdbcType="VARCHAR"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <id property="id" column="id" jdbcType="BIGINT"/> <result property="deviceSerial" column="device_serial" jdbcType="VARCHAR"/> <result property="devicesCode" column="devices_code" jdbcType="VARCHAR"/> <result property="deviceName" column="device_name" jdbcType="VARCHAR"/> <result property="deviceType" column="device_type" jdbcType="VARCHAR"/> <result property="equipmentStatus" column="equipment_status" jdbcType="INTEGER"/> <result property="isEncrypt" column="is_encrypt" jdbcType="INTEGER"/> <result property="workState" column="work_state" jdbcType="INTEGER"/> <result property="bindingState" column="binding_state" jdbcType="INTEGER"/> <result property="note" column="note" jdbcType="VARCHAR"/> <result property="addTime" column="add_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> <result property="netAddress" column="net_address" jdbcType="VARCHAR"/> </resultMap> <select id="listMonitorByKeyword" resultType="com.sandu.ximon.dao.domain.Monitor"> SELECT * FROM (SELECT * FROM (SELECT * FROM monitor AS table1 @@ -25,5 +28,4 @@ WHERE binding_state = #{bindingState1} OR binding_state = #{bindingState2}; </select> </mapper> </mapper> ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
@@ -5,6 +5,7 @@ import com.sandu.ximon.admin.param.MonitorParam; import com.sandu.ximon.admin.service.MonitorService; import com.sandu.ximon.dao.domain.Monitor; import com.sandu.ximon.dao.domain.YSY_MonitorDto; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -36,6 +37,13 @@ return ResponseUtil.successPage(list); } /** * å 餿°æ®åºä¸è¤ç³äºæå头 * * @param id * @return */ @PostMapping("/delete/{id}") public ResponseVO<Object> deleteMonitor(@PathVariable Long id) { boolean result = monitorService.deleteMonitor(id); @@ -45,4 +53,127 @@ return ResponseUtil.fail("æä½å¤±è´¥"); } } /** * è·åè¤ç³äºAccessToken * * @return AccessToken */ @GetMapping("/getAccessToken") public ResponseVO<Object> getAccessToken() { return ResponseUtil.success(monitorService.getAccessToken()); } /** * æ·»å è¤ç³äºæå头 * * @param monitorParam æ·»å æåå¤´ç»æ * @return */ @GetMapping("/addYSYMonitor") public ResponseVO<Object> addYSYMonitor(@RequestBody MonitorParam monitorParam) { YSY_MonitorDto addMonitorDto = monitorService.addYSYMonitor(monitorParam.getAccessToken(), monitorParam.getDeviceSerial(), monitorParam.getValidateCode()); if ("200".equals(addMonitorDto.getCode())) { return ResponseUtil.success(addMonitorDto); } else if ("20017".equals(addMonitorDto.getCode())) { //å·²ç»è¢«èªå·±æ·»å çæå头éè¦æ·»å å°æ°æ®åº getYSYMonitorInfoAndaddMonitorToTable(monitorParam); return ResponseUtil.error(20017, addMonitorDto.getMsg()); } else { return ResponseUtil.fail(addMonitorDto.getMsg()); } } /** * å é¤è¤ç³äºæå头 * * @param monitorParam æ·»å æåå¤´ç»æ * @return */ @GetMapping("/deleteYSYMonitor") public ResponseVO<Object> deleteYSYMonitor(@RequestBody MonitorParam monitorParam) { YSY_MonitorDto addMonitorDto = monitorService.deleteYSYMonitor(monitorParam.getAccessToken(), monitorParam.getDeviceSerial()); if ("200".equals(addMonitorDto.getCode())) { return ResponseUtil.success(addMonitorDto); } else { return ResponseUtil.fail(addMonitorDto.getMsg()); } } /** * è·åå个设å¤ä¿¡æ¯ getYSYMonitorInfo */ @GetMapping("/getYSYMonitorInfo") public ResponseVO<Object> getYSYMonitorInfo(@RequestBody MonitorParam monitorParam) { YSY_MonitorDto getMonitorDto = monitorService.getYSYMonitorInfo(monitorParam.getAccessToken(), monitorParam.getDeviceSerial()); if ("200".equals(getMonitorDto.getCode())) { return ResponseUtil.success(getMonitorDto.getData()); } else { return ResponseUtil.fail(getMonitorDto.getMsg()); } } /** * è·åå个设å¤ä¿¡æ¯å¹¶ä¸åå¨å°æ°æ®åº * * @param monitorParam * @return */ @GetMapping("/getYSYMonitorInfoAndaddMonitorToTable") public ResponseVO<Object> getYSYMonitorInfoAndaddMonitorToTable(@RequestBody MonitorParam monitorParam) { YSY_MonitorDto getMonitorDto = monitorService.getYSYMonitorInfo(monitorParam.getAccessToken(), monitorParam.getDeviceSerial()); if ("200".equals(getMonitorDto.getCode())) { Monitor monitor = new Monitor(); monitor.setDeviceSerial(getMonitorDto.getData().getDeviceSerial()); monitor.setDevicesCode(monitorParam.getValidateCode()); monitor.setDeviceName(getMonitorDto.getData().getDeviceName()); monitor.setDeviceType(getMonitorDto.getData().getModel()); monitor.setEquipmentStatus(getMonitorDto.getData().getStatus()); monitor.setIsEncrypt(getMonitorDto.getData().getIsEncrypt()); monitor.setAddTime(getMonitorDto.getData().getUpdateTime()); monitor.setNetAddress(getMonitorDto.getData().getNetAddress()); boolean flag = monitorService.addMonitorInfoToTable(monitor); if (flag) { return ResponseUtil.success("å¨åæå头设å¤ä¿¡æ¯æåï¼"); } else { return ResponseUtil.fail("å¨åæå头设å¤ä¿¡æ¯å¤±è´¥!"); } } else { return ResponseUtil.fail(getMonitorDto.getMsg()); } } /** * ç¼è¾æå头设å¤ä¿¡æ¯ */ /** * è·åå个设å¤ä¿¡æ¯ getYSYMonitorInfo */ @PostMapping("/UpDateMonitorInfo") public ResponseVO<Object> UpDateMonitorInfo(@RequestBody MonitorParam monitorParam) { Monitor monitor = new Monitor(); monitor.setId(monitorParam.getId()); monitor.setDeviceSerial(monitorParam.getDeviceSerial()); monitor.setDevicesCode(monitorParam.getDevicesCode()); monitor.setWorkState(monitorParam.getWorkState()); monitor.setNote(monitorParam.getNote()); boolean falg = monitorService.upDateMonitorInfo(monitorParam); if (falg) { return ResponseUtil.success("æ´æ°æ°æ®æå"); } else { return ResponseUtil.fail("æ´æ°æ°æ®å¤±è´¥"); } } } ximon-admin/src/main/java/com/sandu/ximon/admin/param/MonitorParam.java
@@ -1,15 +1,31 @@ package com.sandu.ximon.admin.param; import com.sandu.ximon.dao.domain.Monitor; import lombok.Data; import javax.validation.constraints.NotEmpty; import java.io.Serializable; @Data public class MonitorParam { public class MonitorParam extends Monitor implements Serializable { private String keyword; @NotEmpty private int equipmentState; private Integer equipmentState; @NotEmpty private int bindingState; private Integer bindingState; /** * + * å¼å§è¤ç³äºæå头ç¸å ³åæ° */ //ææè¿ç¨è·åçaccess_token private String accessToken; //设å¤åºåå·,åå¨è±æåæ¯ç设å¤åºåå·ï¼åæ¯é为大å private String deviceSerial; //设å¤éªè¯ç ï¼è®¾å¤æºèº«ä¸çå ä½å¤§å忝 private String validateCode; /** * ç»æè¤ç³äºæå头ç¸å ³åæ° */ } ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -1,24 +1,43 @@ package com.sandu.ximon.admin.service; 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.sandu.common.execption.BusinessException; 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.dao.domain.Monitor; import com.sandu.ximon.dao.domain.YSY_AccessTokenDto; import com.sandu.ximon.dao.domain.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; //è¤ç³äºAppKey private static final String AppKey = "51a534ebadf54c31a0848dc575dfa206"; //è¤ç³äº AppKey Secret private static final String Secret = "8c32c67a73c87b9e461b2e3bdf58967a"; //è¤ç³äºå°å private static final String YSY_URL = "https://open.ys7.com/api/lapp"; //è·åè¤ç³äºaccessTokenå°å 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"; /** * æ¥è¯¢å ¨é¨æå头 @@ -76,5 +95,110 @@ return removeById(Id); } /** * è·åè¤ç³äºaccessToken */ 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 ææè¿ç¨è·åçaccess_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 ææè¿ç¨è·åçaccess_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 ææè¿ç¨è·åçaccess_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 addMonitorInfoToTable(Monitor monitor) { Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, monitor.getDeviceSerial())); if (one == null) { return save(monitor); } else { return updateById(monitor); } } /** * å°æå头设å¤ç¸å ³ä¿¡æ¯æ´æ°å°æ°æ®åº * * @param monitor æå头对象 * @return */ public boolean upDateMonitorInfo(Monitor monitor) { if (monitor.getId() == null) { throw new BusinessException("ç¼ºå°æå头ç¸å ³IDåæ°"); } 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("çæ§åºåå·æçæ§éªè¯ç 䏿£ç¡®"); } return updateById(monitor); } }