完善配置查询接口
This commit is contained in:
@@ -119,8 +119,23 @@ export async function getGatewayConfig(page?: number, filters?: {
|
|||||||
|
|
||||||
page = filters?.mac ? 1 : Math.max(1, page || 1)
|
page = filters?.mac ? 1 : Math.max(1, page || 1)
|
||||||
|
|
||||||
|
const condition = filters ? and(
|
||||||
|
filters.mac ? eq(gateway.macaddr, filters.mac) : undefined,
|
||||||
|
filters.public ? eq(edge.public, filters.public) : undefined,
|
||||||
|
filters.city ? eq(cityhash.city, filters.city) : undefined,
|
||||||
|
filters.user ? eq(gateway.user, filters.user) : undefined,
|
||||||
|
filters.inner_ip ? eq(gateway.network, filters.inner_ip) : undefined,
|
||||||
|
) : undefined
|
||||||
|
|
||||||
const [total, result] = await Promise.all([
|
const [total, result] = await Promise.all([
|
||||||
drizzle.$count(gateway, filters?.mac ? eq(gateway.macaddr, filters?.mac) : undefined),
|
drizzle
|
||||||
|
.select({
|
||||||
|
value: count(),
|
||||||
|
})
|
||||||
|
.from(gateway)
|
||||||
|
.leftJoin(cityhash, eq(cityhash.hash, gateway.cityhash))
|
||||||
|
.leftJoin(edge, eq(edge.macaddr, gateway.edge))
|
||||||
|
.where(condition),
|
||||||
drizzle
|
drizzle
|
||||||
.select({
|
.select({
|
||||||
city: cityhash.city,
|
city: cityhash.city,
|
||||||
@@ -134,13 +149,7 @@ export async function getGatewayConfig(page?: number, filters?: {
|
|||||||
.from(gateway)
|
.from(gateway)
|
||||||
.leftJoin(cityhash, eq(cityhash.hash, gateway.cityhash))
|
.leftJoin(cityhash, eq(cityhash.hash, gateway.cityhash))
|
||||||
.leftJoin(edge, eq(edge.macaddr, gateway.edge))
|
.leftJoin(edge, eq(edge.macaddr, gateway.edge))
|
||||||
.where(filters ? and(
|
.where(condition)
|
||||||
filters.mac ? eq(gateway.macaddr, filters.mac) : undefined,
|
|
||||||
filters.public ? eq(edge.public, filters.public) : undefined,
|
|
||||||
filters.city ? eq(cityhash.city, filters.city) : undefined,
|
|
||||||
filters.user ? eq(gateway.user, filters.user) : undefined,
|
|
||||||
filters.inner_ip ? eq(gateway.network, filters.inner_ip) : undefined,
|
|
||||||
) : undefined)
|
|
||||||
.orderBy(sql`inet_aton(gateway.inner_ip)`)
|
.orderBy(sql`inet_aton(gateway.inner_ip)`)
|
||||||
.offset((page - 1) * 250)
|
.offset((page - 1) * 250)
|
||||||
.limit(250),
|
.limit(250),
|
||||||
@@ -148,7 +157,7 @@ export async function getGatewayConfig(page?: number, filters?: {
|
|||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
data: {
|
data: {
|
||||||
total,
|
total: total[0].value,
|
||||||
page,
|
page,
|
||||||
size: 250,
|
size: 250,
|
||||||
items: result,
|
items: result,
|
||||||
|
|||||||
Reference in New Issue
Block a user