82 lines
2.3 KiB
JavaScript
82 lines
2.3 KiB
JavaScript
let tree = new Map([
|
|
[
|
|
{
|
|
"role": "admin",
|
|
},
|
|
[
|
|
"/user",
|
|
"/user/查询登陆日志",
|
|
"/user/查询观看日志",
|
|
|
|
"/admin",
|
|
"/admin/查询登陆日志",
|
|
"/admin/查询权限",
|
|
]
|
|
],
|
|
]);
|
|
|
|
let authMenuColl = "auth_menu"
|
|
let authorityColl = "authority"
|
|
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 pArray = []
|
|
for ([key, value] of tree) {
|
|
let ps = value.map(e => {
|
|
return new Promise(function (resolve, rejcet) {
|
|
videoDB.collection(authMenuColl).findOne({"path": e}, (err, result) => {
|
|
if (err) {
|
|
rejcet('查询失败!' + err)
|
|
return
|
|
}
|
|
;
|
|
resolve(result._id)
|
|
});
|
|
})
|
|
})
|
|
|
|
let p = Promise.all(ps).then(ids => {
|
|
return new Promise(function (resolve, rejcet) {
|
|
videoDB.collection(authorityColl).updateOne(
|
|
{
|
|
role: key.role,
|
|
},
|
|
{
|
|
$set: {
|
|
...key,
|
|
auth: ids,
|
|
createdAt: (new Date()),
|
|
updatedAt: (new Date()),
|
|
}
|
|
},
|
|
{upsert: true},
|
|
(err) => {
|
|
if (err) {
|
|
rejcet('inset失败!' + err)
|
|
return
|
|
}
|
|
;
|
|
resolve()
|
|
})
|
|
})
|
|
|
|
})
|
|
pArray.push(p)
|
|
}
|
|
|
|
Promise.all(pArray).then(() => {
|
|
db.close()
|
|
console.log('完成!');
|
|
}).catch(err => {
|
|
db.close()
|
|
console.log(err);
|
|
})
|
|
}) |