nakama/backend/scripts/giveReferrals.mongosh.js

83 lines
2.9 KiB
JavaScript
Raw Permalink Normal View History

2025-12-08 15:12:23 +00:00
// Скрипт для выдачи рефералов и билетов по username
// Использование:
// var username = "USERNAME";
// load('backend/scripts/giveReferrals.mongosh.js')
// ============================================
// ВАРИАНТ 1: УКАЗАТЬ USERNAME В СКРИПТЕ
// ============================================
var username = "ЗАМЕНИТЕ_НА_USERNAME";
var user = db.users.findOne({ username: username });
if (!user) {
print("❌ Пользователь с username '" + username + "' не найден!");
} else {
print("👤 Пользователь: " + user.username + " (ID: " + user._id + ")");
print(" Текущий счетчик рефералов: " + (user.referralsCount || 0));
print(" Текущие билеты: " + (user.tickets || 0));
// Увеличить счетчик рефералов на 2
var newReferralsCount = (user.referralsCount || 0) + 2;
// Увеличить билеты: 100 билетов за каждого реферала (2 реферала = 200 билетов)
var newTickets = (user.tickets || 0) + (2 * 100);
var result = db.users.updateOne(
{ _id: user._id },
{
$set: {
referralsCount: newReferralsCount,
tickets: newTickets
}
}
);
if (result.modifiedCount > 0) {
print("\n✅ УСПЕШНО!");
print(" Рефералы: " + (user.referralsCount || 0) + " -> " + newReferralsCount);
print(" Билеты: " + (user.tickets || 0) + " -> " + newTickets);
} else {
print("\n⚠ Не удалось обновить данные пользователя");
}
}
// ============================================
// ВАРИАНТ 2: ФУНКЦИЯ ДЛЯ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ
// ============================================
function giveReferrals(username, referralsCount, ticketsCount) {
var user = db.users.findOne({ username: username });
if (!user) {
print("❌ Пользователь '" + username + "' не найден!");
return false;
}
var newReferralsCount = (user.referralsCount || 0) + (referralsCount || 0);
// 100 билетов за каждого реферала
var ticketsToAdd = (referralsCount || 0) * 100;
var newTickets = (user.tickets || 0) + ticketsToAdd;
var result = db.users.updateOne(
{ _id: user._id },
{
$set: {
referralsCount: newReferralsCount,
tickets: newTickets
}
}
);
if (result.modifiedCount > 0) {
print("✅ " + username + ": рефералы " + (user.referralsCount || 0) + " -> " + newReferralsCount + ", билеты " + (user.tickets || 0) + " -> " + newTickets);
return true;
}
return false;
}
// Использование функции:
// giveReferrals("username", 2, 2); // Выдать 2 реферала и 2 билета
// giveReferrals("username", 5, 10); // Выдать 5 рефералов и 10 билетов