Update files
This commit is contained in:
parent
cd7930699d
commit
7ae1b2b8d8
|
|
@ -174,11 +174,17 @@ const authenticate = async (req, res, next) => {
|
|||
if (!user) {
|
||||
// Обработка реферального кода из start_param
|
||||
let referredBy = null;
|
||||
if (startParam && startParam.startsWith('ref_')) {
|
||||
const referralCode = startParam;
|
||||
const referrer = await User.findOne({ referralCode });
|
||||
if (referrer) {
|
||||
referredBy = referrer._id;
|
||||
if (startParam) {
|
||||
// Проверяем регистронезависимо (может быть ref_ или REF_)
|
||||
const normalizedStartParam = startParam.toLowerCase();
|
||||
if (normalizedStartParam.startsWith('ref_')) {
|
||||
// Ищем реферера по коду (регистронезависимо)
|
||||
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)
|
||||
} 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) {
|
||||
user.username = normalizedUser.username;
|
||||
|
|
|
|||
Loading…
Reference in New Issue