fix: pagination bug (#3577)
This commit is contained in:
@@ -10,8 +10,8 @@ import { NextAPI } from '@/service/middleware/entry';
|
||||
import { WritePermissionVal } from '@fastgpt/global/support/permission/constant';
|
||||
import { readFromSecondary } from '@fastgpt/service/common/mongo/utils';
|
||||
import { parsePaginationRequest } from '@fastgpt/service/common/api/pagination';
|
||||
import { TeamMemberCollectionName } from '@fastgpt/global/support/user/team/constant';
|
||||
import { PaginationResponse } from '@fastgpt/web/common/fetch/type';
|
||||
import { addSourceMember } from '@fastgpt/service/support/user/utils';
|
||||
|
||||
async function handler(
|
||||
req: NextApiRequest,
|
||||
@@ -82,14 +82,6 @@ async function handler(
|
||||
as: 'chatitems'
|
||||
}
|
||||
},
|
||||
{
|
||||
$lookup: {
|
||||
from: TeamMemberCollectionName,
|
||||
localField: 'tmbId',
|
||||
foreignField: '_id',
|
||||
as: 'member'
|
||||
}
|
||||
},
|
||||
{
|
||||
$addFields: {
|
||||
userGoodFeedbackCount: {
|
||||
@@ -143,12 +135,7 @@ async function handler(
|
||||
customFeedbacksCount: 1,
|
||||
markCount: 1,
|
||||
outLinkUid: 1,
|
||||
tmbId: 1,
|
||||
sourceMember: {
|
||||
name: '$member.name',
|
||||
avatar: '$member.avatar',
|
||||
status: '$member.status'
|
||||
}
|
||||
tmbId: 1
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -159,8 +146,15 @@ async function handler(
|
||||
MongoChat.countDocuments(where, { ...readFromSecondary })
|
||||
]);
|
||||
|
||||
const listWithSourceMember = await addSourceMember({
|
||||
list: list,
|
||||
teamId
|
||||
});
|
||||
|
||||
const listWithoutTmbId = list.filter((item) => !item.tmbId);
|
||||
|
||||
return {
|
||||
list,
|
||||
list: listWithSourceMember.concat(listWithoutTmbId),
|
||||
total
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import { replaceRegChars } from '@fastgpt/global/common/string/tools';
|
||||
import { concatPer } from '@fastgpt/service/support/permission/controller';
|
||||
import { getGroupsByTmbId } from '@fastgpt/service/support/permission/memberGroup/controllers';
|
||||
import { getOrgIdSetWithParentByTmbId } from '@fastgpt/service/support/permission/org/controllers';
|
||||
import { MongoTeamMember } from '@fastgpt/service/support/user/team/teamMemberSchema';
|
||||
import { addSourceMember } from '@fastgpt/service/support/user/utils';
|
||||
|
||||
export type ListAppBody = {
|
||||
parentId?: ParentIdType;
|
||||
@@ -202,32 +202,9 @@ async function handler(req: ApiRequestProps<ListAppBody>): Promise<AppListItemTy
|
||||
})
|
||||
.filter((app) => app.permission.hasReadPer);
|
||||
|
||||
// get member info
|
||||
const memberInfo = await MongoTeamMember.find(
|
||||
{ _id: { $in: formatApps.map((app) => app.tmbId) } },
|
||||
'_id name avatar status'
|
||||
).lean();
|
||||
|
||||
return formatApps.map((app) => {
|
||||
const member = memberInfo.find((item) => String(item._id) === String(app.tmbId))!;
|
||||
return {
|
||||
_id: app._id,
|
||||
tmbId: app.tmbId,
|
||||
avatar: app.avatar,
|
||||
type: app.type,
|
||||
name: app.name,
|
||||
intro: app.intro,
|
||||
updateTime: app.updateTime,
|
||||
permission: app.permission,
|
||||
pluginData: app.pluginData,
|
||||
inheritPermission: app.inheritPermission ?? true,
|
||||
private: app.privateApp,
|
||||
sourceMember: {
|
||||
name: member.name,
|
||||
avatar: member.avatar,
|
||||
status: member.status
|
||||
}
|
||||
};
|
||||
return addSourceMember({
|
||||
list: formatApps,
|
||||
teamId
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import { authApp } from '@fastgpt/service/support/permission/app/auth';
|
||||
import { WritePermissionVal } from '@fastgpt/global/support/permission/constant';
|
||||
import { VersionListItemType } from '@fastgpt/global/core/app/version';
|
||||
import { parsePaginationRequest } from '@fastgpt/service/common/api/pagination';
|
||||
import { MongoTeamMember } from '@fastgpt/service/support/user/team/teamMemberSchema';
|
||||
import { addSourceMember } from '@fastgpt/service/support/user/utils';
|
||||
|
||||
export type versionListBody = PaginationProps<{
|
||||
appId: string;
|
||||
@@ -36,43 +36,21 @@ async function handler(
|
||||
.limit(pageSize)
|
||||
.lean();
|
||||
|
||||
const memberList = await MongoTeamMember.find(
|
||||
{
|
||||
_id: { $in: versions.map((item) => item.tmbId) }
|
||||
},
|
||||
'_id name avatar status'
|
||||
).lean();
|
||||
|
||||
return versions.map((item) => {
|
||||
const member = memberList.find((member) => String(member._id) === String(item.tmbId));
|
||||
return {
|
||||
...item,
|
||||
sourceMember: {
|
||||
name: member?.name || '',
|
||||
avatar: member?.avatar || '',
|
||||
status: member?.status || ''
|
||||
}
|
||||
};
|
||||
});
|
||||
return (
|
||||
await addSourceMember({
|
||||
list: versions
|
||||
})
|
||||
).map((item) => ({
|
||||
...item,
|
||||
isPublish: !!item.isPublish
|
||||
}));
|
||||
})(),
|
||||
MongoAppVersion.countDocuments({ appId })
|
||||
]);
|
||||
|
||||
const versionList = result.map((item) => {
|
||||
return {
|
||||
_id: item._id,
|
||||
appId: item.appId,
|
||||
versionName: item.versionName,
|
||||
time: item.time,
|
||||
isPublish: item.isPublish,
|
||||
tmbId: item.tmbId,
|
||||
sourceMember: item.sourceMember
|
||||
};
|
||||
});
|
||||
|
||||
return {
|
||||
total,
|
||||
list: versionList
|
||||
list: result
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { DatasetListItemType } from '@fastgpt/global/core/dataset/type.d';
|
||||
import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants';
|
||||
import { MongoDataset } from '@fastgpt/service/core/dataset/schema';
|
||||
import { authUserPer } from '@fastgpt/service/support/permission/user/auth';
|
||||
@@ -18,8 +17,7 @@ import { replaceRegChars } from '@fastgpt/global/common/string/tools';
|
||||
import { getGroupsByTmbId } from '@fastgpt/service/support/permission/memberGroup/controllers';
|
||||
import { concatPer } from '@fastgpt/service/support/permission/controller';
|
||||
import { getOrgIdSetWithParentByTmbId } from '@fastgpt/service/support/permission/org/controllers';
|
||||
import { MongoTeamMember } from '@fastgpt/service/support/user/team/teamMemberSchema';
|
||||
import { getVectorModel } from '@fastgpt/service/core/ai/model';
|
||||
import { addSourceMember } from '@fastgpt/service/support/user/utils';
|
||||
|
||||
export type GetDatasetListBody = {
|
||||
parentId: ParentIdType;
|
||||
@@ -175,30 +173,9 @@ async function handler(req: ApiRequestProps<GetDatasetListBody>) {
|
||||
})
|
||||
.filter((app) => app.permission.hasReadPer);
|
||||
|
||||
const tmbIds = formatDatasets.map((item) => String(item.tmbId));
|
||||
const memberInfo = await MongoTeamMember.find({ _id: { $in: tmbIds } }, '_id name avatar').lean();
|
||||
|
||||
return formatDatasets.map((item) => {
|
||||
const member =
|
||||
memberInfo.find((member) => String(member._id) === String(item.tmbId)) ?? memberInfo[0];
|
||||
|
||||
return {
|
||||
_id: item._id,
|
||||
avatar: item.avatar,
|
||||
name: item.name,
|
||||
intro: item.intro,
|
||||
type: item.type,
|
||||
permission: item.permission,
|
||||
vectorModel: getVectorModel(item.vectorModel),
|
||||
inheritPermission: item.inheritPermission,
|
||||
tmbId: item.tmbId,
|
||||
updateTime: item.updateTime,
|
||||
private: item.privateDataset,
|
||||
sourceMember: {
|
||||
name: member!.name,
|
||||
avatar: member!.avatar
|
||||
}
|
||||
};
|
||||
return addSourceMember({
|
||||
list: formatDatasets,
|
||||
teamId
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user