优化查询逻辑.

This commit is contained in:
lijiahang
2024-09-02 12:37:11 +08:00
parent de9b89d805
commit 3a16f9d9ab
15 changed files with 184 additions and 93 deletions

View File

@@ -1,6 +1,8 @@
package com.orion.visor.module.asset.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.orion.lang.define.wrapper.DataGrid;
import com.orion.visor.module.asset.entity.domain.ExecLogDO;
import com.orion.visor.module.asset.entity.dto.ExecLogTailDTO;
import com.orion.visor.module.asset.entity.request.exec.ExecLogClearRequest;
import com.orion.visor.module.asset.entity.request.exec.ExecLogQueryRequest;
@@ -144,4 +146,12 @@ public interface ExecLogService {
*/
void asyncDeleteLogFiles(List<Long> idList);
/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
LambdaQueryWrapper<ExecLogDO> buildQueryWrapper(ExecLogQueryRequest request);
}

View File

@@ -1,5 +1,6 @@
package com.orion.visor.module.asset.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.orion.lang.define.wrapper.DataGrid;
import com.orion.visor.module.asset.entity.domain.HostConnectLogDO;
import com.orion.visor.module.asset.entity.request.host.HostConnectLogClearRequest;
@@ -106,4 +107,12 @@ public interface HostConnectLogService {
*/
Integer forceOffline(HostConnectLogQueryRequest request);
/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
LambdaQueryWrapper<HostConnectLogDO> buildQueryWrapper(HostConnectLogQueryRequest request);
}

View File

@@ -1,6 +1,8 @@
package com.orion.visor.module.asset.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.orion.lang.define.wrapper.DataGrid;
import com.orion.visor.module.asset.entity.domain.HostDO;
import com.orion.visor.module.asset.entity.request.host.*;
import com.orion.visor.module.asset.entity.vo.HostConfigVO;
import com.orion.visor.module.asset.entity.vo.HostVO;
@@ -123,4 +125,12 @@ public interface HostService {
*/
void clearCache();
/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
LambdaQueryWrapper<HostDO> buildQueryWrapper(HostQueryRequest request);
}

View File

@@ -1,6 +1,8 @@
package com.orion.visor.module.asset.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.orion.lang.define.wrapper.DataGrid;
import com.orion.visor.module.asset.entity.domain.UploadTaskDO;
import com.orion.visor.module.asset.entity.request.upload.UploadTaskClearRequest;
import com.orion.visor.module.asset.entity.request.upload.UploadTaskCreateRequest;
import com.orion.visor.module.asset.entity.request.upload.UploadTaskQueryRequest;
@@ -113,4 +115,12 @@ public interface UploadTaskService {
*/
void clearUploadSwapFiles(List<Long> idList);
/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
LambdaQueryWrapper<UploadTaskDO> buildQueryWrapper(UploadTaskQueryRequest request);
}

View File

@@ -93,7 +93,8 @@ public class ExecLogServiceImpl implements ExecLogService {
@Override
public DataGrid<ExecLogVO> getExecLogPage(ExecLogQueryRequest request) {
// 条件
LambdaQueryWrapper<ExecLogDO> wrapper = this.buildQueryWrapper(request);
LambdaQueryWrapper<ExecLogDO> wrapper = this.buildQueryWrapper(request)
.orderByDesc(ExecLogDO::getId);
// 查询
return execLogDAO.of(wrapper)
.page(request)
@@ -220,8 +221,11 @@ public class ExecLogServiceImpl implements ExecLogService {
@Override
public Long queryExecLogCount(ExecLogQueryRequest request) {
// 条件
LambdaQueryWrapper<ExecLogDO> wrapper = this.buildQueryWrapper(request);
// 查询
return execLogDAO.of()
.wrapper(this.buildQueryWrapper(request))
.wrapper(wrapper)
.countMax(request.getLimit());
}
@@ -232,6 +236,7 @@ public class ExecLogServiceImpl implements ExecLogService {
// 查询
LambdaQueryWrapper<ExecLogDO> wrapper = this.buildQueryWrapper(request)
.select(ExecLogDO::getId)
.orderByAsc(ExecLogDO::getId)
.last(SqlUtils.limit(request.getLimit()));
List<Long> idList = execLogDAO.selectList(wrapper)
.stream()
@@ -452,13 +457,8 @@ public class ExecLogServiceImpl implements ExecLogService {
.forEach(Files1::delete);
}
/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
private LambdaQueryWrapper<ExecLogDO> buildQueryWrapper(ExecLogQueryRequest request) {
@Override
public LambdaQueryWrapper<ExecLogDO> buildQueryWrapper(ExecLogQueryRequest request) {
return execLogDAO.wrapper()
.eq(ExecLogDO::getId, request.getId())
.eq(ExecLogDO::getUserId, request.getUserId())
@@ -471,8 +471,7 @@ public class ExecLogServiceImpl implements ExecLogService {
.in(ExecLogDO::getStatus, request.getStatusList())
.ge(ExecLogDO::getStartTime, Arrays1.getIfPresent(request.getStartTimeRange(), 0))
.le(ExecLogDO::getStartTime, Arrays1.getIfPresent(request.getStartTimeRange(), 1))
.le(ExecLogDO::getCreateTime, request.getCreateTimeLe())
.orderByDesc(ExecLogDO::getId);
.le(ExecLogDO::getCreateTime, request.getCreateTimeLe());
}
/**

View File

@@ -73,7 +73,8 @@ public class HostConnectLogServiceImpl implements HostConnectLogService {
@Override
public DataGrid<HostConnectLogVO> getHostConnectLogPage(HostConnectLogQueryRequest request) {
// 条件
LambdaQueryWrapper<HostConnectLogDO> wrapper = this.buildQueryWrapper(request);
LambdaQueryWrapper<HostConnectLogDO> wrapper = this.buildQueryWrapper(request)
.orderByDesc(HostConnectLogDO::getId);
// 查询
return hostConnectLogDAO.of(wrapper)
.page(request)
@@ -104,7 +105,8 @@ public class HostConnectLogServiceImpl implements HostConnectLogService {
// 条件
request.setIdList(idList);
request.setStatus(HostConnectStatusEnum.CONNECTING.name());
LambdaQueryWrapper<HostConnectLogDO> wrapper = this.buildQueryWrapper(request);
LambdaQueryWrapper<HostConnectLogDO> wrapper = this.buildQueryWrapper(request)
.orderByDesc(HostConnectLogDO::getId);
// 查询
return hostConnectLogDAO.of(wrapper)
.list(s -> {
@@ -187,8 +189,11 @@ public class HostConnectLogServiceImpl implements HostConnectLogService {
@Override
public Long getHostConnectLogCount(HostConnectLogQueryRequest request) {
// 条件
LambdaQueryWrapper<HostConnectLogDO> wrapper = this.buildQueryWrapper(request);
// 查询
return hostConnectLogDAO.of()
.wrapper(this.buildQueryWrapper(request))
.wrapper(wrapper)
.countMax(request.getLimit());
}
@@ -199,6 +204,7 @@ public class HostConnectLogServiceImpl implements HostConnectLogService {
// 查询
LambdaQueryWrapper<HostConnectLogDO> wrapper = this.buildQueryWrapper(request)
.select(HostConnectLogDO::getId)
.orderByAsc(HostConnectLogDO::getId)
.last(SqlUtils.limit(request.getLimit()));
List<HostConnectLogDO> list = hostConnectLogDAO.selectList(wrapper);
if (list.isEmpty()) {
@@ -234,13 +240,8 @@ public class HostConnectLogServiceImpl implements HostConnectLogService {
return this.updateStatus(record, HostConnectStatusEnum.FORCE_OFFLINE, null);
}
/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
private LambdaQueryWrapper<HostConnectLogDO> buildQueryWrapper(HostConnectLogQueryRequest request) {
@Override
public LambdaQueryWrapper<HostConnectLogDO> buildQueryWrapper(HostConnectLogQueryRequest request) {
return hostConnectLogDAO.wrapper()
.eq(HostConnectLogDO::getId, request.getId())
.in(HostConnectLogDO::getId, request.getIdList())
@@ -253,8 +254,7 @@ public class HostConnectLogServiceImpl implements HostConnectLogService {
.in(HostConnectLogDO::getStatus, request.getStatusList())
.ge(HostConnectLogDO::getStartTime, Arrays1.getIfPresent(request.getStartTimeRange(), 0))
.le(HostConnectLogDO::getStartTime, Arrays1.getIfPresent(request.getStartTimeRange(), 1))
.le(HostConnectLogDO::getCreateTime, request.getCreateTimeLe())
.orderByDesc(HostConnectLogDO::getId);
.le(HostConnectLogDO::getCreateTime, request.getCreateTimeLe());
}
}

View File

@@ -259,9 +259,10 @@ public class HostServiceImpl implements HostService {
if (wrapper == null) {
return DataGrid.of(Lists.empty());
}
// 数量条件
LambdaQueryWrapper<HostDO> countWrapper = wrapper.clone();
wrapper.select(HostDAO.BASE_COLUMN);
// 基础条件
LambdaQueryWrapper<HostDO> countWrapper = wrapper.clone()
.select(HostDAO.BASE_COLUMN)
.orderByAsc(HostDO::getId);
// 查询
DataGrid<HostVO> hosts = hostDAO.of(wrapper)
.page(request)
@@ -273,8 +274,11 @@ public class HostServiceImpl implements HostService {
@Override
public Long getHostCount(HostQueryRequest request) {
// 条件
LambdaQueryWrapper<HostDO> wrapper = this.buildQueryWrapper(request);
// 查询
return hostDAO.of()
.wrapper(this.buildQueryWrapper(request))
.wrapper(wrapper)
.countMax(request.getLimit());
}
@@ -359,13 +363,8 @@ public class HostServiceImpl implements HostService {
Valid.isFalse(present, ErrorMessage.CODE_PRESENT);
}
/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
private LambdaQueryWrapper<HostDO> buildQueryWrapper(HostQueryRequest request) {
@Override
public LambdaQueryWrapper<HostDO> buildQueryWrapper(HostQueryRequest request) {
String searchValue = request.getSearchValue();
LambdaQueryWrapper<HostDO> wrapper = hostDAO.wrapper();
// tag 条件

View File

@@ -169,7 +169,8 @@ public class UploadTaskServiceImpl implements UploadTaskService {
@Override
public DataGrid<UploadTaskVO> getUploadTaskPage(UploadTaskQueryRequest request) {
// 条件
LambdaQueryWrapper<UploadTaskDO> wrapper = this.buildQueryWrapper(request);
LambdaQueryWrapper<UploadTaskDO> wrapper = this.buildQueryWrapper(request)
.orderByDesc(UploadTaskDO::getId);
// 查询
return uploadTaskDAO.of(wrapper)
.page(request)
@@ -216,8 +217,11 @@ public class UploadTaskServiceImpl implements UploadTaskService {
@Override
public Long getUploadTaskCount(UploadTaskQueryRequest request) {
// 条件
LambdaQueryWrapper<UploadTaskDO> wrapper = this.buildQueryWrapper(request);
// 查询
return uploadTaskDAO.of()
.wrapper(this.buildQueryWrapper(request))
.wrapper(wrapper)
.countMax(request.getLimit());
}
@@ -227,6 +231,7 @@ public class UploadTaskServiceImpl implements UploadTaskService {
// 查询id
LambdaQueryWrapper<UploadTaskDO> wrapper = this.buildQueryWrapper(request)
.select(UploadTaskDO::getId)
.orderByAsc(UploadTaskDO::getId)
.last(SqlUtils.limit(request.getLimit()));
List<Long> idList = uploadTaskDAO.of(wrapper)
.list(UploadTaskDO::getId);
@@ -306,13 +311,8 @@ public class UploadTaskServiceImpl implements UploadTaskService {
paths.forEach(Files1::delete);
}
/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
private LambdaQueryWrapper<UploadTaskDO> buildQueryWrapper(UploadTaskQueryRequest request) {
@Override
public LambdaQueryWrapper<UploadTaskDO> buildQueryWrapper(UploadTaskQueryRequest request) {
return uploadTaskDAO.wrapper()
.eq(UploadTaskDO::getId, request.getId())
.eq(UploadTaskDO::getUserId, request.getUserId())
@@ -320,8 +320,7 @@ public class UploadTaskServiceImpl implements UploadTaskService {
.like(UploadTaskDO::getRemotePath, request.getRemotePath())
.eq(UploadTaskDO::getStatus, request.getStatus())
.ge(UploadTaskDO::getCreateTime, Arrays1.getIfPresent(request.getCreateTimeRange(), 0))
.le(UploadTaskDO::getCreateTime, Arrays1.getIfPresent(request.getCreateTimeRange(), 1))
.orderByDesc(UploadTaskDO::getId);
.le(UploadTaskDO::getCreateTime, Arrays1.getIfPresent(request.getCreateTimeRange(), 1));
}
/**