83 lines
2.9 KiB
JavaScript
83 lines
2.9 KiB
JavaScript
// Скрипт для выдачи рефералов и билетов по 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 билетов
|
||
|