diff --git a/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/docking/DockingController.java b/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/docking/DockingController.java new file mode 100644 index 0000000..f59bc1b --- /dev/null +++ b/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/docking/DockingController.java @@ -0,0 +1,34 @@ +package cn.skcks.docking.gb28181.wvp.api.docking; + +import cn.skcks.docking.gb28181.annotation.web.JsonMapping; +import cn.skcks.docking.gb28181.annotation.web.methods.GetJson; +import cn.skcks.docking.gb28181.common.json.JsonResponse; +import cn.skcks.docking.gb28181.common.page.PageWrapper; +import cn.skcks.docking.gb28181.wvp.api.docking.dto.DockingPageDTO; +import cn.skcks.docking.gb28181.wvp.config.SwaggerConfig; +import cn.skcks.docking.gb28181.wvp.orm.mybatis.dynamic.model.WvpProxyDocking; +import cn.skcks.docking.gb28181.wvp.service.docking.DockingService; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springdoc.core.annotations.ParameterObject; +import org.springdoc.core.models.GroupedOpenApi; +import org.springframework.context.annotation.Bean; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@JsonMapping("/docking") +@RequiredArgsConstructor +public class DockingController { + private final DockingService dockingService; + @Bean + public GroupedOpenApi dockingApi() { + return SwaggerConfig.api("Docking", "/docking"); + } + + @Operation(summary = "分页查询对接的设备/平台列表") + @GetJson("/page") + private JsonResponse> page(@ParameterObject @Validated DockingPageDTO dto){ + return JsonResponse.success(PageWrapper.of(dockingService.getDockingWithPage(dto.getPage(), dto.getSize()))); + } +} diff --git a/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/docking/dto/DockingPageDTO.java b/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/docking/dto/DockingPageDTO.java new file mode 100644 index 0000000..42f2d00 --- /dev/null +++ b/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/docking/dto/DockingPageDTO.java @@ -0,0 +1,19 @@ +package cn.skcks.docking.gb28181.wvp.api.docking.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class DockingPageDTO { + @Schema(description = "页数", example = "1") + @NotNull(message = "page 不能为空") + @Min(value = 1, message = "page 必须为正整数") + Integer page; + + @Schema(description = "每页条数", example = "10") + @NotNull(message = "size 不能为空") + @Min(value = 1, message = "size 必须为正整数") + Integer size; +} diff --git a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/docking/DockingService.java b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/docking/DockingService.java index ea7011f..66a1530 100644 --- a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/docking/DockingService.java +++ b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/docking/DockingService.java @@ -4,6 +4,10 @@ import cn.skcks.docking.gb28181.common.json.JsonException; import cn.skcks.docking.gb28181.wvp.orm.mybatis.dynamic.mapper.WvpProxyDockingDynamicSqlSupport; import cn.skcks.docking.gb28181.wvp.orm.mybatis.dynamic.mapper.WvpProxyDockingMapper; import cn.skcks.docking.gb28181.wvp.orm.mybatis.dynamic.model.WvpProxyDocking; +import com.github.pagehelper.ISelect; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -66,4 +70,30 @@ public class DockingService { return wvpProxyDockingMapper.insert(device) > 0; } + + /** + * 分页查询对接设备/平台 + * @param page 页数 + * @param size 数量 + * @return 分页设备/平台 + */ + public PageInfo getDockingWithPage(int page, int size){ + ISelect select = () -> wvpProxyDockingMapper.select(s -> s.orderBy(WvpProxyDockingDynamicSqlSupport.id.descending())); + return getDockingWithPage(page,size, select); + } + + /** + * 分页查询对接设备/平台 + * @param page 页数 + * @param size 数量 + * @param select 查询语句 + * @return 分页设备/平台 + */ + public PageInfo getDockingWithPage(int page, int size, ISelect select){ + PageInfo pageInfo; + try (Page startPage = PageHelper.startPage(page, size)) { + pageInfo = startPage.doSelectPageInfo(select); + } + return pageInfo; + } }