HJ_Server/src/patch_fix_all_user_hero_shiwu.ts
2023-12-13 20:51:17 +08:00

75 lines
2.2 KiB
TypeScript

import {ctor} from './global';
import {initMongoDB} from './setMongodb';
async function start() {
//连接mongodb
await initMongoDB();
// 查找所有穿戴shiwu的hero
let heros = await G.mongodb.collection("hero").find({
shiwu: {$exists: true}
}).toArray();
for (let i = 0; i < heros.length; i++) {
let hero = heros[i];
if (R.values(hero.shiwu).filter(i => !i._id).length == 0) {
continue
}
let shiwuChange = {}
if (hero.shiwu?.['1']?._id) {
shiwuChange['1'] = hero.shiwu['1']
}
if (hero.shiwu?.['2']?._id) {
shiwuChange['2'] = hero.shiwu['2']
}
console.log("修复英雄数据:", hero._id, shiwuChange);
let res = await G.mongodb.collection("hero").findOneAndUpdate(
{_id: hero._id}, {$set: {shiwu: shiwuChange}}, {returnDocument: 'after'}
);
console.log("修复更新结果", res.value._id, res.value);
}
// 查找所有赶海数据
let datas = await G.mongodb.collection("ganhai").find(
{ship: {$ne: null}}
).toArray();
for (let i = 0; i < datas.length; i++) {
let up = false;
let data = datas[i];
if (!data.ship) continue;
for (let pos in data.ship.player.roles) {
if (!data.ship.player.roles[pos].shiwu) {
continue
}
for (let idx in data.ship.player.roles[pos].shiwu) {
if (!data.ship.player.roles[pos].shiwu[idx]._id) {
up = true;
delete data.ship.player.roles[pos].shiwu[idx];
}
}
}
if (!up) continue;
let res = (await G.mongodb.collection("ganhai").findOneAndUpdate({_id: data._id}, {
$set: {ship: data.ship}
}, {returnDocument: "after"})).value;
console.log("修复赶海数据结果", res.ship);
}
console.log("开始修复公路狂飙数据...");
// 删除所有人的公路狂飙的对手
await G.mongodb.collection("wanted").updateMany({}, {$unset: {enemys: true}})
}
//定义全局变量
ctor();
//启动服务
start().then(() => {
process.exit()
});