Update files
This commit is contained in:
parent
cd7930699d
commit
7ae1b2b8d8
|
|
@ -174,11 +174,17 @@ const authenticate = async (req, res, next) => {
|
||||||
if (!user) {
|
if (!user) {
|
||||||
// Обработка реферального кода из start_param
|
// Обработка реферального кода из start_param
|
||||||
let referredBy = null;
|
let referredBy = null;
|
||||||
if (startParam && startParam.startsWith('ref_')) {
|
if (startParam) {
|
||||||
const referralCode = startParam;
|
// Проверяем регистронезависимо (может быть ref_ или REF_)
|
||||||
const referrer = await User.findOne({ referralCode });
|
const normalizedStartParam = startParam.toLowerCase();
|
||||||
if (referrer) {
|
if (normalizedStartParam.startsWith('ref_')) {
|
||||||
referredBy = referrer._id;
|
// Ищем реферера по коду (регистронезависимо)
|
||||||
|
const referrer = await User.findOne({
|
||||||
|
referralCode: { $regex: new RegExp(`^${startParam}$`, 'i') }
|
||||||
|
});
|
||||||
|
if (referrer) {
|
||||||
|
referredBy = referrer._id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -195,6 +201,26 @@ const authenticate = async (req, res, next) => {
|
||||||
// Счетчик рефералов увеличивается только когда пользователь создаст первый пост
|
// Счетчик рефералов увеличивается только когда пользователь создаст первый пост
|
||||||
// (см. routes/posts.js)
|
// (см. routes/posts.js)
|
||||||
} else {
|
} else {
|
||||||
|
// Для существующих пользователей тоже можно установить referredBy,
|
||||||
|
// если они еще не создали пост и пришли по реферальной ссылке
|
||||||
|
if (startParam && !user.referredBy) {
|
||||||
|
const normalizedStartParam = startParam.toLowerCase();
|
||||||
|
if (normalizedStartParam.startsWith('ref_')) {
|
||||||
|
const referrer = await User.findOne({
|
||||||
|
referralCode: { $regex: new RegExp(`^${startParam}$`, 'i') }
|
||||||
|
});
|
||||||
|
if (referrer) {
|
||||||
|
// Проверяем, создал ли пользователь уже посты
|
||||||
|
const Post = require('../models/Post');
|
||||||
|
const userPostsCount = await Post.countDocuments({ author: user._id });
|
||||||
|
if (userPostsCount === 0) {
|
||||||
|
// Пользователь еще не создал посты, можно установить referredBy
|
||||||
|
user.referredBy = referrer._id;
|
||||||
|
await user.save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// Обновлять только если есть новые данные, не перезаписывать существующие пустыми значениями
|
// Обновлять только если есть новые данные, не перезаписывать существующие пустыми значениями
|
||||||
if (normalizedUser.username) {
|
if (normalizedUser.username) {
|
||||||
user.username = normalizedUser.username;
|
user.username = normalizedUser.username;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue