Skip to content

Commit

Permalink
⚡ 优化查询逻辑.
Browse files Browse the repository at this point in the history
  • Loading branch information
lijiahangmax committed Sep 2, 2024
1 parent de9b89d commit 3a16f9d
Show file tree
Hide file tree
Showing 15 changed files with 182 additions and 91 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ public class ${table.serviceImplName} implements ${table.serviceName} {
@Override
public List<${type}VO> get${type}List(${type}QueryRequest request) {
// 条件
LambdaQueryWrapper<${type}DO> wrapper = this.buildQueryWrapper(request);
LambdaQueryWrapper<${type}DO> wrapper = this.buildQueryWrapper(request)
.orderByDesc(${type}DO::getId);
// 查询
return ${typeLower}DAO.of(wrapper).list(${type}Convert.MAPPER::to);
}
Expand All @@ -148,23 +149,28 @@ public class ${table.serviceImplName} implements ${table.serviceName} {
.sorted(Comparator.comparing(${type}VO::getId).reversed())
.collect(Collectors.toList());
}

#end

@Override
public Long get${type}Count(${type}QueryRequest request) {
public DataGrid<${type}VO> get${type}Page(${type}QueryRequest request) {
// 条件
LambdaQueryWrapper<${type}DO> wrapper = this.buildQueryWrapper(request)
.orderByDesc(${type}DO::getId);
// 查询
return ${typeLower}DAO.of()
.wrapper(this.buildQueryWrapper(request))
.countMax(request.getLimit());
.page(request)
.wrapper(wrapper)
.dataGrid(${type}Convert.MAPPER::to);
}

@Override
public DataGrid<${type}VO> get${type}Page(${type}QueryRequest request) {
public Long get${type}Count(${type}QueryRequest request) {
// 条件
LambdaQueryWrapper<${type}DO> wrapper = this.buildQueryWrapper(request);
// 查询
return ${typeLower}DAO.of(wrapper)
.page(request)
.dataGrid(${type}Convert.MAPPER::to);
return ${typeLower}DAO.of()
.wrapper(wrapper)
.countMax(request.getLimit());
}

@Override
Expand Down Expand Up @@ -234,13 +240,8 @@ public class ${table.serviceImplName} implements ${table.serviceName} {
Valid.isFalse(present, ErrorMessage.DATA_PRESENT);
}

/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
private LambdaQueryWrapper<${type}DO> buildQueryWrapper(${type}QueryRequest request) {
@Override
public LambdaQueryWrapper<${type}DO> buildQueryWrapper(${type}QueryRequest request) {
String searchValue = request.getSearchValue();
return ${typeLower}DAO.wrapper()
#foreach($field in ${table.fields})
Expand All @@ -250,8 +251,7 @@ public class ${table.serviceImplName} implements ${table.serviceName} {
#foreach($field in ${table.fields})
.eq(${type}DO::get${field.capitalName}, searchValue)#if($foreach.hasNext).or()#end
#end
)
.orderByDesc(${type}DO::getId);
);
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ${package.Service};

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.orion.lang.define.wrapper.DataGrid;
#foreach($pkg in ${customModuleFilePackages})
import ${pkg}.*;
Expand Down Expand Up @@ -116,4 +117,12 @@ public interface ${table.serviceName} {
*/
Integer delete${type}(${type}QueryRequest request);

/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
private LambdaQueryWrapper<${type}DO> buildQueryWrapper(${type}QueryRequest request);

}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -144,4 +146,12 @@ public interface ExecLogService {
*/
void asyncDeleteLogFiles(List<Long> idList);

/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
LambdaQueryWrapper<ExecLogDO> buildQueryWrapper(ExecLogQueryRequest request);

}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -106,4 +107,12 @@ public interface HostConnectLogService {
*/
Integer forceOffline(HostConnectLogQueryRequest request);

/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
LambdaQueryWrapper<HostConnectLogDO> buildQueryWrapper(HostConnectLogQueryRequest request);

}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -123,4 +125,12 @@ public interface HostService {
*/
void clearCache();

/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
LambdaQueryWrapper<HostDO> buildQueryWrapper(HostQueryRequest request);

}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -113,4 +115,12 @@ public interface UploadTaskService {
*/
void clearUploadSwapFiles(List<Long> idList);

/**
* 构建查询 wrapper
*
* @param request request
* @return wrapper
*/
LambdaQueryWrapper<UploadTaskDO> buildQueryWrapper(UploadTaskQueryRequest request);

}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -220,8 +221,11 @@ public Integer deleteExecLogByIdList(List<Long> idList) {

@Override
public Long queryExecLogCount(ExecLogQueryRequest request) {
// 条件
LambdaQueryWrapper<ExecLogDO> wrapper = this.buildQueryWrapper(request);
// 查询
return execLogDAO.of()
.wrapper(this.buildQueryWrapper(request))
.wrapper(wrapper)
.countMax(request.getLimit());
}

Expand All @@ -232,6 +236,7 @@ public Integer clearExecLog(ExecLogClearRequest request) {
// 查询
LambdaQueryWrapper<ExecLogDO> wrapper = this.buildQueryWrapper(request)
.select(ExecLogDO::getId)
.orderByAsc(ExecLogDO::getId)
.last(SqlUtils.limit(request.getLimit()));
List<Long> idList = execLogDAO.selectList(wrapper)
.stream()
Expand Down Expand Up @@ -452,13 +457,8 @@ public void asyncDeleteLogFiles(List<Long> idList) {
.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())
Expand All @@ -471,8 +471,7 @@ private LambdaQueryWrapper<ExecLogDO> buildQueryWrapper(ExecLogQueryRequest requ
.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());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ public HostConnectLogDO create(HostConnectTypeEnum type, HostConnectLogCreateReq
@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)
Expand Down Expand Up @@ -104,7 +105,8 @@ public List<HostConnectLogVO> getHostConnectSessions(HostConnectLogQueryRequest
// 条件
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 -> {
Expand Down Expand Up @@ -187,8 +189,11 @@ public Integer deleteHostConnectLog(List<Long> idList) {

@Override
public Long getHostConnectLogCount(HostConnectLogQueryRequest request) {
// 条件
LambdaQueryWrapper<HostConnectLogDO> wrapper = this.buildQueryWrapper(request);
// 查询
return hostConnectLogDAO.of()
.wrapper(this.buildQueryWrapper(request))
.wrapper(wrapper)
.countMax(request.getLimit());
}

Expand All @@ -199,6 +204,7 @@ public Integer clearHostConnectLog(HostConnectLogClearRequest request) {
// 查询
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()) {
Expand Down Expand Up @@ -234,13 +240,8 @@ public Integer forceOffline(HostConnectLogQueryRequest request) {
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())
Expand All @@ -253,8 +254,7 @@ private LambdaQueryWrapper<HostConnectLogDO> buildQueryWrapper(HostConnectLogQue
.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());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -259,9 +259,10 @@ public DataGrid<HostVO> getHostPage(HostQueryRequest request) {
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)
Expand All @@ -273,8 +274,11 @@ public DataGrid<HostVO> getHostPage(HostQueryRequest request) {

@Override
public Long getHostCount(HostQueryRequest request) {
// 条件
LambdaQueryWrapper<HostDO> wrapper = this.buildQueryWrapper(request);
// 查询
return hostDAO.of()
.wrapper(this.buildQueryWrapper(request))
.wrapper(wrapper)
.countMax(request.getLimit());
}

Expand Down Expand Up @@ -359,13 +363,8 @@ private void checkHostCodePresent(HostDO domain) {
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 条件
Expand Down
Loading

0 comments on commit 3a16f9d

Please sign in to comment.