Update files

This commit is contained in:
glpshchn 2025-12-08 23:11:50 +03:00
parent f98ebc8e08
commit 56bdedacac
4 changed files with 15 additions and 6 deletions

View File

@ -180,20 +180,26 @@ const authenticate = async (req, res, next) => {
const normalizedStartParam = trimmedParam.toLowerCase(); const normalizedStartParam = trimmedParam.toLowerCase();
if (normalizedStartParam.startsWith('ref_')) { if (normalizedStartParam.startsWith('ref_')) {
// referralCode в базе хранится с префиксом "ref_" в верхнем регистре // Убираем все префиксы ref_/REF_ (может быть двойной префикс ref_REF_)
// Ищем регистронезависимо по полному коду let codeToSearch = trimmedParam;
const escapedCode = trimmedParam.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); while (codeToSearch.toLowerCase().startsWith('ref_')) {
codeToSearch = codeToSearch.substring(4); // Убираем "ref_" или "REF_"
}
// referralCode в базе хранится с префиксом "REF_" (в верхнем регистре)
// Ищем по коду с префиксом REF_
const escapedCode = codeToSearch.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
const referrer = await User.findOne({ const referrer = await User.findOne({
referralCode: { $regex: new RegExp(`^${escapedCode}$`, 'i') } referralCode: { $regex: new RegExp(`^REF_${escapedCode}$`, 'i') }
}); });
if (referrer) { if (referrer) {
referredBy = referrer._id; referredBy = referrer._id;
console.log(`🔗 Реферальная ссылка: пользователь ${normalizedUser.username || normalizedUser.id} зарегистрирован по ссылке от ${referrer.username} (${referrer._id}), код: ${trimmedParam}`); console.log(`🔗 Реферальная ссылка: пользователь ${normalizedUser.username || normalizedUser.id} зарегистрирован по ссылке от ${referrer.username} (${referrer._id}), код: ${trimmedParam} -> REF_${codeToSearch}`);
} else { } else {
// Дополнительная проверка: посмотрим все referralCode в базе для отладки // Дополнительная проверка: посмотрим все referralCode в базе для отладки
const allCodes = await User.find({ referralCode: { $exists: true } }, { referralCode: 1, username: 1 }).limit(5); const allCodes = await User.find({ referralCode: { $exists: true } }, { referralCode: 1, username: 1 }).limit(5);
console.warn(`⚠️ Реферальный код не найден: ${trimmedParam}`); console.warn(`⚠️ Реферальный код не найден: ${trimmedParam} (искали: REF_${codeToSearch})`);
console.warn(` Примеры кодов в базе: ${allCodes.map(u => u.referralCode).join(', ')}`); console.warn(` Примеры кодов в базе: ${allCodes.map(u => u.referralCode).join(', ')}`);
} }
} else { } else {

View File

@ -48,3 +48,4 @@ TagSchema.index({ usageCount: -1 });
module.exports = mongoose.model('Tag', TagSchema); module.exports = mongoose.model('Tag', TagSchema);

View File

@ -61,3 +61,4 @@
0 0 30px rgba(255, 165, 0, 0.4); 0 0 30px rgba(255, 165, 0, 0.4);
} }

View File

@ -10,3 +10,4 @@ export function decodeHtmlEntities(str = '') {
return textarea.value; return textarea.value;
} }