fix:脚本
This commit is contained in:
parent
79fcc6ec85
commit
3b49056a60
@ -1,649 +0,0 @@
|
|||||||
import {ctor} from '../../../heijiao/server/src/global';
|
|
||||||
import {initMongoDB} from '../../../heijiao/server/src/setMongodb';
|
|
||||||
import {EmailFun} from "../../../heijiao/server/src/public/email";
|
|
||||||
|
|
||||||
|
|
||||||
// 首冲
|
|
||||||
async function shouChongReSet() {
|
|
||||||
let shouchong = {
|
|
||||||
"shouchong1": {
|
|
||||||
"paynum": 6,
|
|
||||||
"cartoon": {
|
|
||||||
"hero": 5001
|
|
||||||
},
|
|
||||||
"prize": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "hero",
|
|
||||||
"t": "5001",
|
|
||||||
"n": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 100000
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "12",
|
|
||||||
"n": 200
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 200000
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "12",
|
|
||||||
"n": 200
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "attr",
|
|
||||||
"t": "jinbi",
|
|
||||||
"n": 300000
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"shouchong2": {
|
|
||||||
"paynum": 30,
|
|
||||||
"cartoon": {
|
|
||||||
"img": 5001
|
|
||||||
},
|
|
||||||
"prize": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "equip",
|
|
||||||
"t": "1009",
|
|
||||||
"n": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "equip",
|
|
||||||
"t": "2009",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "equip",
|
|
||||||
"t": "3009",
|
|
||||||
"n": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "2",
|
|
||||||
"n": 1000
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "equip",
|
|
||||||
"t": "4009",
|
|
||||||
"n": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "2",
|
|
||||||
"n": 1000
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"shouchong3": {
|
|
||||||
"paynum": 98,
|
|
||||||
"cartoon": {
|
|
||||||
"hero": 5002
|
|
||||||
},
|
|
||||||
"prize": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "hero",
|
|
||||||
"t": "5002",
|
|
||||||
"n": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "4",
|
|
||||||
"n": 10
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "equip",
|
|
||||||
"t": "1010",
|
|
||||||
"n": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "2",
|
|
||||||
"n": 2000
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"a": "equip",
|
|
||||||
"t": "3010",
|
|
||||||
"n": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "2",
|
|
||||||
"n": 2000
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
let users = await G.mongodb.collection("user").find({}, {
|
|
||||||
projection: {uid: 1, payExp: 1}
|
|
||||||
}).toArray();
|
|
||||||
|
|
||||||
for (let i = 0; i < users.length; i++) {
|
|
||||||
let user = users[i];
|
|
||||||
let data = await G.mongodb.cEvent("shouchong").findOne({uid: user.uid});
|
|
||||||
|
|
||||||
let send_prize = [];
|
|
||||||
for (let key in shouchong) {
|
|
||||||
// 充值不足
|
|
||||||
if (user.payExp < shouchong[key]["paynum"] * 10) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
// 奖励已经领取完毕
|
|
||||||
if (data && data.receive[key] && data.receive[key].length >= shouchong[key]["prize"].length) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
// 补发未领取奖励
|
|
||||||
for (let i = 0; i < shouchong[key]["prize"].length; i++) {
|
|
||||||
if (data.receive[key][i]) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
data.receive[key][i] = G.time;
|
|
||||||
send_prize.concat(shouchong[key]["prize"][i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (send_prize.length <= 0) continue;
|
|
||||||
|
|
||||||
let title = "首充未领取奖励补发";
|
|
||||||
let content = "首充未领取奖励补发";
|
|
||||||
|
|
||||||
// 发放邮件
|
|
||||||
await EmailFun.addEmail({
|
|
||||||
uid: user.uid,
|
|
||||||
type: "system",
|
|
||||||
title: title,
|
|
||||||
content: content,
|
|
||||||
prize: send_prize,
|
|
||||||
});
|
|
||||||
// 设置奖励发放记录
|
|
||||||
await G.mongodb.cEvent("shouchong").updateOne({
|
|
||||||
uid: user.uid
|
|
||||||
}, {"$set": {receive: data.receive, patch: 1}});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*超值月卡、至尊月卡、永久卡的线上玩家脚本
|
|
||||||
线上已购买超值月卡的玩家,脚本补发:招募卡*30
|
|
||||||
线上已购买至尊月卡的玩家,脚本补发:钻石*10000
|
|
||||||
线上已购买永久卡的玩家,脚本补发:汉塞尔*1,能量饮料*500w
|
|
||||||
* */
|
|
||||||
async function yuekaSendPrize() {
|
|
||||||
let w = {
|
|
||||||
key: {$in: ["chaozhiyueka", "zhizunyueka", "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;
|
|
||||||
let proId = user.key;
|
|
||||||
if (!uid2Prize[uid]) uid2Prize[uid] = [];
|
|
||||||
|
|
||||||
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 = "月卡奖励发放";
|
|
||||||
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
|
|
||||||
// 发放邮件
|
|
||||||
await EmailFun.addEmail({
|
|
||||||
uid: uid,
|
|
||||||
type: "system",
|
|
||||||
title: title,
|
|
||||||
content: content,
|
|
||||||
prize: sendPrize,
|
|
||||||
});
|
|
||||||
|
|
||||||
// 处理重复执行
|
|
||||||
await G.mongodb.collection("payLogNew").updateMany(
|
|
||||||
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*特权礼包脚本需求
|
|
||||||
1、特权内容:已购买特权的玩家,特权效果更新
|
|
||||||
2、已购买情报特权的玩家,脚本补发:钻石*680,顶级紫色套装*1
|
|
||||||
3、已购买快速特权的玩家,脚本补发:钻石*300,快速探险券*30
|
|
||||||
4、已购买财富特权的玩家,脚本补发:钻石*300,美金*1000万
|
|
||||||
5、已购买酒馆特权的玩家,脚本补发:钻石*680,招募卡*10
|
|
||||||
* */
|
|
||||||
async function tequanLiBaoSendPrize() {
|
|
||||||
let w = {
|
|
||||||
key: {$in: ["qingbaotequan", "zuozhantequan", "caifutequan", "jiubatequan"]},
|
|
||||||
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;
|
|
||||||
let proId = user.key;
|
|
||||||
|
|
||||||
if (!uid2Prize[uid]) uid2Prize[uid] = [];
|
|
||||||
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 = "特权奖励发放";
|
|
||||||
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
|
|
||||||
// 发放邮件
|
|
||||||
await EmailFun.addEmail({
|
|
||||||
uid: uid,
|
|
||||||
type: "system",
|
|
||||||
title: title,
|
|
||||||
content: content,
|
|
||||||
prize: sendPrize,
|
|
||||||
});
|
|
||||||
await G.mongodb.collection("payLogNew").updateMany(
|
|
||||||
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
刷新所有玩家各档位VIP礼包到未购买状态
|
|
||||||
* */
|
|
||||||
async function resetVipLiBao() {
|
|
||||||
let w = {"type": "chongzhi"};
|
|
||||||
await G.mongodb.collection("playerInfo").updateMany(w, {"giftBy": {}});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
人才计划调整
|
|
||||||
1、线上已有该活动的玩家,保留次数进度;达到新加档位可领取的奖励则直接领取
|
|
||||||
2、线上已购买该活动328计费点的玩家,每次购买记录补发招募卡*20,;
|
|
||||||
3、线上已购买该活动648计费点的玩家,每次购买记录补发招募卡*40,;
|
|
||||||
* */
|
|
||||||
async function rcjhReSet() {
|
|
||||||
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}
|
|
||||||
};
|
|
||||||
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,
|
|
||||||
});
|
|
||||||
await G.mongodb.collection("payLogNew").updateMany(
|
|
||||||
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*等级基金调整
|
|
||||||
1、已购买等级基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发;
|
|
||||||
2、未购买的玩家活动刷新到新版本;
|
|
||||||
3、刷新等级基金到未购买状态;
|
|
||||||
* */
|
|
||||||
async function dengjiJiJinReSet() {
|
|
||||||
let w = {key: "dengjijijin", del_time: {$exists: false}}
|
|
||||||
// 激活了的玩家
|
|
||||||
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 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()
|
|
||||||
|
|
||||||
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
|
|
||||||
_users.forEach((user) => {
|
|
||||||
let uid = user.uid;
|
|
||||||
let idx2Type2Bool = user.rec;
|
|
||||||
if (!uid2Prize[uid]) uid2Prize[uid] = [];
|
|
||||||
|
|
||||||
// 没领的全发
|
|
||||||
prizeList.forEach((con, idx) => {
|
|
||||||
// 普通奖励没领
|
|
||||||
if (!idx2Type2Bool[idx]?.pt) {
|
|
||||||
uid2Prize[uid].push(...con.pt)
|
|
||||||
}
|
|
||||||
// 高级奖励没领
|
|
||||||
if (!idx2Type2Bool[idx]?.tq) {
|
|
||||||
uid2Prize[uid].push(...con.pt)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
|
|
||||||
// 发放邮件
|
|
||||||
await EmailFun.addEmail({
|
|
||||||
uid: uid,
|
|
||||||
type: "system",
|
|
||||||
title: title,
|
|
||||||
content: content,
|
|
||||||
prize: sendPrize,
|
|
||||||
});
|
|
||||||
await G.mongodb.collection("payLogNew").updateMany(
|
|
||||||
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
|
|
||||||
)
|
|
||||||
// 基金数据清除
|
|
||||||
await G.mongodb.collection("event").updateMany(
|
|
||||||
{type: "dengjijijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*关卡基金调整
|
|
||||||
1、已购买关卡基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发;
|
|
||||||
2、未购买的玩家活动刷新到新版本;
|
|
||||||
3、刷新关卡基金到未购买状态;
|
|
||||||
* */
|
|
||||||
async function guanqiaJiJinReSet() {
|
|
||||||
let w = {key: "guanqiajijin"};
|
|
||||||
// 激活了的玩家
|
|
||||||
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 title = "关卡基金未领取奖励发放";
|
|
||||||
let content = "关卡基金未领取奖励发放";
|
|
||||||
let prizeList = G.gc.jijin["guanqiajijin"];
|
|
||||||
|
|
||||||
// 没激活不处理
|
|
||||||
let _users = await G.mongodb.cEvent("guanqiajijin").find(
|
|
||||||
{
|
|
||||||
"uid": {"$in": _payList.map(pay => pay.uid)}
|
|
||||||
},
|
|
||||||
{projection: {_id: 0}}
|
|
||||||
).toArray();
|
|
||||||
|
|
||||||
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
|
|
||||||
_users.forEach(user => {
|
|
||||||
let uid = user.uid;
|
|
||||||
let idx2Type2Bool = user.rec;
|
|
||||||
if (!uid2Prize[uid]) uid2Prize[uid] = [];
|
|
||||||
|
|
||||||
// 没领的全发
|
|
||||||
prizeList.forEach((con, idx) => {
|
|
||||||
// 普通奖励没领
|
|
||||||
if (!idx2Type2Bool[idx]?.pt) {
|
|
||||||
uid2Prize[uid].push(...con.pt)
|
|
||||||
}
|
|
||||||
// 高级奖励没领
|
|
||||||
if (!idx2Type2Bool[idx]?.tq) {
|
|
||||||
uid2Prize[uid].push(...con.tq)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
|
|
||||||
// 发放邮件
|
|
||||||
await EmailFun.addEmail({
|
|
||||||
uid: uid,
|
|
||||||
type: "system",
|
|
||||||
title: title,
|
|
||||||
content: content,
|
|
||||||
prize: sendPrize,
|
|
||||||
});
|
|
||||||
await G.mongodb.collection("payLogNew").updateMany(
|
|
||||||
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
|
|
||||||
)
|
|
||||||
// 基金数据清除
|
|
||||||
await G.mongodb.collection("event").updateMany(
|
|
||||||
{type: "guanqiajijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*通行证基金调整
|
|
||||||
1、已购买通行证基金的玩家且未领取完成的玩家,剩余奖励邮件一次性补发;
|
|
||||||
2、未购买的玩家活动刷新到新版本;
|
|
||||||
3、刷新通行证基金到未购买状态;
|
|
||||||
* */
|
|
||||||
async function dayjiJiJinReSet() {
|
|
||||||
let w = {key: "dayjijin"};
|
|
||||||
|
|
||||||
// 激活了的玩家
|
|
||||||
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 title = "通行证基金未领取奖励发放";
|
|
||||||
let content = "通行证基金未领取奖励发放";
|
|
||||||
let prizeList = G.gc.jijin["dayjijin"];
|
|
||||||
// 没激活不处理
|
|
||||||
let _users = await G.mongodb.cEvent("dayjijin").find(
|
|
||||||
{uid: {$in: _payList.map(pay => pay.uid)}}
|
|
||||||
).toArray();
|
|
||||||
|
|
||||||
let uid2Prize: { [uid: string]: { a: string, t: string, n: number }[] } = {};
|
|
||||||
_users.forEach(user => {
|
|
||||||
let uid = user.uid;
|
|
||||||
let idx2Type2Bool = user.rec;
|
|
||||||
if (!uid2Prize[uid]) uid2Prize[uid] = [];
|
|
||||||
|
|
||||||
// 没领的全发
|
|
||||||
prizeList.forEach((con, idx) => {
|
|
||||||
// 普通奖励没领
|
|
||||||
if (!idx2Type2Bool[idx]?.pt) {
|
|
||||||
uid2Prize[uid].push(...con.pt)
|
|
||||||
}
|
|
||||||
// 高级奖励没领
|
|
||||||
if (!idx2Type2Bool[idx]?.tq) {
|
|
||||||
uid2Prize[uid].push(...con.tq)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
for (const [uid, sendPrize] of Object.entries(uid2Prize)) {
|
|
||||||
// 发放邮件
|
|
||||||
await EmailFun.addEmail({
|
|
||||||
uid: uid,
|
|
||||||
type: "system",
|
|
||||||
title: title,
|
|
||||||
content: content,
|
|
||||||
prize: sendPrize,
|
|
||||||
});
|
|
||||||
await G.mongodb.collection("payLogNew").updateMany(
|
|
||||||
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
|
|
||||||
)
|
|
||||||
// 基金数据清除
|
|
||||||
await G.mongodb.collection("event").updateMany(
|
|
||||||
{type: "dayjijin", uid: uid}, {"$set": {uid: `${uid}_patch_del`}}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*月基金调整
|
|
||||||
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(
|
|
||||||
// 过滤没有结束时间 或者 有结束时间 但是没有过期的
|
|
||||||
(pay) => pay.values?.length > 0 && (!pay.values.slice(-1)[0].eTime || pay.values.slice(-1)[0].eTime > G.time)
|
|
||||||
);
|
|
||||||
|
|
||||||
// 没激活不处理
|
|
||||||
let _users = await G.mongodb.collection("event").find(
|
|
||||||
{
|
|
||||||
"type": {"$in": proIdList},
|
|
||||||
"uid": {"$in": _payList.map(pay => pay.uid)}
|
|
||||||
}
|
|
||||||
).toArray();
|
|
||||||
|
|
||||||
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) => {
|
|
||||||
// 领过了
|
|
||||||
if (gotarr.includes(idx)) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
uid2Prize[uid].push(onePrize)
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
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,
|
|
||||||
});
|
|
||||||
|
|
||||||
await G.mongodb.collection("payLogNew").updateMany(
|
|
||||||
Object.assign({uid: uid}, w), {$set: {patch: 1, del_time: G.time}}
|
|
||||||
)
|
|
||||||
// 基金数据清除
|
|
||||||
await G.mongodb.collection("event").updateMany(
|
|
||||||
{type: {$in: proIdList}, uid: uid}, {"$set": {uid: `${uid}_patch_del`}}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function start() {
|
|
||||||
//连接mongodb
|
|
||||||
await initMongoDB();
|
|
||||||
|
|
||||||
// 首冲调整
|
|
||||||
await shouChongReSet();
|
|
||||||
// 超值月卡、至尊月卡、永久卡的线上玩家脚本
|
|
||||||
await yuekaSendPrize();
|
|
||||||
// 特权礼包脚本需求
|
|
||||||
await tequanLiBaoSendPrize();
|
|
||||||
// 刷新所有玩家各档位VIP礼包到未购买状态
|
|
||||||
await resetVipLiBao();
|
|
||||||
// 人才计划调整
|
|
||||||
await rcjhReSet();
|
|
||||||
// 等级基金调整
|
|
||||||
await dengjiJiJinReSet();
|
|
||||||
// 关卡基金调整
|
|
||||||
await guanqiaJiJinReSet();
|
|
||||||
// 通行证基金调整
|
|
||||||
await dayjiJiJinReSet();
|
|
||||||
// 月基金调整
|
|
||||||
await yueJiJinReSet();
|
|
||||||
}
|
|
||||||
|
|
||||||
//定义全局变量
|
|
||||||
ctor();
|
|
||||||
//启动服务
|
|
||||||
start().then(() => {
|
|
||||||
process.exit()
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user