mirror of
https://github.com/vran-dev/databasir.git
synced 2025-08-09 11:32:33 +08:00
feature: support search group & project in global system (#178)
* feat: add global search api * featï: add global search menu
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
Reference in New Issue
Block a user