648540858
2022-08-19 1a9e49d9ff210e39f6297150db758906a4f02e6f
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java
@@ -13,10 +13,9 @@
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
import com.github.pagehelper.util.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +32,7 @@
/**
 *  位置信息管理
 */
@Api(tags = "位置信息管理")
@Tag(name  = "位置信息管理")
@CrossOrigin
@RestController
@RequestMapping("/api/position")
@@ -60,21 +59,16 @@
     * @param end 结束时间
     * @return
     */
    @ApiOperation("查询历史轨迹")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true, dataTypeClass = String.class),
            @ApiImplicitParam(name = "channelId", value = "通道ID", required = false, dataTypeClass = String.class),
            @ApiImplicitParam(name = "start", value = "开始时间", required = false, dataTypeClass = String.class),
            @ApiImplicitParam(name = "end", value = "结束时间", required = false, dataTypeClass = String.class),
    })
    @Operation(summary = "查询历史轨迹")
    @Parameter(name = "deviceId", description = "设备国标编号", required = true)
    @Parameter(name = "channelId", description = "通道国标编号")
    @Parameter(name = "start", description = "开始时间")
    @Parameter(name = "end", description = "结束时间")
    @GetMapping("/history/{deviceId}")
    public ResponseEntity<WVPResult<List<MobilePosition>>> positions(@PathVariable String deviceId,
                                                                     @RequestParam(required = false) String channelId,
                                                                     @RequestParam(required = false) String start,
                                                                     @RequestParam(required = false) String end) {
//        if (logger.isDebugEnabled()) {
//            logger.debug("查询设备" + deviceId + "的历史轨迹");
//        }
        if (StringUtil.isEmpty(start)) {
            start = null;
@@ -94,15 +88,10 @@
     * @param deviceId 设备ID
     * @return
     */
    @ApiOperation("查询设备最新位置")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true, dataTypeClass = String.class),
    })
    @Operation(summary = "查询设备最新位置")
    @Parameter(name = "deviceId", description = "设备国标编号", required = true)
    @GetMapping("/latest/{deviceId}")
    public ResponseEntity<MobilePosition> latestPosition(@PathVariable String deviceId) {
//        if (logger.isDebugEnabled()) {
//            logger.debug("查询设备" + deviceId + "的最新位置");
//        }
        MobilePosition result = storager.queryLatestPosition(deviceId);
        return new ResponseEntity<>(result, HttpStatus.OK);
    }
@@ -112,10 +101,8 @@
     * @param deviceId 设备ID
     * @return
     */
    @ApiOperation("获取移动位置信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true, dataTypeClass = String.class),
    })
    @Operation(summary = "获取移动位置信息")
    @Parameter(name = "deviceId", description = "设备国标编号", required = true)
    @GetMapping("/realtime/{deviceId}")
    public DeferredResult<ResponseEntity<MobilePosition>> realTimePosition(@PathVariable String deviceId) {
        Device device = storager.queryVideoDevice(deviceId);
@@ -149,12 +136,10 @@
     * @param interval 上报时间间隔
     * @return true = 命令发送成功
     */
    @ApiOperation("订阅位置信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "deviceId", value = "设备ID", required = true, dataTypeClass = String.class),
            @ApiImplicitParam(name = "expires", value = "订阅超时时间", dataTypeClass = String.class),
            @ApiImplicitParam(name = "interval", value = "上报时间间隔", dataTypeClass = String.class),
    })
    @Operation(summary = "订阅位置信息")
    @Parameter(name = "deviceId", description = "设备国标编号", required = true)
    @Parameter(name = "expires", description = "订阅超时时间", required = true)
    @Parameter(name = "interval", description = "上报时间间隔", required = true)
    @GetMapping("/subscribe/{deviceId}")
    public ResponseEntity<String> positionSubscribe(@PathVariable String deviceId,
                                                    @RequestParam String expires,