docking api

This commit is contained in:
shikong 2023-09-22 13:50:04 +08:00
parent bff7ad1b37
commit 6ecbf83cdc
3 changed files with 83 additions and 0 deletions

View File

@ -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<PageWrapper<WvpProxyDocking>> page(@ParameterObject @Validated DockingPageDTO dto){
return JsonResponse.success(PageWrapper.of(dockingService.getDockingWithPage(dto.getPage(), dto.getSize())));
}
}

View File

@ -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;
}

View File

@ -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<WvpProxyDocking> 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<WvpProxyDocking> getDockingWithPage(int page, int size, ISelect select){
PageInfo<WvpProxyDocking> pageInfo;
try (Page<WvpProxyDocking> startPage = PageHelper.startPage(page, size)) {
pageInfo = startPage.doSelectPageInfo(select);
}
return pageInfo;
}
}