From 84db7149c2430903cc5975fb65b3a6b272314377 Mon Sep 17 00:00:00 2001 From: zhangminghua Date: Wed, 22 Mar 2023 14:31:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E8=A1=A8=E3=80=81=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E3=80=81=E6=8E=A5=E5=8F=A3=E5=85=83=E6=95=B0=E6=8D=AE=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/controllers/latestMetadata/index.js | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/api/app/lib/controllers/latestMetadata/index.js b/api/app/lib/controllers/latestMetadata/index.js index 705a249..301613f 100644 --- a/api/app/lib/controllers/latestMetadata/index.js +++ b/api/app/lib/controllers/latestMetadata/index.js @@ -114,9 +114,11 @@ async function getMetadataDatabases(ctx) { const { catalog, limit, offset, keywords, orderBy = 'createAt', orderDirection = 'desc' } = ctx.query; const where = { catalog: catalog }; if (keywords) { - where[$or] = [{ name: { $like: keywords } }, { code: { $like: keywords } }, { type: { $like: keywords } }] + where['$or'] = [{ name: { $iLike: `%${keywords}%` } }, + { code: { $iLike: `%${keywords}%` } }, + { type: { $iLike: `%${keywords}%` } }] } - const rslt = await models.MetadataDatabase.findAll({ + const findObj = { include: [ { model: models.User, @@ -130,10 +132,13 @@ async function getMetadataDatabases(ctx) { }], where: where, order: [[orderBy, orderDirection]], - offset: Number(offset) * Number(limit), - limit: Number(limit), distinct: true - }); + } + if (Number(limit) > 0 && Number(offset) >= 0) { + findObj.offset = Number(offset) * Number(limit); + findObj.limit = Number(limit); + } + const rslt = await models.MetadataDatabase.findAndCountAll(findObj); ctx.status = 200; ctx.body = rslt; } catch (error) { @@ -151,13 +156,13 @@ async function getMetadataFiles(ctx) { const { catalog, limit, offset, keywords, orderBy = 'createAt', orderDirection = 'desc' } = ctx.query; const where = { catalog: catalog }; if (keywords) { - where[$or] = [{ name: { $like: keywords } }, { type: { $like: keywords } }] + where['$or'] = [{ name: { $iLike: `%${keywords}%` } }, { type: { $iLike: `%${keywords}%` } }] } - const rslt = await models.MetadataFile.findAll({ + const findObj = { include: [ { model: models.User, - attributes: ['id', 'name'], + attributes: ['id', 'name', 'username'], }, { model: models.TagFile, @@ -167,10 +172,13 @@ async function getMetadataFiles(ctx) { }], where: where, order: [[orderBy, orderDirection]], - offset: Number(offset) * Number(limit), - limit: Number(limit), distinct: true - }); + }; + if (Number(limit) > 0 && Number(offset) >= 0) { + findObj.offset = Number(offset) * Number(limit); + findObj.limit = Number(limit); + } + const rslt = await models.MetadataFile.findAndCountAll(findObj); ctx.status = 200; ctx.body = rslt; } catch (error) { @@ -188,9 +196,9 @@ async function getMetadataRestapis(ctx) { const { catalog, limit, offset, keywords, orderBy = 'createAt', orderDirection = 'desc' } = ctx.query; const where = { catalog: catalog }; if (keywords) { - where.name = { $like: keywords }; + where.name = { $iLike: `%${keywords}%` }; } - const rslt = await models.MetadataRestapi.findAll({ + const findObj = { include: [ { model: models.User, @@ -204,10 +212,13 @@ async function getMetadataRestapis(ctx) { }], where: where, order: [[orderBy, orderDirection]], - offset: Number(offset) * Number(limit), - limit: Number(limit), distinct: true - }); + }; + if (Number(limit) > 0 && Number(offset) >= 0) { + findObj.offset = Number(offset) * Number(limit); + findObj.limit = Number(limit); + } + const rslt = await models.MetadataRestapi.findAndCountAll(findObj); ctx.status = 200; ctx.body = rslt; } catch (error) {