package com.xzx.log.controller;
|
|
|
import cn.hutool.core.util.StrUtil;
|
import com.xzx.log.dto.IntefaceAdminLogDto;
|
import com.xzx.log.dto.OperLogDto;
|
import com.xzx.log.dto.base.PageDTO;
|
import com.xzx.log.dto.base.Result;
|
import com.xzx.log.entity.IntefaceAdminLog;
|
import com.xzx.log.entity.OperationAppLog;
|
import com.xzx.log.mapper.IntefaceAdminLogMapper;
|
import com.xzx.log.mapper.OperationAppLogMapper;
|
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.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
@Api(tags = "操作日志管理")
|
@RestController
|
@RequestMapping("/operLog")
|
@Slf4j
|
public class OperAppController {
|
|
@Autowired
|
private OperationAppLogMapper operationAppLogMapper;
|
|
@ApiOperation( value = "操作日志查询")
|
@PostMapping("/find")
|
public Result<PageDTO<OperationAppLog>> find(@RequestBody OperLogDto operLogDto) {
|
String startTime = operLogDto.getStartTime();
|
String endTime = operLogDto.getEndTime();
|
String userId = operLogDto.getUserId();
|
String type = operLogDto.getType();
|
int pageNo=operLogDto.getPageNo()-1;
|
PageRequest pageable = PageRequest.of(pageNo, operLogDto.getPageSize(), Sort.by("createTime").descending());
|
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
|
if(StrUtil.isNotBlank(userId)){
|
boolQueryBuilder.must(QueryBuilders.wildcardQuery("opreateName", "*"+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"));
|
}
|
|
if(StrUtil.isNotBlank(type)){
|
boolQueryBuilder.must(QueryBuilders.matchQuery("appPrograme", type));
|
}
|
|
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
.withPageable(pageable)
|
.withQuery(boolQueryBuilder)
|
.build();
|
|
Page<OperationAppLog> pageInfo = operationAppLogMapper.search(searchQuery);
|
|
PageDTO<OperationAppLog> pageDTO=new PageDTO<>();
|
pageDTO.setPages(pageInfo.getTotalPages());
|
pageDTO.setTotal(pageInfo.getTotalElements());
|
pageDTO.setList(pageInfo.getContent());
|
return Result.success(pageDTO);
|
|
}
|
}
|