648540858
2020-11-13 33b51c40ddd9750a19b2c6a6618fb22386f87cd7
src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
@@ -9,12 +9,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.async.DeferredResult;
import com.alibaba.fastjson.JSONObject;
@@ -71,13 +66,18 @@
    * @param count 每页条数
    * @return 通道列表
    */
   @GetMapping("devices/{deviceId}/channels")
   public ResponseEntity<PageResult> channels(@PathVariable String deviceId, int page, int count){
   @GetMapping("/devices/{deviceId}/channels")
   public ResponseEntity<PageResult> channels(@PathVariable String deviceId,
                                    int page, int count,
                                    @RequestParam(required = false) String query,
                                    @RequestParam(required = false) String online,
                                    @RequestParam(required = false) Boolean channelType
   ){
      if (logger.isDebugEnabled()) {
         logger.debug("查询所有视频设备API调用");
      }
      PageResult pageResult = storager.queryChannelsByDeviceId(deviceId, page, count);
      PageResult pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, page, count);
      return new ResponseEntity<>(pageResult,HttpStatus.OK);
   }
   
@@ -85,9 +85,9 @@
   public DeferredResult<ResponseEntity<Device>> devicesSync(@PathVariable String deviceId){
      
      if (logger.isDebugEnabled()) {
         logger.debug("设备信息同步API调用,deviceId:" + deviceId);
      }
         logger.debug("设备信息同步API调用,deviceId:" + deviceId);
      Device device = storager.queryVideoDevice(deviceId);
        cmder.catalogQuery(device);
        DeferredResult<ResponseEntity<Device>> result = new DeferredResult<ResponseEntity<Device>>();
@@ -115,4 +115,48 @@
         return new ResponseEntity<String>("设备预览API调用失败!", HttpStatus.INTERNAL_SERVER_ERROR);
      }
   }
   /**
    * 分页查询通道数
    * @param channelId 通道id
    * @param page 当前页
    * @param count 每页条数
    * @return 子通道列表
    */
   @GetMapping("/subChannels/{deviceId}/{channelId}/channels")
   public ResponseEntity<PageResult> subChannels(@PathVariable String deviceId,
                                      @PathVariable String channelId,
                                      int page,
                                      int count,
                                      @RequestParam(required = false) String query,
                                      @RequestParam(required = false) String online,
                                      @RequestParam(required = false) Boolean channelType){
      if (logger.isDebugEnabled()) {
         logger.debug("查询所有视频设备API调用");
      }
      DeviceChannel deviceChannel = storager.queryChannel(deviceId,channelId);
      if (deviceChannel == null) {
         PageResult<DeviceChannel> deviceChannelPageResult = new PageResult<>();
         return new ResponseEntity<>(deviceChannelPageResult,HttpStatus.OK);
      }
      PageResult pageResult = storager.querySubChannels(deviceId, channelId, query, channelType, online, page, count);
      return new ResponseEntity<>(pageResult,HttpStatus.OK);
   }
   @PostMapping("/channel/update/{deviceId}")
   public ResponseEntity<PageResult> updateChannel(@PathVariable String deviceId,DeviceChannel channel){
      storager.updateChannel(deviceId, channel);
      return new ResponseEntity<>(null,HttpStatus.OK);
   }
   @GetMapping("/devices/{deviceId}/transport/{streamMode}")
   @PostMapping("/devices/{deviceId}/transport/{streamMode}")
   public ResponseEntity<PageResult> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){
      Device device = storager.queryVideoDevice(deviceId);
      device.setStreamMode(streamMode);
      storager.updateDevice(device);
      return new ResponseEntity<>(null,HttpStatus.OK);
   }
}