您的位置:首页 > 健康 > 美食 > 小型软件外包公司_360收录提交申请_广州抖音seo_上海哪家seo好

小型软件外包公司_360收录提交申请_广州抖音seo_上海哪家seo好

2025/4/18 14:18:58 来源:https://blog.csdn.net/qq_16049879/article/details/146985717  浏览:    关键词:小型软件外包公司_360收录提交申请_广州抖音seo_上海哪家seo好
小型软件外包公司_360收录提交申请_广州抖音seo_上海哪家seo好

创建部门或者子部门

import type { NextApiRequest, NextApiResponse } from 'next';
import { NextAPI } from '@/service/middleware/entry';
import { MongoOrgModel } from '@fastgpt/service/support/permission/org/orgSchema';async function handler(req: NextApiRequest, res: NextApiResponse) {try {const { name, avatar, description, parentId } = req.body;const orgTeam = await MongoOrgModel.findOne({ _id: parentId });if (!orgTeam) {return res.status(400).json({ error: 'Parent organization not found' });}const newOrgTeam = {name,avatar,description,path: `${orgTeam.path}/${orgTeam.pathId}`,teamId: orgTeam.teamId};// 创建子部门const createdOrg = await MongoOrgModel.create(newOrgTeam);res.status(200).json(createdOrg);} catch (error: any) {return res.status(500).json({ message: '服务器内部错误' });}
}export default NextAPI(handler);

查询部门

import type { NextApiRequest, NextApiResponse } from 'next';
import { NextAPI } from '@/service/middleware/entry';
import { MongoOrgModel } from '@fastgpt/service/support/permission/org/orgSchema';
import { authCert } from '@fastgpt/service/support/permission/auth/common';
import { Types } from 'mongoose';async function handler(req: NextApiRequest, res: NextApiResponse) {const userInfo = await authCert({ req, authToken: true });const orgList = await MongoOrgModel.find({teamId: new Types.ObjectId(userInfo.teamId)}).populate('members').lean();return orgList;
}export default NextAPI(handler);

部门及子部门及所有相关成员删除

import type { NextApiRequest, NextApiResponse } from 'next';
import { NextAPI } from '@/service/middleware/entry';
import { MongoOrgModel } from '@fastgpt/service/support/permission/org/orgSchema';
import { MongoOrgMemberModel } from '@fastgpt/service/support/permission/org/orgMemberSchema';async function handler(req: NextApiRequest, res: NextApiResponse) {try {const { orgId } = req.query;const org = await MongoOrgModel.findById(orgId);if (!org) {return res.status(404).json({ message: '部门不存在' });}// console.log('当前部门详情:', org);// 所有子部门const escapedPath = org.path.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');const pathRegex = new RegExp(`^${escapedPath}/`);const orgMatchList = await MongoOrgModel.find({path: {$regex: pathRegex}});// console.log('子部门匹配详情:', orgMatchList);const delOrgIds = [...orgMatchList.map((i) => i._id.toString()), orgId];// console.log('需要删除的所有部门id:', delOrgIds);const session = await MongoOrgModel.startSession();session.startTransaction();try {// 删除部门及子部门所有成员await MongoOrgMemberModel.deleteMany({orgId: {$in: delOrgIds}}).session(session);// console.log('部门及子部门删除所有成员结果:', del);// 删除部门及子部门await MongoOrgModel.deleteMany({_id: {$in: delOrgIds}}).session(session);await session.commitTransaction();// console.log('部门删除结果', orgdel);} catch (error) {await session.abortTransaction();throw error;} finally {session.endSession();}return res.status(200).json({ success: true });} catch (error: any) {// console.error('删除失败:', error);return res.status(500).json({ message: '服务器内部错误' });}
}export default NextAPI(handler);

管理成员,包括删除和添加

import type { NextApiRequest, NextApiResponse } from 'next';
import { NextAPI } from '@/service/middleware/entry';
import { MongoOrgModel } from '@fastgpt/service/support/permission/org/orgSchema';import { MongoOrgMemberModel } from '@fastgpt/service/support/permission/org/orgMemberSchema';async function handler(req: NextApiRequest, res: NextApiResponse) {try {const { orgId, members } = req.body;// console.log('{ orgId, members }::::', { orgId, members })const org = await MongoOrgModel.findById(orgId);const orgMembers = await MongoOrgMemberModel.find({ orgId: org?._id }).lean();let tmbIds = Object.values(orgMembers.map((m) => m.tmbId.toString()));let memberTmbIds = members.map((m: any) => m.tmbId);// 分类:新增、删除const toDelete = tmbIds.filter((item) => !new Set(memberTmbIds).has(item));const toAdd = memberTmbIds.filter((item: any) => !new Set(tmbIds).has(item));await MongoOrgMemberModel.deleteMany({tmbId: { $in: toDelete }});const addArr = toAdd.map((a: any) => {return {teamId: org?.teamId,orgId,tmbId: a};});await MongoOrgMemberModel.insertMany(addArr);} catch (error: any) {return res.status(500).json({ message: '服务器内部错误' });}
}export default NextAPI(handler);

移动部门

import type { NextApiRequest, NextApiResponse } from 'next';
import { NextAPI } from '@/service/middleware/entry';
import { MongoOrgModel } from '@fastgpt/service/support/permission/org/orgSchema';async function handler(req: NextApiRequest, res: NextApiResponse) {const { targetOrgId, orgId } = req.body;try {const targetOrg = await MongoOrgModel.findById(targetOrgId);if (!targetOrg) {return res.status(404).json({ message: '部门不存在' });}const path = targetOrg.path + '/' + targetOrg.pathId;await MongoOrgModel.findByIdAndUpdate(orgId, { path });// console.log(targetOrg, org)return res.status(200).json({ success: true });} catch (err: any) {return res.status(400).json({ message: err.message });}
}export default NextAPI(handler);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com