ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TDevice.java
@@ -67,11 +67,4 @@ @TableField("online_status") private Integer onlineStatus; @ApiModelProperty(value = "下发状态(0=未下发,1=已下发,2=下发失败)") @TableField("issue_status") private Integer issueStatus; @ApiModelProperty(value = "下发结果") @TableField("issue_msg") private String issueMsg; } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TDeviceController.java
@@ -1,6 +1,5 @@ package com.ruoyi.other.controller; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; @@ -10,7 +9,6 @@ import com.ruoyi.other.api.domain.TDevice; import com.ruoyi.other.query.DevicePageList; import com.ruoyi.other.service.TDeviceService; import com.ruoyi.other.util.EzvizOpenApiUtils; import io.swagger.annotations.ApiOperation; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; @@ -29,9 +27,6 @@ @Resource private TDeviceService deviceService; @Resource private EzvizOpenApiUtils ezvizOpenApiUtils; @RequiresPermissions(value = {"/deviceManagement/list"}, logical = Logical.OR) @ResponseBody @@ -54,9 +49,6 @@ } if (device.getOnlineStatus() == null) { device.setOnlineStatus(1); } if (device.getIssueStatus() == null) { device.setIssueStatus(0); } deviceService.save(device); return AjaxResult.success(); @@ -87,40 +79,6 @@ return AjaxResult.success(); } @RequiresPermissions(value = {"/deviceManagement/issue"}, logical = Logical.OR) @ResponseBody @PostMapping("/issueDevice/{id}") @ApiOperation(value = "下发设备到萤石平台", tags = {"管理后台-设备管理"}) @Log(title = "【设备管理】下发设备到萤石平台", businessType = BusinessType.UPDATE) public AjaxResult issueDevice(@PathVariable Integer id) { TDevice device = deviceService.getById(id); if (device == null) { return AjaxResult.error("设备不存在"); } if (Integer.valueOf(1).equals(device.getIssueStatus())) { return AjaxResult.success("设备已下发"); } JSONObject ezvizResult; try { ezvizResult = ezvizOpenApiUtils.addDevice(device.getDeviceSerial(), device.getValidateCode()); } catch (Exception e) { device.setIssueStatus(2); device.setIssueMsg("萤石设备下发失败:" + e.getMessage()); deviceService.updateById(device); return AjaxResult.error(device.getIssueMsg()); } if (!isEzvizSuccess(ezvizResult)) { device.setIssueStatus(2); device.setIssueMsg(ezvizErrorMessage("萤石设备下发失败", ezvizResult)); deviceService.updateById(device); return AjaxResult.error(device.getIssueMsg()); } device.setIssueStatus(1); device.setIssueMsg("下发成功"); deviceService.updateById(device); return AjaxResult.success(); } @RequiresPermissions(value = {"/deviceManagement/del"}, logical = Logical.OR) @ResponseBody @DeleteMapping("/delDevice") @@ -129,19 +87,6 @@ public AjaxResult<TDevice> delDevice(Integer[] id) { if (id == null || id.length == 0) { return AjaxResult.error("请选择要删除的设备"); } for (TDevice device : deviceService.listByIds(Arrays.asList(id))) { if (Integer.valueOf(1).equals(device.getIssueStatus())) { JSONObject ezvizResult; try { ezvizResult = ezvizOpenApiUtils.deleteDevice(device.getDeviceSerial()); } catch (Exception e) { return AjaxResult.error("萤石设备删除失败:" + e.getMessage()); } if (!isEzvizSuccess(ezvizResult)) { return AjaxResult.error(ezvizErrorMessage("萤石设备删除失败", ezvizResult)); } } } deviceService.removeByIds(Arrays.asList(id)); return AjaxResult.success(); @@ -170,17 +115,5 @@ return AjaxResult.error("设备序列号已存在"); } return null; } private boolean isEzvizSuccess(JSONObject result) { return result != null && "200".equals(result.getString("code")); } private String ezvizErrorMessage(String defaultMessage, JSONObject result) { if (result == null) { return defaultMessage; } String message = result.getString("msg"); return StringUtils.hasText(message) ? message : defaultMessage; } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java
@@ -41,7 +41,6 @@ @ApiOperation(value = "获取视频监控列表", tags = {"管理后台-视频监控"}) public AjaxResult<PageInfo<VideoMonitorDeviceVO>> pageList(VideoMonitorPageQuery query) { Page<TDevice> page = deviceService.lambdaQuery() .eq(TDevice::getIssueStatus, 1) .like(StringUtils.hasText(query.getDeviceName()), TDevice::getDeviceName, query.getDeviceName()) .eq(query.getPartnerType() != null, TDevice::getPartnerType, query.getPartnerType()) .eq(query.getPartnerId() != null, TDevice::getPartnerId, query.getPartnerId()) @@ -50,8 +49,12 @@ .page(Page.of(query.getPageCurr(), query.getPageSize())); List<VideoMonitorDeviceVO> records = page.getRecords().stream() .map(this::toMonitorVO) .peek(this::fillOnlineStatus) .map(device -> { VideoMonitorDeviceVO vo = toMonitorVO(device); fillOnlineStatus(vo); fillLiveAddress(vo, device); return vo; }) .filter(item -> query.getOnlineStatus() == null || query.getOnlineStatus().equals(item.getOnlineStatus())) .collect(Collectors.toList()); @@ -65,9 +68,9 @@ @GetMapping("/detail/{id}") @ApiOperation(value = "获取视频监控详情", tags = {"管理后台-视频监控"}) public AjaxResult<VideoMonitorDeviceVO> detail(@PathVariable Integer id) { TDevice device = getIssuedDevice(id); TDevice device = getDevice(id); if (device == null) { return AjaxResult.error("设备不存在或未下发"); return AjaxResult.error("设备不存在"); } VideoMonitorDeviceVO vo = toMonitorVO(device); @@ -80,9 +83,9 @@ @PostMapping("/ptz") @ApiOperation(value = "视频监控云台控制", tags = {"管理后台-视频监控"}) public AjaxResult ptz(@RequestBody VideoMonitorControlRequest request) { TDevice device = getIssuedDevice(request.getId()); TDevice device = getDevice(request.getId()); if (device == null) { return AjaxResult.error("设备不存在或未下发"); return AjaxResult.error("设备不存在"); } JSONObject result = ezvizOpenApiUtils.ptzControl( @@ -98,9 +101,9 @@ @PostMapping("/sceneSwitch") @ApiOperation(value = "视频监控镜头开关", tags = {"管理后台-视频监控"}) public AjaxResult sceneSwitch(@RequestBody VideoMonitorControlRequest request) { TDevice device = getIssuedDevice(request.getId()); TDevice device = getDevice(request.getId()); if (device == null) { return AjaxResult.error("设备不存在或未下发"); return AjaxResult.error("设备不存在"); } JSONObject result = ezvizOpenApiUtils.setSceneSwitch( @@ -115,9 +118,9 @@ @PostMapping("/focus") @ApiOperation(value = "视频监控焦距控制", tags = {"管理后台-视频监控"}) public AjaxResult focus(@RequestBody VideoMonitorControlRequest request) { TDevice device = getIssuedDevice(request.getId()); TDevice device = getDevice(request.getId()); if (device == null) { return AjaxResult.error("设备不存在或未下发"); return AjaxResult.error("设备不存在"); } JSONObject result = ezvizOpenApiUtils.ptzControl( @@ -136,9 +139,9 @@ @PostMapping("/playback") @ApiOperation(value = "获取视频监控回放地址", tags = {"管理后台-视频监控"}) public AjaxResult<VideoMonitorDeviceVO> playback(@RequestBody VideoMonitorControlRequest request) { TDevice device = getIssuedDevice(request.getId()); TDevice device = getDevice(request.getId()); if (device == null) { return AjaxResult.error("设备不存在或未下发"); return AjaxResult.error("设备不存在"); } JSONObject result; @@ -168,12 +171,12 @@ return AjaxResult.success(vo); } private TDevice getIssuedDevice(Integer id) { private TDevice getDevice(Integer id) { if (id == null) { return null; } TDevice device = deviceService.getById(id); if (device == null || !Integer.valueOf(1).equals(device.getIssueStatus())) { if (device == null) { return null; } return device; @@ -218,6 +221,10 @@ ); if (isEzvizSuccess(result)) { vo.setLiveAddress(resolveVideoUrl(result)); if (StringUtils.hasText(vo.getLiveAddress())) { vo.setOnlineStatus(1); vo.setStatusMsg("在线"); } } else { vo.setStatusMsg(ezvizErrorMessage("获取直播地址失败", result)); } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/DevicePageList.java
@@ -38,6 +38,4 @@ @ApiModelProperty(value = "在线状态(0=不在线,1=在线)") private Integer onlineStatus; @ApiModelProperty(value = "下发状态(0=未下发,1=已下发,2=下发失败)") private Integer issueStatus; } ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TDeviceMapper.xml
@@ -14,14 +14,12 @@ <result column="site_id" property="siteId" /> <result column="site_name" property="siteName" /> <result column="online_status" property="onlineStatus" /> <result column="issue_status" property="issueStatus" /> <result column="issue_msg" property="issueMsg" /> <result column="del_flag" property="delFlag" /> <result column="create_time" property="createTime" /> </resultMap> <sql id="Base_Column_List"> id, device_name, device_serial, device_brand, validate_code, partner_type, partner_id, partner_name, site_id, site_name, online_status, issue_status, issue_msg, del_flag, create_time id, device_name, device_serial, device_brand, validate_code, partner_type, partner_id, partner_name, site_id, site_name, online_status, del_flag, create_time </sql> <select id="pageList" resultMap="BaseResultMap"> @@ -52,9 +50,6 @@ </if> <if test="null != req.onlineStatus"> and online_status = #{req.onlineStatus} </if> <if test="null != req.issueStatus"> and issue_status = #{req.issueStatus} </if> order by create_time desc, id desc </select>