From 276ca85bc3e66c47e0ebcce41833d365b897bba1 Mon Sep 17 00:00:00 2001 From: xcy <871622040@qq.com> Date: Wed, 20 Dec 2023 15:20:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=84=9A=E6=9C=AC=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/patch_email_find.ts | 22 +++++++++++++++++ src/path_20231220.ts | 43 ++++++++++++++++++++++++++++++++++ src/queryEmail.ts | 52 +++++++++++++++++++++++++---------------- 3 files changed, 97 insertions(+), 20 deletions(-) create mode 100644 src/patch_email_find.ts create mode 100644 src/path_20231220.ts diff --git a/src/patch_email_find.ts b/src/patch_email_find.ts new file mode 100644 index 0000000..140648d --- /dev/null +++ b/src/patch_email_find.ts @@ -0,0 +1,22 @@ +import {initMongoDB} from "./setMongodb"; +import {ctor} from "./global"; + +async function start() { + await initMongoDB(); + + let emails = await G.mongodb.collection("email").find({ + title: {$regex: "wzry"} + }).toArray(); + + for (let i = 0; i < emails.length; i++) { + console.log(); + } +} + +ctor(); +start().then(() => { + setInterval(() => { + console.log(new Date().format("MM-dd hh:mm:ss")); + }, 1000) + console.log("逻辑执行完成...等待退出!!!"); +}); diff --git a/src/path_20231220.ts b/src/path_20231220.ts new file mode 100644 index 0000000..5649024 --- /dev/null +++ b/src/path_20231220.ts @@ -0,0 +1,43 @@ +import {ctor} from "./global"; +import {initMongoDB} from "./setMongodb"; + +async function start() { + await initMongoDB() + + let datas = await G.mongodb.collection("event").find( + {type: {$in: ["yangchengmubiao100", "yangchengmubiao101"]}} + ).toArray(); + + for (let i = 0; i < datas.length; i++) { + let add = 0; + let data = datas[i]; + if (!Array.isArray(data.taskval)) continue; + let taskval: { [taskid: string]: number } = {}; + for (let i = 0; i < data.taskval.length; i++) { + if (data.taskval[i] === null) continue; + + if (typeof data.taskval[i] == "number") { + add = data.taskval[i]; + } else { + taskval = Object.assign(taskval, data.taskval[i]); + } + } + for (let taskid in taskval) { + taskval[taskid] = (taskval[taskid] || 0) + add; + } + await G.mongodb.collection("event").updateOne( + {uid: data.uid, type: data.type}, {$set: {taskval: taskval}} + ) + console.log(`修复玩家${data.uid}人才计划数据完成...`); + } +} + +ctor(); +start().then(() => { + setInterval(() => { + console.log(new Date().format("MM-dd hh:mm:ss")); + }, 1000) + console.log("逻辑执行完成...等待退出!!!"); +}); + + diff --git a/src/queryEmail.ts b/src/queryEmail.ts index 2a6c5c8..1db1128 100644 --- a/src/queryEmail.ts +++ b/src/queryEmail.ts @@ -1,35 +1,47 @@ -import {MongoClient} from "mongodb"; -import * as ramda from 'ramda' import fs from "fs"; +import {MongoClient} from "mongodb"; -let R = ramda async function start() { + let mongodbUrl = "mongodb://blacklagoon:lffu2bD%5eGn2%5eE%2bE7@blacklagoon-mongo-secondary.pro.g123-cpp.com:3717,blacklagoon-mongo-primary.pro.g123-cpp.com:3717?replicaSet=mgset-351738825" //连接mongodb - let client = await MongoClient.connect('mongodbUrl'); + let client = await MongoClient.connect(mongodbUrl); - console.log('链接成功') + console.log('链接成功'); - let a: any = {} - - for (let i = 1; i < 20; i++) { + let user2email: { [uid: string]: { [title: string]: { prize: any, get_num: number, unget_num: number } } } = {}; + for (let i = 1; i < 49; i++) { let dbName = `blacklagoon_s${i}` console.log(dbName) - let mongodb = client.db(dbName); - a[dbName] = {}; - (await mongodb.collection('email').find({type: 'gm', uid: 'system'}).toArray()).map(i => { - a[dbName][i.title] = R.compose(R.map(i => ({[i[0]]: i.length})), R.values, R.filter(i => i.length > 1), R.groupBy(i => i))(i.prizelist) - console.log(a[dbName][i.title]) - }) - console.log(dbName, '查询完成') - } - fs.writeFileSync('tab.json', JSON.stringify(a, null, 2)) + let mongodb = client.db(dbName); + let emails = await mongodb.collection("email").find({ + title: {$regex: "wzry"} + }).toArray(); + + for (let i = 0; i < emails.length; i++) { + let email = emails[i]; + if (!email.prizeData?.prize) continue; + if (!user2email[email.uid]) { + user2email[email.uid] = {}; + } + if (!user2email[email.uid][email.title]) { + user2email[email.uid][email.title] = { + prize: email.prizeData.prize, + get_num: 0, + unget_num: 0, + } + } + if (email.prizeData.isGet) { + user2email[email.uid][email.title].get_num += 1; + } else { + user2email[email.uid][email.title].unget_num += 1; + } + } + } + fs.writeFileSync('email.json', JSON.stringify(user2email, null, 2)) } -//定义全局变量 -// ctor(); -//启动服务 start().then(() => { process.exit() });