package com.xzx.log.controller; import cn.hutool.core.util.StrUtil; import com.xzx.log.dto.IntefaceAdminLogDto; import com.xzx.log.dto.base.PageDTO; import com.xzx.log.dto.base.Result; import com.xzx.log.entity.IntefaceAdminLog; import com.xzx.log.mapper.IntefaceAdminLogMapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.data.elasticsearch.core.query.SearchQuery; import org.springframework.web.bind.annotation.*; @Api(tags = "接口日志管理") @RestController @RequestMapping("/intefaceAdminLog") @Slf4j public class IntefaceAdminLogController { @Autowired private IntefaceAdminLogMapper intefaceAdminLogMapper; @ApiOperation( value = "接口日志查询") @PostMapping("/find") public Result> find(@RequestBody IntefaceAdminLogDto intefaceAdminLogDto) { String startTime = intefaceAdminLogDto.getStartTime(); String endTime = intefaceAdminLogDto.getEndTime(); String userId = intefaceAdminLogDto.getUserId(); int pageNo=intefaceAdminLogDto.getPageNo()-1; PageRequest pageable = PageRequest.of(pageNo, intefaceAdminLogDto.getPageSize(), Sort.by("createTime").descending()); BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); if(StrUtil.isNotBlank(userId)){ boolQueryBuilder.must(QueryBuilders.matchQuery("userId", userId)); } if(StrUtil.isNotBlank(startTime)){ boolQueryBuilder.must(QueryBuilders.rangeQuery("createTime").gte(startTime +" 00:00:00")); } if(StrUtil.isNotBlank(endTime)){ boolQueryBuilder.must(QueryBuilders.rangeQuery("createTime").lte(endTime+" 00:00:00")); } SearchQuery searchQuery = new NativeSearchQueryBuilder() .withPageable(pageable) .withQuery(boolQueryBuilder) .build(); Page pageInfo = intefaceAdminLogMapper.search(searchQuery); PageDTO pageDTO=new PageDTO<>(); pageDTO.setPages(pageInfo.getTotalPages()); pageDTO.setTotal(pageInfo.getTotalElements()); pageDTO.setList(pageInfo.getContent()); return Result.success(pageDTO); } }