feature: support search group & project in global system (#178)

* feat: add global search api

* featï: add global search menu
This commit is contained in:
vran
2022-05-16 08:55:41 +08:00
committed by GitHub
parent 59570a9ee6
commit ff3f2e111f
47 changed files with 227 additions and 49 deletions

View File

@@ -69,4 +69,12 @@ public class GroupDao extends BaseDao<GroupPojo> {
.where(GROUP.ID.in(ids))
.fetchInto(GroupPojo.class);
}
public List<GroupPojo> selectByName(String nameContains) {
return getDslContext()
.select(GROUP.fields()).from(GROUP)
.where(GROUP.NAME.contains(nameContains))
.and(GROUP.DELETED.eq(false))
.fetchInto(GroupPojo.class);
}
}

View File

@@ -2,6 +2,7 @@ package com.databasir.dao.impl;
import com.databasir.dao.tables.pojos.ProjectPojo;
import com.databasir.dao.value.GroupProjectCountPojo;
import com.databasir.dao.value.ProjectQueryPojo;
import lombok.Getter;
import org.jooq.Condition;
import org.jooq.DSLContext;
@@ -19,8 +20,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import static com.databasir.dao.Tables.DATA_SOURCE;
import static com.databasir.dao.Tables.PROJECT;
import static com.databasir.dao.Tables.*;
@Repository
public class ProjectDao extends BaseDao<ProjectPojo> {
@@ -126,4 +126,28 @@ public class ProjectDao extends BaseDao<ProjectPojo> {
.where(PROJECT.ID.in(projectIds))
.fetchMap(PROJECT.ID, PROJECT.GROUP_ID);
}
public List<ProjectQueryPojo> selectByProjectNameOrDatabaseOrSchemaOrGroup(String query) {
return getDslContext()
.select(
PROJECT.ID.as("project_id"),
PROJECT.NAME.as("project_name"),
PROJECT.DESCRIPTION.as("project_description"),
DATA_SOURCE.DATABASE_NAME,
DATA_SOURCE.SCHEMA_NAME,
GROUP.NAME.as("group_name"),
GROUP.ID.as("group_id")
)
.from(PROJECT)
.leftJoin(DATA_SOURCE).on(DATA_SOURCE.PROJECT_ID.eq(PROJECT.ID))
.leftJoin(GROUP).on(GROUP.ID.eq(PROJECT.GROUP_ID))
.where(PROJECT.DELETED.eq(false)
.and(GROUP.DELETED.eq(false))
.and(PROJECT.NAME.contains(query)
.or(DATA_SOURCE.DATABASE_NAME.contains(query))
.or(DATA_SOURCE.SCHEMA_NAME.contains(query))
.or(GROUP.NAME.contains(query)))
)
.fetchInto(ProjectQueryPojo.class);
}
}

View File

@@ -0,0 +1,21 @@
package com.databasir.dao.value;
import lombok.Data;
@Data
public class ProjectQueryPojo {
private Integer projectId;
private Integer groupId;
private String groupName;
private String projectName;
private String projectDescription;
private String databaseName;
private String schemaName;
}