package com.sandu.ximon.admin.controller; import com.sandu.common.domain.ResponseVO; import com.sandu.common.execption.BusinessException; import com.sandu.common.util.ResponseUtil; 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.admin.dto.YSY_MonitorDto; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 摄像头 */ @RestController @AllArgsConstructor @RequestMapping("/v1/admin/monitor") public class MonitorController { private final MonitorService monitorService; @GetMapping public ResponseVO listMonitor() { List list = monitorService.listMonitor(); return ResponseUtil.successPage(list); } /** * 模糊查询 * * @return */ @GetMapping("/listMonitorByKeyword") public ResponseVO listMonitorByKeyword(@RequestBody MonitorParam monitorParam) { List list = monitorService.listMonitorByKeyword(monitorParam); return ResponseUtil.successPage(list); } /** * 删除数据库中萤石云摄像头 * * @param id * @return */ @PostMapping("/delete/{id}") public ResponseVO deleteMonitor(@PathVariable Long id) { boolean result = monitorService.deleteMonitor(id); if (result) { return ResponseUtil.success(null); } else { return ResponseUtil.fail("操作失败"); } } /** * 获取萤石云AccessToken * * @return AccessToken */ @GetMapping("/getAccessToken") public ResponseVO getAccessToken() { return ResponseUtil.success(monitorService.getAccessToken()); } /** * 添加萤石云摄像头 * * @param monitorParam 添加摄像头结果 * @return */ @GetMapping("/addYSYMonitor") public ResponseVO 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())) { //已经被自己添加的摄像头需要添加到数据库 boolean falg = getYSYMonitorInfoAndaddMonitorToTable(monitorParam); if (falg) { return ResponseUtil.success("添加摄像头成功!"); } else { return ResponseUtil.fail("添加摄像头失败!"); } } else { return ResponseUtil.fail(addMonitorDto.getMsg()); } } /** * 删除萤石云摄像头 * * @param monitorParam 添加摄像头结果 * @return */ @GetMapping("/deleteYSYMonitor") public ResponseVO 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 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 boolean 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()); return monitorService.addMonitorInfoToTable(monitor); } else { throw new BusinessException(getMonitorDto.getMsg()); } } /** * 编辑摄像头设备信息 */ @PostMapping("/UpDateMonitorInfo") public ResponseVO 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("更新数据失败"); } } /** * 编辑摄像头设备信息 */ @GetMapping("/getMonitorVideoUrl") public ResponseVO getMonitorVideoUrl(@RequestBody MonitorParam monitorParam) { String URL = monitorService.getMonitorVideoUrl(monitorParam.getAccessToken(), monitorParam.getDeviceSerial(), monitorParam.getProtocol()); return ResponseUtil.success(URL); } }