diff --git a/src/path_20231215.ts b/src/path_20231215.ts index 6c9f3e7..5520e73 100644 --- a/src/path_20231215.ts +++ b/src/path_20231215.ts @@ -1,24 +1,8 @@ import {ctor} from "./global"; import {EmailFun} from "./public/email"; import {initMongoDB} from "./setMongodb"; -import {yangchengmubiao} from "./shared/protocols/event/yangchengmubiao/PtlOpen"; -/** - * 标题:首充优化 - * 日語:初回チャージ仕様改善 - * 繁體:首儲機制改善 - * 韓国語: 초회 충전 시스템 개선 - * 英語: First Top-Up optimization - * - * 內文:这是您的补偿,请查收! - * 日語:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - * 繁體中文:這是您的補償內容,煩請查收! - * 韓国語:투자 시스템 개선으로 인한 보상을 보내드립니다. - * 英語: Please find attached a few items as a compensation for the wait during our adjustments. - * - * 线上玩家脚本 - * 1、已激活首充档位且没领完3天奖励的玩家,邮件补发剩下的奖励 - * 2、重置所有玩家首充活动到新版本状态*/ +// 首冲 async function shouChongReSet() { let shouchong = { "shouchong1": { @@ -185,21 +169,8 @@ async function shouChongReSet() { } if (send_prize.length <= 0) continue; - let title = "首充优化"; - let content = "这是您的补偿,请查收!"; - - let lngTitle = { - en: "First Top-Up optimization", - ja: "初回チャージ仕様改善", - ko: "초회 충전 시스템 개선", - tw: "首儲機制改善" - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; + let title = "首充未领取奖励补发"; + let content = "首充未领取奖励补发"; // 发放邮件 await EmailFun.addEmail({ @@ -208,39 +179,23 @@ async function shouChongReSet() { title: title, content: content, prize: send_prize, - lngTitle: lngTitle, - lngContent: lngContent, }); // 设置奖励发放记录 await G.mongodb.cEvent("shouchong").updateOne({ uid: user.uid }, {"$set": {receive: data.receive, patch: 1}}); - - console.log(`玩家${user.uid}首充奖励补发完成...`); } } -/** - * "zhizunyueka" - 标题:至尊月卡优化 - 日語:豪華月パス仕様改善 - 繁體:至尊月卡改善 - 韓国語:고급 월간 패스 시스템 개선 - 英語: Luxurious Monthly Pass optimization - - 邮件内容:这是您的首充优化补偿,请查收! - 日語:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - 繁體中文:這是您的補償內容,煩請查收! - 韓国語:투자 시스템 개선으로 인한 보상을 보내드립니다. - 英語: Please find attached a few items as a compensation for the wait during our adjustments. - - 线上玩家脚本: - 线上已购买至尊月卡的玩家,脚本补发:钻石*10000 - **/ -async function zhizunyueka() { +/*超值月卡、至尊月卡、永久卡的线上玩家脚本 +线上已购买超值月卡的玩家,脚本补发:招募卡*30 +线上已购买至尊月卡的玩家,脚本补发:钻石*10000 +线上已购买永久卡的玩家,脚本补发:汉塞尔*1,能量饮料*500w +* */ +async function yuekaSendPrize() { let w = { - key: "zhizunyueka", + key: {$in: ["chaozhiyueka", "zhizunyueka", "zhongshenka"]}, del_time: {$exists: false} }; let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( @@ -251,25 +206,25 @@ async function zhizunyueka() { let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; users.forEach(user => { let uid = user.uid; + let proId = user.key; if (!uid2Prize[uid]) uid2Prize[uid] = []; - uid2Prize[uid].push({a: "attr", t: "rmbmoney", n: 10000}); + + switch (proId) { + case "chaozhiyueka": + uid2Prize[uid].push({a: "item", t: "4", n: 30}); + break; + case "zhizunyueka": + uid2Prize[uid].push({a: "attr", t: "rmbmoney", n: 10000}) + break; + case "zhongshenka": + uid2Prize[uid].push({a: "item", t: "1", n: 5000000}) + uid2Prize[uid].push({a: "hero", t: "4012", n: 1}) + break; + } }); - let title = "至尊月卡优化"; - let content = "这是您的首充优化补偿,请查收!"; - let lngTitle = { - en: "Luxurious Monthly Pass optimization", - ja: "豪華月パス仕様改善", - ko: "고급 월간 패스 시스템 개선", - tw: "至尊月卡改善" - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; - + let title = "月卡奖励发放"; + let content = "月卡奖励发放"; for (const [uid, sendPrize] of Object.entries(uid2Prize)) { // 发放邮件 await EmailFun.addEmail({ @@ -278,39 +233,26 @@ async function zhizunyueka() { title: title, content: content, prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, }); // 处理重复执行 await G.mongodb.collection("payLogNew").updateMany( Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} ) - - console.log(`玩家${uid}至尊月卡奖励补发完成...`); } } -/** - * "chaozhiyueka" - 标题 超值月卡优化 - ja:お得月パス仕様改善 - tw:超值月卡改善 - ko:월간 패스 시스템 개선 - en: Value Monthly Pass optimization - 內文: - 这是您的补偿,请查收! - ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - tw:這是您的補償內容,煩請查收! - ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - en: Please find attached a few items as a compensation for the wait during our adjustments. - - 线上已购买超值月卡的玩家,脚本补发:招募卡*30 - **/ -async function chaozhiyueka() { +/*特权礼包脚本需求 +1、特权内容:已购买特权的玩家,特权效果更新 +2、已购买情报特权的玩家,脚本补发:钻石*680,顶级紫色套装*1 +3、已购买快速特权的玩家,脚本补发:钻石*300,快速探险券*30 +4、已购买财富特权的玩家,脚本补发:钻石*300,美金*1000万 +5、已购买酒馆特权的玩家,脚本补发:钻石*680,招募卡*10 +* */ +async function tequanLiBaoSendPrize() { let w = { - key: "chaozhiyueka", + key: {$in: ["qingbaotequan", "zuozhantequan", "caifutequan", "jiubatequan"]}, del_time: {$exists: false} }; let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( @@ -321,25 +263,31 @@ async function chaozhiyueka() { let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; users.forEach(user => { let uid = user.uid; + let proId = user.key; + if (!uid2Prize[uid]) uid2Prize[uid] = []; - uid2Prize[uid].push({a: "item", t: "4", n: 30}); + switch (proId) { + case "qingbaotequan": + uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 680}); + uid2Prize[uid].push({"a": "item", "t": "609", "n": 1}); + break; + case "zuozhantequan": + uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 300}); + uid2Prize[uid].push({"a": "item", "t": "24", "n": 30}); + break; + case "caifutequan": + uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 300}) + uid2Prize[uid].push({"a": "attr", "t": "jinbi", "n": 10000000}) + break; + case "jiubatequan": + uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 680}); + uid2Prize[uid].push({"a": "item", "t": "4", "n": 10}); + break; + } }); - let title = "超值月卡优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "お得月パス仕様改善", - tw: "超值月卡改善", - ko: "월간 패스 시스템 개선", - en: "Value Monthly Pass optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; - + let title = "特权奖励发放"; + let content = "特权奖励发放"; for (const [uid, sendPrize] of Object.entries(uid2Prize)) { // 发放邮件 await EmailFun.addEmail({ @@ -348,502 +296,80 @@ async function chaozhiyueka() { title: title, content: content, prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, }); - - // 处理重复执行 await G.mongodb.collection("payLogNew").updateMany( Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} ) - - console.log(`玩家${uid}超值月卡奖励补发完成...`); - } -} - -/** - * "zhongshenka" - 标题:终身卡优化 - ja:永久パス仕様改善 - tw:永久通行證改善 - ko:영구 패스 시스템 개선 - en: Lifetime Pass optimization - - 內文: 这是您的补偿,请查收! - ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - tw:這是您的補償內容,煩請查收! - ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - en: Please find attached a few items as a compensation for the wait during our adjustments. - - 线上已购买永久卡的玩家,脚本补发:汉塞尔1,能量饮料500w - **/ -async function zhongshenka() { - let w = { - key: "zhongshenka", - del_time: {$exists: false} - }; - let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( - // 过滤没有结束时间 或者 有结束时间 但是没有过期的 - (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) - ); - - let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; - users.forEach(user => { - let uid = user.uid; - if (!uid2Prize[uid]) uid2Prize[uid] = []; - uid2Prize[uid].push({"a": "item", "t": "1", "n": 5000000}) - uid2Prize[uid].push({a: "hero", t: "4012", n: 1}) - }); - - let title = "终身卡优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "永久パス仕様改善", - tw: "永久通行證改善", - ko: "영구 패스 시스템 개선", - en: "Lifetime Pass optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; - - for (const [uid, sendPrize] of Object.entries(uid2Prize)) { - // 发放邮件 - await EmailFun.addEmail({ - uid: uid, - type: "system", - title: title, - content: content, - prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, - }); - - // 处理重复执行 - await G.mongodb.collection("payLogNew").updateMany( - Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} - ) - - console.log(`玩家${uid}终身卡奖励补发完成...`); } } -/** - "qingbaotequan" - 标题:资讯特权优化 - ja:情報特権仕様改善 - tw:資訊特權改善 - ko:정보 특권 시스템 개선 - en: Intel Benefit optimization - - 內文:这是您的补偿,请查收! - ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - tw:這是您的補償內容,煩請查收! - ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - en: Please find attached a few items as a compensation for the wait during our adjustments. - - 线上玩家脚本 - 1、特权内容:已购买特权的玩家,特权效果更新,不重置时间 - 2、已购买资讯特权的玩家,脚本补发:钻石*680,顶级紫色套装*1 - * */ -async function qingbaotequan() { - let w = { - key: "qingbaotequan", - patch: {$exists: false}, - del_time: {$exists: false} - }; - let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( - // 过滤没有结束时间 或者 有结束时间 但是没有过期的 - (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) - ); - - let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; - users.forEach(user => { - let uid = user.uid; - - if (!uid2Prize[uid]) uid2Prize[uid] = []; - uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 680}); - uid2Prize[uid].push({"a": "item", "t": "609", "n": 1}); - }); - - let title = "资讯特权优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "情報特権仕様改善", - tw: "資訊特權改善", - ko: "정보 특권 시스템 개선", - en: "Intel Benefit optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; - for (const [uid, sendPrize] of Object.entries(uid2Prize)) { - // 发放邮件 - await EmailFun.addEmail({ - uid: uid, - type: "system", - title: title, - content: content, - prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, - }); - await G.mongodb.collection("payLogNew").updateMany( - Object.assign({uid: uid}, w), {$set: {patch: 1}} - ) - - console.log(`玩家${uid}特权奖励补发完成...`); - } -} - -/** - "zuozhantequan" - 标题:作战特权优化 - ja:作戦特権仕様改善 tw:作戰特權改善 - ko:작전 특권 시스템 개선 - en: Strategy Benefit optimization - - 內文:这是您的补偿,请查收! - ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - tw:這是您的補償內容,煩請查收! - ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - en: Please find attached a few items as a compensation for the wait during our adjustments. - - 线上玩家脚本 - 1、特权内容:已购买特权的玩家,特权效果更新,不重置时间 - 2、已购买快速特权的玩家,脚本补发:钻石300,快速探险券30 - * */ -async function zuozhantequan() { - let w = { - key: "zuozhantequan", - patch: {$exists: false}, - del_time: {$exists: false} - }; - let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( - // 过滤没有结束时间 或者 有结束时间 但是没有过期的 - (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) - ); - - let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; - users.forEach(user => { - let uid = user.uid; - - if (!uid2Prize[uid]) uid2Prize[uid] = []; - uid2Prize[uid].push({"a": "item", "t": "24", "n": 30}); - uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 300}); - }); - - let title = "作战特权优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "情報特権仕様改善", - tw: "資訊特權改善", - ko: "정보 특권 시스템 개선", - en: "Intel Benefit optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; - for (const [uid, sendPrize] of Object.entries(uid2Prize)) { - // 发放邮件 - await EmailFun.addEmail({ - uid: uid, - type: "system", - title: title, - content: content, - prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, - }); - await G.mongodb.collection("payLogNew").updateMany( - Object.assign({uid: uid}, w), {$set: {patch: 1}} - ) - - console.log(`玩家${uid}特权奖励补发完成...`); - } -} - -/** - "caifutequan" - 标题:资产特权优化 - ja:資産特権仕様改善 - tw:資産特權改善 - ko:자산 특권 시스템 개선 - en: Asset Benefit optimization - - 內文:这是您的补偿,请查收! - ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - tw:這是您的補償內容,煩請查收! - ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - en: Please find attached a few items as a compensation for the wait during our adjustments. - - 线上玩家脚本 - 1、特权内容:已购买特权的玩家,特权效果更新,不重置时间 - 2、已购买资产特权的玩家,脚本补发:钻石*300,美金*1000万 - * */ -async function caifutequan() { - let w = { - key: "caifutequan", - patch: {$exists: false}, - del_time: {$exists: false} - }; - let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( - // 过滤没有结束时间 或者 有结束时间 但是没有过期的 - (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) - ); - - let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; - users.forEach(user => { - let uid = user.uid; - - if (!uid2Prize[uid]) uid2Prize[uid] = []; - uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 300}) - uid2Prize[uid].push({"a": "attr", "t": "jinbi", "n": 10000000}) - }); - - let title = "资产特权优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "資産特権仕様改善", - tw: "資産特權改善", - ko: "자산 특권 시스템 개선", - en: "Asset Benefit optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; - for (const [uid, sendPrize] of Object.entries(uid2Prize)) { - // 发放邮件 - await EmailFun.addEmail({ - uid: uid, - type: "system", - title: title, - content: content, - prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, - }); - await G.mongodb.collection("payLogNew").updateMany( - Object.assign({uid: uid}, w), {$set: {patch: 1}} - ) - - console.log(`玩家${uid}资产特权奖励补发完成...`); - } -} - -/** - "jiubatequan" - 标题:抽奖特权优化 - ja:ガチャ特権仕様改善 - tw:抽獎特權改善 - ko:모집 특권 시스템 개선 - en: Gacha Benefit optimization - - 內文:这是您的补偿,请查收! - ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - tw:這是您的補償內容,煩請查收! - ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - en: Please find attached a few items as a compensation for the wait during our adjustments. - - 线上玩家脚本 - 1、特权内容:已购买特权的玩家,特权效果更新,不重置时间 - 2、已购买抽奖特权的玩家,脚本补发:钻石*680,招募卡*10 - * */ -async function jiubatequan() { - let w = { - key: "jiubatequan", - patch: {$exists: false}, - del_time: {$exists: false} - }; - let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( - // 过滤没有结束时间 或者 有结束时间 但是没有过期的 - (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) - ); - - let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; - users.forEach(user => { - let uid = user.uid; - - if (!uid2Prize[uid]) uid2Prize[uid] = []; - uid2Prize[uid].push({"a": "item", "t": "4", "n": 10}); - uid2Prize[uid].push({"a": "attr", "t": "rmbmoney", "n": 680}); - }); - - let title = "抽奖特权优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "ガチャ特権仕様改善", - tw: "抽獎特權改善", - ko: "모집 특권 시스템 개선", - en: "Gacha Benefit optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; - for (const [uid, sendPrize] of Object.entries(uid2Prize)) { - // 发放邮件 - await EmailFun.addEmail({ - uid: uid, - type: "system", - title: title, - content: content, - prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, - }); - await G.mongodb.collection("payLogNew").updateMany( - Object.assign({uid: uid}, w), {$set: {patch: 1}} - ) - - console.log(`玩家${uid}抽奖特权奖励补发完成...`); - } -} - -/** - 不需要给玩家发送邮件 - - 线上玩家脚本 - 刷新所有玩家各档位VIP礼包到未购买状态 - **/ +/* +刷新所有玩家各档位VIP礼包到未购买状态 +* */ async function resetVipLiBao() { let w = {"type": "chongzhi"}; await G.mongodb.collection("playerInfo").updateMany(w, {"giftBy": {}}); } -/** - 人才计划调整 - 1、线上已有该活动的玩家,保留次数进度;达到新加档位可领取的奖励则直接领取 - **/ +/* +人才计划调整 +1、线上已有该活动的玩家,保留次数进度;达到新加档位可领取的奖励则直接领取 +2、线上已购买该活动328计费点的玩家,每次购买记录补发招募卡*20,; +3、线上已购买该活动648计费点的玩家,每次购买记录补发招募卡*40,; +* */ async function rcjhReSet() { - const hdid = [100, 101]; - const task = { - '2001': { - 'prize': [{'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '626', 'n': 10}], - 'tujing': '', - 'title': 'intr_yczm_day_des_2', - 'type': 2, - 'pval': 50, - 'cond': [], - 'stype': 118 - }, - '2002': { - 'prize': [{'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '626', 'n': 10}], - 'tujing': '', - 'title': 'intr_yczm_day_des_2', - 'type': 2, - 'pval': 100, - 'cond': [], - 'stype': 118 - }, - '2003': { - 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '626', 'n': 20}], - 'tujing': '', - 'title': 'intr_yczm_day_des_2', - 'type': 2, - 'pval': 200, - 'cond': [], - 'stype': 118 - }, - '2004': { - 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}], - 'tujing': '', - 'title': 'intr_yczm_day_des_2', - 'type': 2, - 'pval': 250, - 'cond': [], - 'stype': 118 - }, - '2005': { - 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}], - 'tujing': '', - 'title': 'intr_yczm_day_des_2', - 'type': 2, - 'pval': 300, - 'cond': [], - 'stype': 118 - }, - '2006': { - 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '619', 'n': 1}], - 'tujing': '', - 'title': 'intr_yczm_day_des_2', - 'type': 2, - 'pval': 400, - 'cond': [], - 'stype': 118 - }, - '2007': { - 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '619', 'n': 1}], - 'tujing': '', - 'title': 'intr_yczm_day_des_2', - 'type': 2, - 'pval': 500, - 'cond': [], - 'stype': 118 - } + let proId328 = ["ycmb_1_5", "ycmb_2_4", "ycmb_3_5", "ycmb_4_5", "ycmb_5_5"]; + let proId648 = ["ycmb_1_6", "ycmb_2_5", "ycmb_3_6", "ycmb_4_6", "ycmb_5_6"]; + let w = { + key: {$in: [].concat(proId328, proId648)}, + del_time: {$exists: false} }; - // 中间插入了2004 所以之前的任务id一次往后顺延 - const change = {2004: 2005, 2005: 2006, 2006: 2007}; - // 刷新活动配置 - await G.mongodb.collection("hdinfo").updateOne({hdid: {$in: hdid}}, { - "$set": {'data.tasklist.2': task} - }) - let datas: yangchengmubiao[] = []; - // 刷新玩家领取记录 - datas.concat(await G.mongodb.cEvent(`yangchengmubiao${hdid[0]}`).find().toArray()); - datas.concat(await G.mongodb.cEvent(`yangchengmubiao${hdid[1]}`).find().toArray()); - for (let i = 0; i < datas.length; i++) { - let data = datas[i]; - let finished = data.finishid["2"].map((task) => { - return change[task] ? change[task] : task + let users = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( + // 过滤没有结束时间 或者 有结束时间 但是没有过期的 + (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) + ); + + + let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; + users.forEach(user => { + let uid = user.uid; + let proId = user.key; + + if (!uid2Prize[uid]) { + uid2Prize[uid] = [] + } + if (proId328.includes(proId)) { + uid2Prize[uid].push({"a": "item", "t": "4", "n": 20}) + } else if (proId648.includes(proId)) { + uid2Prize[uid].push({"a": "item", "t": "4", "n": 40}) + } + }); + + let title = "人才计划奖励发放"; + let content = "人才计划奖励发放"; + for (const [uid, sendPrize] of Object.entries(uid2Prize)) { + // 发放邮件 + await EmailFun.addEmail({ + uid: uid, + type: "system", + title: title, + content: content, + prize: sendPrize, }); - let maxtaskval = Math.max(...Object.values(data.taskval)); - let taskval = Object.assign(Object.keys(task).map((taskid) => { - return {taskid: maxtaskval} - })); - await G.mongodb.collection("event").updateOne( - {uid: data.uid, type: data.type}, {$set: {taskval: taskval, "finishid.2": finished}} + await G.mongodb.collection("payLogNew").updateMany( + Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} ) - console.log(`修复玩家${data.uid}人才计划数据完成...`); } } -/** - * 标题:等级基金优化 - * ja:レベル投資仕様改善 - * tw:等級基金改善 - * ko:레벨 투자 시스템 개선 - * en: Level Investment optimization - - * 內文: - * 这是您的补偿,请查收! - * ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - * tw:這是您的補償內容,煩請查收! - * ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - * en: Please find attached a few items as a compensation for the wait during our adjustments. - - * 线上玩家脚本 - * 1、已购买等级基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; - * 2、未购买的玩家活动刷新到新版本; - * 3、刷新等级基金到未购买状态; - */ +/*等级基金调整 +1、已购买等级基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; +2、未购买的玩家活动刷新到新版本; +3、刷新等级基金到未购买状态; +* */ async function dengjiJiJinReSet() { let w = {key: "dengjijijin", del_time: {$exists: false}} // 激活了的玩家 @@ -852,152 +378,9 @@ async function dengjiJiJinReSet() { (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) ); - const prizeList = [ - { - "type": "dengjijijin", - "total": 20, - "pt": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 300 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1700 - } - ] - }, - { - "type": "dengjijijin", - "total": 25, - "pt": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 300 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1700 - } - ] - }, - { - "type": "dengjijijin", - "total": 30, - "pt": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 300 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1700 - } - ] - }, - { - "type": "dengjijijin", - "total": 35, - "pt": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 300 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1700 - } - ] - }, - { - "type": "dengjijijin", - "total": 40, - "pt": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 300 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1700 - } - ] - }, - { - "type": "dengjijijin", - "total": 45, - "pt": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 300 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1700 - } - ] - }, - { - "type": "dengjijijin", - "total": 50, - "pt": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 300 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1700 - } - ] - }, - { - "type": "dengjijijin", - "total": 55, - "pt": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 300 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1700 - } - ] - } - ]; + let title = "等级基金未领取奖励发放"; + let content = "等级基金未领取奖励发放"; + let prizeList = G.gc.jijin["dengjijijin"]; let _users = await G.mongodb.cEvent("dengjijijin").find( {"uid": {"$in": _payList.map(pay => pay.uid)}} ).toArray() @@ -1021,20 +404,6 @@ async function dengjiJiJinReSet() { }); }) - let title = "等级基金优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "レベル投資仕様改善", - tw: "等級基金改善", - ko: "레벨 투자 시스템 개선", - en: "Level Investment optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; for (const [uid, sendPrize] of Object.entries(uid2Prize)) { // 发放邮件 await EmailFun.addEmail({ @@ -1043,8 +412,6 @@ async function dengjiJiJinReSet() { title: title, content: content, prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, }); await G.mongodb.collection("payLogNew").updateMany( Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} @@ -1053,29 +420,15 @@ async function dengjiJiJinReSet() { await G.mongodb.collection("event").updateMany( {type: "dengjijijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}} ); - console.log(`玩家${uid}等级基金奖补发完成...`); } } -/** - * 标题:关卡基金优化 - * ja:ステージ投資仕様改善 - * tw:關卡基金改善 - * ko:스테이지 투자 시스템 개선 - * en: Stage Investment optimization - * - * 內文:这是您的补偿,请查收! - * ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - * tw:這是您的補償內容,煩請查收! - * ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - * en: Please find attached a few items as a compensation for the wait during our adjustments. - - * 线上玩家脚本 - * 1、已购买关卡基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; - * 2、未购买的玩家活动刷新到新版本; - * 3、刷新关卡基金到未购买状态; - * */ +/*关卡基金调整 +1、已购买关卡基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; +2、未购买的玩家活动刷新到新版本; +3、刷新关卡基金到未购买状态; +* */ async function guanqiaJiJinReSet() { let w = {key: "guanqiajijin"}; // 激活了的玩家 @@ -1084,112 +437,9 @@ async function guanqiaJiJinReSet() { (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) ); - const prizeList = [ - { - "type": "guanqiajijin", - "total": 30, - "pt": [], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 2000 - } - ], - "des": "guanqiajijin_des_1" - }, - { - "type": "guanqiajijin", - "total": 50, - "pt": [], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 2000 - } - ], - "des": "guanqiajijin_des_2" - }, - { - "type": "guanqiajijin", - "total": 70, - "pt": [], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 2000 - } - ], - "des": "guanqiajijin_des_3" - }, - { - "type": "guanqiajijin", - "total": 90, - "pt": [], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 2000 - } - ], - "des": "guanqiajijin_des_4" - }, - { - "type": "guanqiajijin", - "total": 110, - "pt": [], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 2000 - } - ], - "des": "guanqiajijin_des_5" - }, - { - "type": "guanqiajijin", - "total": 150, - "pt": [], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 2000 - } - ], - "des": "guanqiajijin_des_6" - }, - { - "type": "guanqiajijin", - "total": 180, - "pt": [], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 2000 - } - ], - "des": "guanqiajijin_des_7" - }, - { - "type": "guanqiajijin", - "total": 250, - "pt": [], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 2000 - } - ], - "des": "guanqiajijin_des_8" - } - ]; + let title = "关卡基金未领取奖励发放"; + let content = "关卡基金未领取奖励发放"; + let prizeList = G.gc.jijin["guanqiajijin"]; // 没激活不处理 let _users = await G.mongodb.cEvent("guanqiajijin").find( @@ -1218,20 +468,6 @@ async function guanqiaJiJinReSet() { }); }) - let title = "关卡基金优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "ステージ投資仕様改善", - tw: "關卡基金改善", - ko: "스테이지 투자 시스템 개선", - en: "Stage Investment optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; for (const [uid, sendPrize] of Object.entries(uid2Prize)) { // 发放邮件 await EmailFun.addEmail({ @@ -1240,8 +476,6 @@ async function guanqiaJiJinReSet() { title: title, content: content, prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, }); await G.mongodb.collection("payLogNew").updateMany( Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} @@ -1250,29 +484,15 @@ async function guanqiaJiJinReSet() { await G.mongodb.collection("event").updateMany( {type: "guanqiajijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}} ); - console.log(`玩家${uid}关卡基金奖补发完成...`); } } -/** - * 标题:特别通行证优化 - * ja:特別通行証仕様改善 - * tw:特別通行證改善 - * ko:특별 통행증 시스템 개선 - * en: Special Permit optimization - - * 內文:这是您的补偿,请查收! - * ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - * tw:這是您的補償內容,煩請查收! - * ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - * en: Please find attached a few items as a compensation for the wait during our adjustments. - - * 线上玩家脚本 - * 1、已购买通行证基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; - * 2、未购买的玩家活动刷新到新版本; - * 3、刷新通行证基金到未购买状态; - * */ +/*通行证基金调整 +1、已购买通行证基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; +2、未购买的玩家活动刷新到新版本; +3、刷新通行证基金到未购买状态; +* */ async function dayjiJiJinReSet() { let w = {key: "dayjijin"}; @@ -1282,260 +502,9 @@ async function dayjiJiJinReSet() { (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) ); - const prizeList = [ - { - "type": "dayjijin", - "total": 5, - "pt": [ - { - "a": "item", - "t": "23", - "n": 20000 - } - ], - "tq": [ - { - "a": "item", - "t": "4", - "n": 5 - } - ] - }, - { - "type": "dayjijin", - "total": 15, - "pt": [ - { - "a": "item", - "t": "2", - "n": 200 - } - ], - "tq": [ - { - "a": "item", - "t": "2", - "n": 2000 - } - ] - }, - { - "type": "dayjijin", - "total": 30, - "pt": [ - { - "a": "item", - "t": "23", - "n": 20000 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 888 - } - ] - }, - { - "type": "dayjijin", - "total": 45, - "pt": [ - { - "a": "item", - "t": "2", - "n": 200 - } - ], - "tq": [ - { - "a": "item", - "t": "615", - "n": 1 - } - ] - }, - { - "type": "dayjijin", - "total": 60, - "pt": [ - { - "a": "item", - "t": "23", - "n": 20000 - } - ], - "tq": [ - { - "a": "item", - "t": "4", - "n": 5 - } - ] - }, - { - "type": "dayjijin", - "total": 75, - "pt": [ - { - "a": "item", - "t": "2", - "n": 300 - } - ], - "tq": [ - { - "a": "item", - "t": "2", - "n": 2000 - } - ] - }, - { - "type": "dayjijin", - "total": 90, - "pt": [ - { - "a": "item", - "t": "23", - "n": 20000 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 888 - } - ] - }, - { - "type": "dayjijin", - "total": 105, - "pt": [ - { - "a": "item", - "t": "2", - "n": 300 - } - ], - "tq": [ - { - "a": "item", - "t": "615", - "n": 1 - } - ] - }, - { - "type": "dayjijin", - "total": 120, - "pt": [ - { - "a": "item", - "t": "23", - "n": 20000 - } - ], - "tq": [ - { - "a": "item", - "t": "4", - "n": 5 - } - ] - }, - { - "type": "dayjijin", - "total": 135, - "pt": [ - { - "a": "item", - "t": "2", - "n": 400 - } - ], - "tq": [ - { - "a": "item", - "t": "2", - "n": 2000 - } - ] - }, - { - "type": "dayjijin", - "total": 150, - "pt": [ - { - "a": "item", - "t": "23", - "n": 20000 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 888 - } - ] - }, - { - "type": "dayjijin", - "total": 165, - "pt": [ - { - "a": "item", - "t": "2", - "n": 400 - } - ], - "tq": [ - { - "a": "item", - "t": "615", - "n": 1 - } - ] - }, - { - "type": "dayjijin", - "total": 180, - "pt": [ - { - "a": "item", - "t": "23", - "n": 20000 - } - ], - "tq": [ - { - "a": "item", - "t": "4", - "n": 5 - } - ] - }, - { - "type": "dayjijin", - "total": 200, - "pt": [ - { - "a": "item", - "t": "2", - "n": 500 - } - ], - "tq": [ - { - "a": "attr", - "t": "rmbmoney", - "n": 1888 - } - ] - } - ]; + let title = "通行证基金未领取奖励发放"; + let content = "通行证基金未领取奖励发放"; + let prizeList = G.gc.jijin["dayjijin"]; // 没激活不处理 let _users = await G.mongodb.cEvent("dayjijin").find( {uid: {$in: _payList.map(pay => pay.uid)}} @@ -1560,20 +529,6 @@ async function dayjiJiJinReSet() { }); }) - let title = "特别通行证优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "特別通行証仕様改善", - tw: "特別通行證改善", - ko: "특별 통행증 시스템 개선", - en: "Special Permit optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; for (const [uid, sendPrize] of Object.entries(uid2Prize)) { // 发放邮件 await EmailFun.addEmail({ @@ -1582,8 +537,6 @@ async function dayjiJiJinReSet() { title: title, content: content, prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, }); await G.mongodb.collection("payLogNew").updateMany( Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} @@ -1592,31 +545,20 @@ async function dayjiJiJinReSet() { await G.mongodb.collection("event").updateMany( {type: "dayjijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}} ); - - console.log(`玩家${uid}通行证基金奖补发完成...`); } } -/** - * 标题:特价基金优化 - * ja:特価投資仕様改善 - * tw:特價基金改善 - * ko:특가 투자 시스템 개선 - * en: Value Investment optimization - - * 內文:这是您的补偿,请查收! - * ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - * tw:這是您的補償內容,煩請查收! - * ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - * en: Please find attached a few items as a compensation for the wait during our adjustments. - - * 线上玩家脚本 - * 1、已购买特价基金128的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; - * 2、未购买的玩家活动刷新到新版本; - * 3、刷新月基金到未购买状态; - * */ -async function yue128JiJinReSet() { - let w = {key: "128jijin"}; +/*月基金调整 +1、已购买128、328月基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; +2、未购买的玩家活动刷新到新版本; +3、刷新月基金到未购买状态; +* */ +async function yueJiJinReSet() { + let proIdList = [ + "128jijin", + "328jijin", + ]; + let w = {key: {$in: proIdList}}; // 激活了的玩家 let _payList = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( // 过滤没有结束时间 或者 有结束时间 但是没有过期的 @@ -1624,51 +566,22 @@ async function yue128JiJinReSet() { ); // 没激活不处理 - let _users = await G.mongodb.cEvent(`${128}jijin`).find( + let _users = await G.mongodb.collection("event").find( { + "type": {"$in": proIdList}, "uid": {"$in": _payList.map(pay => pay.uid)} } ).toArray(); - const prizeList = [ - {a: 'item', t: '4', n: 10}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'item', t: '9', n: 2000}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'item', t: '609', n: 1}, - {a: 'item', t: '4', n: 10}, - {a: 'attr', t: 'rmbmoney', n: 500}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'item', t: '18', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'item', t: '6', n: 20}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'item', t: '9', n: 3000}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'item', t: '4', n: 10}, - {a: 'attr', t: 'rmbmoney', n: 500}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'item', t: '20', n: 200}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'item', t: '9', n: 3000}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 1000}, - {a: 'item', t: '628', n: 1}, - ]; let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; - + let prizeList128 = G.gc.yuedujijin.find(v => v.payId == "128jijin"); + let prizeList328 = G.gc.yuedujijin.find(v => v.payId == "328jijin"); _users.forEach(user => { let uid = user.uid; let gotarr = user.rec; if (!uid2Prize[uid]) uid2Prize[uid] = []; + let prizeList = user.type == "128jijin" ? prizeList128.prize : prizeList328.prize; // 没领的全发 prizeList.forEach((onePrize, idx) => { // 领过了 @@ -1679,20 +592,8 @@ async function yue128JiJinReSet() { }); }) - let title = "特价基金优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "特価投資仕様改善", - tw: "特價基金改善", - ko: "특가 투자 시스템 개선", - en: "Value Investment optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; + let title = "月度基金未领取奖励发放"; + let content = "月度基金未领取奖励发放"; for (const [uid, sendPrize] of Object.entries(uid2Prize)) { // 发放邮件 await EmailFun.addEmail({ @@ -1701,139 +602,15 @@ async function yue128JiJinReSet() { title: title, content: content, prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, }); await G.mongodb.collection("payLogNew").updateMany( Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} ) // 基金数据清除 - await G.mongodb.cEvent(`${128}jijin`).updateMany( - {uid: uid}, {"$set": {uid: `${uid}_patch_del`}} + await G.mongodb.collection("event").updateMany( + {type: {$in: proIdList}, uid: uid}, {"$set": {uid: `${uid}_patch_del`}} ); - - console.log(`玩家${uid}月度128基金奖补发完成...`); - } -} - -/** - * 标题:特别基金优化 - * ja:特別投資仕様改善 - * tw:特別基金改善 - * ko:특별 투자 시스템 개선 - * en: Special Investment optimization - - * 內文:这是您的补偿,请查收! - * ja:仕様改善に伴う補填を発送させていただきました。ご確認ください。 - * tw:這是您的補償內容,煩請查收! - * ko:투자 시스템 개선으로 인한 보상을 보내드립니다. - * en: Please find attached a few items as a compensation for the wait during our adjustments. - - * 线上玩家脚本 - * 1、已购买特别基金328的玩家且未领取完成的玩家,剩余奖励邮件一次性补发; - * 2、未购买的玩家活动刷新到新版本; - * 3、刷新月基金到未购买状态; - * */ -async function yue328JiJinReSet() { - let w = {key: "328jijin"}; - // 激活了的玩家 - let _payList = (await G.mongodb.collection("payLogNew").find(w).toArray()).filter( - // 过滤没有结束时间 或者 有结束时间 但是没有过期的 - (pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time) - ); - - // 没激活不处理 - let _users = await G.mongodb.cEvent(`${328}jijin`).find( - { - "uid": {"$in": _payList.map(pay => pay.uid)} - } - ).toArray(); - - const prizeList = [ - {a: 'item', t: '4', n: 30}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'item', t: '10', n: 300}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'item', t: '628', n: 1}, - {a: 'item', t: '4', n: 20}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'item', t: '628', n: 1}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'item', t: '628', n: 1}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'item', t: '628', n: 1}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'item', t: '4', n: 20}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'item', t: '10', n: 400}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'item', t: '10', n: 400}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 800}, - {a: 'attr', t: 'rmbmoney', n: 1500}, - {a: 'item', t: '617', n: 1}, - ]; - let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {}; - - _users.forEach(user => { - let uid = user.uid; - let gotarr = user.rec; - if (!uid2Prize[uid]) uid2Prize[uid] = []; - - // 没领的全发 - prizeList.forEach((onePrize, idx) => { - // 领过了 - if (gotarr.includes(idx)) { - return - } - uid2Prize[uid].push(onePrize) - }); - }) - - let title = "特别基金优化"; - let content = "这是您的补偿,请查收!"; - let lngTitle = { - ja: "特別投資仕様改善", - tw: "特別基金改善", - ko: "특별 투자 시스템 개선", - en: "Special Investment optimization", - }; - let lngContent = { - en: "Please find attached a few items as a compensation for the wait during our adjustments.", - ja: "仕様改善に伴う補填を発送させていただきました。ご確認ください。", - ko: "투자 시스템 개선으로 인한 보상을 보내드립니다.", - tw: "這是您的補償內容,煩請查收!" - }; - for (const [uid, sendPrize] of Object.entries(uid2Prize)) { - // 发放邮件 - await EmailFun.addEmail({ - uid: uid, - type: "system", - title: title, - content: content, - prize: sendPrize, - lngTitle: lngTitle, - lngContent: lngContent, - }); - - await G.mongodb.collection("payLogNew").updateMany( - Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}} - ) - // 基金数据清除 - await G.mongodb.cEvent(`${328}jijin`).updateMany( - {uid: uid}, {"$set": {uid: `${uid}_patch_del`}} - ); - - console.log(`玩家${uid}月度128基金奖补发完成...`); } } @@ -1841,29 +618,31 @@ async function start() { //连接mongodb await initMongoDB(); + // 首冲调整 await shouChongReSet(); - await zhizunyueka(); - await chaozhiyueka(); - await zhongshenka(); - await qingbaotequan(); - await zuozhantequan(); - await caifutequan(); - await jiubatequan(); + // 超值月卡、至尊月卡、永久卡的线上玩家脚本 + await yuekaSendPrize(); + // 特权礼包脚本需求 + await tequanLiBaoSendPrize(); + // 刷新所有玩家各档位VIP礼包到未购买状态 await resetVipLiBao(); + // 人才计划调整 await rcjhReSet(); + // 等级基金调整 await dengjiJiJinReSet(); + // 关卡基金调整 await guanqiaJiJinReSet(); + // 通行证基金调整 await dayjiJiJinReSet(); - await yue128JiJinReSet(); - await yue328JiJinReSet(); + // 月基金调整 + await yueJiJinReSet(); } +//定义全局变量 ctor(); +//启动服务 start().then(() => { - setInterval(() => { - console.log(new Date().format("MM-dd hh:mm:ss")); - }, 1000) - console.log("逻辑执行完成...等待退出!!!"); + process.exit() });