|
|
@@ -49,10 +49,20 @@ public class AppBuildQueryImpl implements AppBuildQuery {
|
|
|
public Page<AppConfig> queryByFields(Map<String, String> kv, Pageable pageable) {
|
|
|
Specification<AppConfig> specification = (root, query, cb) -> {
|
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
|
- kv.forEach((name, value) -> {
|
|
|
- predicates.add(cb.like(root.get(name), "%" + value + "%"));
|
|
|
- });
|
|
|
+ String appName = kv.get("appName");
|
|
|
+ if (appName != null && !appName.isBlank()) {
|
|
|
+ predicates.add(cb.like(root.get("appName"), "%" + appName + "%"));
|
|
|
+ }
|
|
|
+
|
|
|
+ String appType = kv.get("appType");
|
|
|
+ if (appType != null && !appType.isBlank()) {
|
|
|
+ predicates.add(cb.equal(root.get("appType"), appType));
|
|
|
+ }
|
|
|
|
|
|
+ /*String env = kv.get("env");
|
|
|
+ if (env != null && !env.isBlank()) {
|
|
|
+ predicates.add(cb.equal(root.get("env"), env));
|
|
|
+ }*/
|
|
|
// select * from app_building where app_id like '%test%' and app_name like '%测试%'
|
|
|
return cb.and(predicates.toArray(new Predicate[0]));
|
|
|
};
|
|
|
@@ -107,18 +117,39 @@ public class AppBuildQueryImpl implements AppBuildQuery {
|
|
|
@Override
|
|
|
public Page<AppBuildingVO> getByPage(String appEnv, String appType, Pageable pageable) {
|
|
|
Page<AppBuilding> page = buildingRepository.findAllByAppConfig_EnvAndAppConfig_AppType(appEnv, appType, pageable);
|
|
|
- Page<AppBuildingVO> page1 = page.map(appBuilding -> {
|
|
|
- int totalNode = appDeployQuery.countByApp(appBuilding.getAppConfig());
|
|
|
- int totalRunning = 0;
|
|
|
- BuildLog buildLog = appBuilding.getBuildLog();
|
|
|
- if (buildLog != null) {
|
|
|
- String buildLogId = buildLog.getBuildLogId();
|
|
|
- totalRunning = appDeployQuery.getAppRunningCountByBuildLogId(buildLogId);
|
|
|
- }
|
|
|
+ return page.map(this::getAppBuildingVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ private AppBuildingVO getAppBuildingVO(AppBuilding appBuilding) {
|
|
|
+ int totalNode = appDeployQuery.countByApp(appBuilding.getAppConfig());
|
|
|
+ int totalRunning = 0;
|
|
|
+ BuildLog buildLog = appBuilding.getBuildLog();
|
|
|
+ if (buildLog != null) {
|
|
|
+ String buildLogId = buildLog.getBuildLogId();
|
|
|
+ totalRunning = appDeployQuery.getAppRunningCountByBuildLogId(buildLogId);
|
|
|
+ }
|
|
|
|
|
|
- return new AppBuildingVO(appBuilding, totalNode, totalRunning);
|
|
|
+ return new AppBuildingVO(appBuilding, totalNode, totalRunning);
|
|
|
+ }
|
|
|
+
|
|
|
+ public Page<AppBuildingVO> queryByAppName(Map<String, String> kv, Pageable pageable) {
|
|
|
+ Page<AppConfig> page = queryByFields(kv, pageable);
|
|
|
+ return page.map(appConfig -> {
|
|
|
+ AppBuilding appBuilding = buildingRepository.findAllByAppConfig_AppId(appConfig.getAppId());
|
|
|
+ return getAppBuildingVO(appBuilding);
|
|
|
});
|
|
|
- return page1;
|
|
|
+ /*Specification<AppBuilding> specification = (root, query, cb) -> {
|
|
|
+ List<Predicate> predicates = new ArrayList<>();
|
|
|
+ kv.forEach((name, value) -> {
|
|
|
+ predicates.add(cb.like(root.get(name), "%" + value + "%"));
|
|
|
+ });
|
|
|
+
|
|
|
+ // select * from app_building where app_id like '%test%' and app_name like '%测试%'
|
|
|
+ return cb.and(predicates.toArray(new Predicate[0]));
|
|
|
+ };
|
|
|
+
|
|
|
+ Page<AppBuilding> page = buildingRepository.findAll(specification, pageable);
|
|
|
+ return page.map(this::getAppBuildingVO);*/
|
|
|
}
|
|
|
|
|
|
@Override
|