Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

124 lines
3.4 KiB
JavaScript

let tree = new Map([
[
{
"name": "用户管理",
"path": "/user",
"icon": "icon"
},
[
{
"name": "查询登陆日志",
"path": "/user/查询登陆日志",
"icon": "icon"
},
{
"name": "查询观看日志",
"path": "/user/查询观看日志",
"icon": "icon"
},
]
],
[
{
"name": "管理员",
"path": "/admin",
"icon": "icon"
},
[
{
"name": "查询登陆日志",
"path": "/admin/查询登陆日志",
"icon": "icon"
},
{
"name": "查询权限",
"path": "/admin/查询权限",
"icon": "icon"
},
]
],
[
{
"name": "查询权限",
"path": "/admin/查询权限",
"icon": "icon"
},
[
{
"name": "修改",
"path": "/admin/查询权限/修改",
"icon": "icon"
},
{
"name": "插入",
"path": "/admin/查询权限/插入",
"icon": "icon"
},
]
]
]);
let coll = "auth_menu"
const MongoClient = require('mongodb').MongoClient;
let dburl = "mongodb://192.168.1.249:27017,192.168.1.249:27018,192.168.1.249:27019/video?replicaSet=mongoRepl&maxPoolSize=200&connectTimeout=30";
MongoClient.connect(dburl, {useUnifiedTopology: true, useNewUrlParser: true}, (err, db) => {
if (err) {
console.log('数据库连接失败!');
return;
}
;
let videoDB = db.db("video");
let ps = Array.from(tree.keys()).map(key => {
return new Promise(function (resolve, rejcet) {
videoDB.collection(coll).findOneAndUpdate(
{path: key.path},
{$set: key},
{
upsert: true,
new: true
},
(err, result) => {
if (err) {
rejcet('数据更新失败' + err)
return
}
;
resolve({id: result.value._id, array: tree.get(key)})
});
})
})
Promise.all(ps).then(pairs => {
let pss = pairs.map(pair => {
let ps = pair.array.map(e => {
return new Promise(function (resolve, rejcet) {
videoDB.collection(coll).updateOne({path: e.path},
{$set: {parent: pair.id, ...e}},
{upsert: true},
(err, result) => {
if (err) {
rejcet('数据插入失败!' + err)
return
}
;
resolve()
});
})
})
return ps
})
pArry = pss.reduce((a, c) => {
return a.concat(a, c)
}, [])
return Promise.all(pArry)
}).then(() => {
console.log('完成!');
db.close()
}).catch(err => {
console.log(err);
db.close()
})
})