This commit is contained in:
paoloar77
2022-02-03 00:33:15 +01:00
parent c391ca85c3
commit daf872fe55
20 changed files with 651 additions and 4831 deletions

View File

@@ -6,14 +6,15 @@ const _ = require('lodash');
const tools = require('../tools/general');
const {Flotta} = require('../models/flotta');
const {Settings} = require('../models/settings');
const {ListaIngresso} = require('../models/listaingresso');
// const {ListaIngresso} = require('../models/listaingresso');
const {Graduatoria} = require('../models/graduatoria');
const {Nave} = require('../models/nave');
const {NavePersistente} = require('../models/navepersistente');
// const {Nave} = require('../models/nave');
// const {NavePersistente} = require('../models/navepersistente');
// const { ExtraList } = require('../models/extralist');
const {MyGroup} = require('../models/mygroup');
const {ObjectID} = require('mongodb');
const shared_consts = require('../tools/shared_nodejs');
@@ -341,6 +342,12 @@ const UserSchema = new mongoose.Schema({
username: {type: String},
date: {type: Date},
}], // username
groups: [
{
_id: false,
groupname: {type: String},
date: {type: Date},
}], // username
},
})
;
@@ -657,12 +664,9 @@ UserSchema.statics.getUserShortDataByUsername = async function(
if (myrec) {
myrec.qualified = await User.isUserQualified7(idapp, myrec.username);
myrec.numNaviEntrato = await Nave.getnumNaviByUsername(idapp,
myrec.username);
myrec.numinvitati = await ListaIngresso.getnumInvitati(idapp,
myrec.username);
myrec.numinvitatiattivi = await ListaIngresso.getnumInvitatiAttivi(idapp,
myrec.username);
myrec.numNaviEntrato = 0;
// myrec.numinvitati = await ListaIngresso.getnumInvitati(idapp, myrec.username);
// myrec.numinvitatiattivi = await ListaIngresso.getnumInvitatiAttivi(idapp, myrec.username);
}
return myrec;
@@ -674,37 +678,7 @@ UserSchema.statics.getDownlineByUsername = async function(
if (username === undefined)
return null;
let arrrec = await ListaIngresso.getInvitati(idapp, username, includemyself,
{
index: 1,
lang: 1,
invitante_username: 1,
ind_order: 1,
username: 1,
name: 1,
surname: 1,
verified_email: 1,
'profile.teleg_id': 1,
// 'profile.saw_zoom_presentation': 1,
'profile.ask_zoom_partecipato': 1,
'profile.qualified': 1,
'profile.qualified_2invitati': 1,
'profile.saw_and_accepted': 1,
'profile.email_paypal': 1,
'profile.payeer_id': 1,
'profile.advcash_id': 1,
'profile.revolut': 1,
'profile.link_payment': 1,
'profile.note_payment': 1,
// 'profile.my_dream': 1,
'profile.paymenttypes': 1,
'profile.cell': 1,
made_gift: 1,
email: 1,
date_reg: 1,
img: 1,
},
);
let arrrec = [];
let myq = {
idapp,
@@ -716,44 +690,6 @@ UserSchema.statics.getDownlineByUsername = async function(
myq = {...myq, username: {$ne: username}};
}
// Ottieni gli invitati che ancora non hanno un'imbarco
const arrinv = await User.find(myq);
for (const inv of arrinv) {
if (!arrrec.find((rec) => rec.username === inv.username))
arrrec.push(inv._doc);
}
const arrusername = [];
for (const inv of arrrec) {
const rectrovato = arrusername.find((rec) => inv.username === rec.username);
if (!!rectrovato) {
rectrovato.quanti++;
} else {
const myrec = {...inv};
myrec.quanti = 1;
arrusername.push(myrec);
}
}
arrrec = arrusername;
if (!onlynumber) {
if (!!arrrec) {
for (const rec of arrrec) {
rec.qualified = await User.isUserQualified7(idapp, rec.username);
rec.numNaviEntrato = await Nave.getnumNaviByUsername(idapp,
rec.username);
rec.numinvitati = await ListaIngresso.getnumInvitati(idapp,
rec.username);
rec.numinvitatiattivi = await ListaIngresso.getnumInvitatiAttivi(idapp,
rec.username);
}
}
}
return arrrec;
};
@@ -961,6 +897,7 @@ UserSchema.statics.setUserQualified_2Invitati = async function(
return !!myrec;
};
/*
UserSchema.statics.isUserQualified9 = async function(idapp, username) {
const User = this;
@@ -968,11 +905,12 @@ UserSchema.statics.isUserQualified9 = async function(idapp, username) {
return false;
qualified = await User.isUserQualified7(idapp, username);
numinvitatiattivi = await ListaIngresso.getnumInvitatiAttivi(idapp, username);
// numinvitatiattivi = await ListaIngresso.getnumInvitatiAttivi(idapp, username);
return qualified && (numinvitatiattivi >= 2);
};
*/
/*
UserSchema.statics.getnumPaymentOk = function (idapp) {
@@ -1201,6 +1139,16 @@ UserSchema.statics.getUserById = function(idapp, id) {
});
};
UserSchema.statics.getUserByUsername = function(idapp, username) {
const User = this;
return User.findOne({
idapp,
username,
$or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}],
});
};
UserSchema.statics.isMyFriend = async function(idapp, username, myusername) {
const myfriends = await User.getUsernameFriendsByUsername(idapp, myusername);
@@ -1337,11 +1285,11 @@ UserSchema.statics.getArrUsernameFromFieldByUsername = async function(
UserSchema.statics.getUsernameReqFriendsByUsername = async function(
idapp, username) {
return this.getArrUsernameFromFieldByUsername(idapp, username, 'profile',
'req_friends');
return this.getArrUsernameFromFieldByUsername(idapp, username, 'profile', 'req_friends');
};
UserSchema.statics.getUsernameFriendsByUsername = async function(
idapp, username) {
@@ -1350,12 +1298,25 @@ UserSchema.statics.getUsernameFriendsByUsername = async function(
};
UserSchema.statics.getUsernameGroupsByUsername = async function(
idapp, username) {
return this.getArrUsernameFromFieldByUsername(idapp, username, 'profile', 'groups');
};
// Rimuovo l'Amicizia
UserSchema.statics.removeFriend = async function(idapp, username, usernameDest) {
return User.updateOne({idapp, username},
{$pull: {'profile.friends': {username: {$in: [usernameDest]}}}});
};
// Rimuovo il Gruppo
UserSchema.statics.removeFromMyGroups = async function(idapp, username, groupnameDest) {
return User.updateOne({idapp, username},
{$pull: {'profile.groups': {groupname: {$in: [groupnameDest]}}}});
};
// Rimuovo la Richiesta di Amicizia
UserSchema.statics.removeReqFriend = async function(idapp, username, usernameDest) {
return User.updateOne({idapp, username: username},
@@ -1496,8 +1457,106 @@ UserSchema.statics.setFriendsCmd = async function(
return ris;
};
UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameDest, cmd, value) {
let ris = null;
let update = {};
try {
if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
// Aggiungo l'Amicizia a me
const foundIfAlreadyGroup = await User.findOne({
idapp,
username: usernameOrig,
'profile.groups': {
$elemMatch: {groupname: {$eq: groupnameDest}},
},
});
if (!foundIfAlreadyGroup) {
update = {
$push: {
'profile.groups': {
groupname: groupnameDest,
date: new Date(),
},
},
};
ris = await User.updateOne({idapp, username: usernameOrig}, update);
update = {$pull: {'profile.req_groups': {groupname: {$in: [groupnameDest]}}}};
ris = await User.updateOne({idapp, username: usernameOrig}, update);
}
if (ris) {
ris = await MyGroup.getInfoGroupByGroupname(idapp, groupnameDest);
}
} else if (cmd === shared_consts.GROUPSCMD.REQGROUP) {
// Aggiungo la richiesta di Amicizia a me
const foundIfAlreadyAskGroup = await MyGroup.findOne({
idapp,
groupname: groupnameDest,
'req_groups': {
$elemMatch: { username: {$eq: usernameOrig}},
},
});
if (value) {
if (!foundIfAlreadyAskGroup) {
update = {
$push: {
'profile.req_groups': {
username: usernameOrig,
date: new Date(),
},
},
};
ris = await User.updateOne({idapp, username: groupnameDest}, update);
}
if (ris) {
// Invia una notifica alla persona
tools.sendNotificationByGroupName(idapp, groupnameDest, cmd, true);
}
} else {
if (foundIfAlreadyAskGroup) {
ris = await this.removeFromMyGroups(idapp, groupnameDest, usernameOrig); // Rimuovo l'Amicizia da me
}
}
if (ris) {
ris = await User.getInfoAskGroupByUsername(idapp, groupnameDest);
}
} else if (cmd === shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUPS) {
ris = await this.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
} else if (cmd === shared_consts.GROUPSCMD.CANCEL_REQ_GROUP) {
ris = await MyGroup.removeReqGroup(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
} else if (cmd === shared_consts.GROUPSCMD.BLOCK_GROUP) {
await this.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
// Blocco il Gruppo
ris = await MyGroup.updateOne({idapp, username: groupnameDest}, {
$set: {
blocked: true,
username_who_block: usernameOrig,
date_blocked: new Date(),
},
});
//++Todo: Send Notification to Admin and Group's manager
}
} catch (e) {
console.error('Error: ', e);
}
return ris;
};
function getWhatToShow(idapp, username) {
//++Todo: check which data to show
return {
username: 1,
aportador_solidario: 1,
@@ -1841,6 +1900,8 @@ UserSchema.statics.getNameSurnameById = async function(idapp, userId) {
UserSchema.statics.getSmallRecByIndOrder = async function(idapp, ind_order) {
try {
const rec = {};
/*
const rec = await ListaIngresso.getarray(idapp,
{
idapp,
@@ -1864,6 +1925,8 @@ UserSchema.statics.getSmallRecByIndOrder = async function(idapp, ind_order) {
if (!!rec)
return rec[0];
*/
return null;
} catch (e) {
@@ -1889,7 +1952,7 @@ UserSchema.statics.getRecByIndOrder = async function(idapp, ind_order) {
const User = this;
try {
/*
let filters = {
idapp: 1,
index: 1,
@@ -1920,6 +1983,8 @@ UserSchema.statics.getRecByIndOrder = async function(idapp, ind_order) {
if (!!rec)
return rec[0];
*/
return null;
} catch (e) {
@@ -2147,99 +2212,6 @@ UserSchema.statics.getDashboard = async function(
if (!!arrap)
dashboard.numpeople_aportador = arrap.length;
dashboard.arrimbarchi = await ListaIngresso.findAllByUsername(idapp,
username);
// dashboard.arrprofili = await Nave.getArrProfiliByIndOrder(idapp, dashboard.myself.ind_order);
dashboard.arrposizioni = await Nave.getArrPosizioniByUsername(idapp,
username);
/* let arrrec = [];
if (dashboard.arrimbarchi.length > 0) {
arrrec = await ListaIngresso.getProssimiInLista(idapp, true);
}*/
for (let myimbarco of dashboard.arrimbarchi) {
if (!!myimbarco.invitante_username)
dashboard.arrusers[myimbarco.invitante_username] = await User.getUserShortDataByUsername(
idapp, myimbarco.invitante_username);
myimbarco._doc.posiz = await Graduatoria.getPosizioneInGraduatoria(idapp,
myimbarco.ind_order, myimbarco.username, myimbarco.num_tess);
}
dashboard.navi_partenza = await NavePersistente.getListaNavi(idapp);
dashboard.lastnave = await NavePersistente.getLastNave(idapp);
for (let mypos of dashboard.arrposizioni) {
mypos.rec = await Nave.getNaveByRigaCol(idapp, mypos.riga, mypos.col);
mypos.nave_partenza = await NavePersistente.findByRigaColByDonatore(idapp,
mypos.riga, mypos.col, 0);
if (!!mypos.nave_partenza)
mypos.flotta = await Flotta.getFlottaByNavePersistente(idapp,
mypos.nave_partenza);
}
//for (let indriga = 0; indriga < 10; indriga++) {
// dashboard.navi_partenza.push(await Nave.getPrimaNaveByRiga(idapp, indriga));
//}
const arrnew = [];
try {
for (let mypos of dashboard.arrposizioni) {
// Controlla se è presente la Nave con il num_tess pari
let trovato = false;
if (mypos.num_tess % 2 !== 0) {
for (let myrec of dashboard.arrposizioni) {
if (myrec.num_tess === mypos.num_tess + 1 &&
(myrec.ind_order === mypos.ind_order)) {
// La Nave di Ritorno (numtess = 2) esiste nella lista !
trovato = true;
break;
}
}
} else {
trovato = true;
}
if (!trovato) {
let myr = null;
if (!!mypos._doc)
myr = mypos._doc;
else
myr = mypos;
if (!!myr && !!myr.rec.mediatore) {
const mymediatore = myr.rec.mediatore.arrdonatori[7];
if (!!mymediatore) {
const myrec = {
riga: mymediatore.riga,
col: mymediatore.col,
name: myr.rec.mediatore.recmediatore.name,
surname: myr.rec.mediatore.recmediatore.surname,
username: myr.rec.mediatore.recmediatore.username,
num_tess: myr.rec.mediatore.recmediatore.num_tess + 1,
rec: await Nave.getNaveByRigaCol(idapp, mymediatore.riga,
mymediatore.col),
nave_partenza: {},
};
myrec.nave_partenza = await NavePersistente.findByRigaColByDonatore(
idapp, myrec.riga, myrec.col, 0);
arrnew.push(myrec);
}
}
}
}
} catch (e) {
console.error(e.message);
}
dashboard.arrposizioni = [...dashboard.arrposizioni, ...arrnew];
// console.table(dashboard.arrnavi);
return dashboard;
@@ -2377,131 +2349,6 @@ UserSchema.statics.getUsersQualified = async function (idapp, numinvitati) {
};
*/
UserSchema.statics.visuUtentiNonInNavi = async function(idapp) {
const User = this;
const arrusers = await User.find({
idapp,
$and: User.getQueryQualified(),
}, {
name: 1,
surname: 1,
username: 1,
ind_order: 1,
deleted: 1,
sospeso: 1,
});
let num = 0;
let innave = 0;
let noninnave = 0;
let mystr = 'visuUtentiNonInNavi: ' + tools.ACAPO;
let reg = 0;
let num0inv = 0;
let num1inv = 0;
let num2inv = 0;
let numnoinlista = 0;
let numeliminati = 0;
let numsospesi = 0;
let strnavidoppie = '';
let esiste = false;
for (const user of arrusers) {
esiste = true;
if (!!user.deleted) {
if (user.deleted) {
numeliminati++;
esiste = false;
}
}
if (esiste) {
let visualizza = false;
// Controlla se ho un doppione nelle Navi !
let mienavi = await Nave.find({idapp, ind_order: user.ind_order},
{num_tess: 1});
let strnavidoppie = [];
if (!!mienavi) {
strnavidoppie = mienavi.reduce((acc, currentValue, index, array) => {
if (array.indexOf(currentValue.num_tess) > -1 &&
!acc.includes(currentValue.num_tess))
acc.push(currentValue.num_tess);
return acc;
}, []);
}
if (strnavidoppie.length > 1) {
visualizza = true;
}
user.numinvitati = await ListaIngresso.getnumInvitati(idapp,
user.username);
reg++;
let mianave = await Nave.findOne({idapp, ind_order: user.ind_order});
let mialistaingresso = await ListaIngresso.findOne(
{idapp, ind_order: user.ind_order});
let trovato = false;
if (!mianave)
visualizza = true;
if (visualizza) {
mystr += user.username + ' ' + user.name + ' ' + user.surname + ' [' +
user.index + '] [inv=' + user.numinvitati + ']';
trovato = true;
}
if (strnavidoppie.length > 1) {
mystr += ' NAVI DUPLICATE! ' + strnavidoppie.join(',');
}
if (!mianave)
noninnave++;
else
innave++;
if (user.sospeso) {
numsospesi++;
}
if (!mialistaingresso) {
mystr += ' NO IN LISTA INGRESSO!';
trovato = true;
numnoinlista++;
}
if (trovato)
mystr += tools.ACAPO;
if (user.numinvitati === 0) {
num0inv++;
}
if (user.numinvitati === 1) {
num1inv++;
}
if (user.numinvitati >= 2) {
num2inv++;
}
}
}
mystrstart = 'Registrati: ' + reg + tools.ACAPO;
mystrstart += '0 Invitati: ' + num0inv + tools.ACAPO;
mystrstart += '1 Invitato: ' + num1inv + tools.ACAPO;
mystrstart += '2 o più Invitati: ' + num2inv + tools.ACAPO;
mystrstart += 'Presente in Nave: ' + innave + tools.ACAPO;
mystrstart += 'Non in Nave: ' + noninnave + tools.ACAPO;
mystrstart += 'Non in Lista Imbarco: ' + numnoinlista + tools.ACAPO;
mystrstart += 'Usciti (Nascosti): ' + numeliminati + tools.ACAPO;
mystrstart += 'Sospesi: ' + numsospesi + tools.ACAPO;
mystrstart += tools.ACAPO;
mystr = mystrstart + mystr;
return {num, mystr};
};
// UserSchema.statics.getNumUsersQualified = async function (idapp, numinvitati) {
//
@@ -2639,12 +2486,15 @@ UserSchema.statics.checkUser = async function(idapp, username) {
UserSchema.statics.calculateStat = async function(idapp, username) {
const User = this;
/*
return calcstat = {
numinvitati: await ListaIngresso.getnumInvitati(idapp, username),
numinvitati_attivi: await ListaIngresso.getnumInvitatiAttivi(idapp,
username),
};
*/
};
UserSchema.statics.getDistinctNationalityQuery = function(idapp) {
@@ -2804,44 +2654,6 @@ if (tools.INITDB_FIRSTIME) {
// UserSchema.index({ surname: 1 });
}
async function addUtentiInLista(idapp, mode, arrusers) {
let num = 0;
for (const rec of arrusers) {
let ok = false;
let qualified = await User.isUserQualified7(idapp, rec.username);
let numinvitatiattivi = await ListaIngresso.getnumInvitatiAttivi(idapp,
rec.username);
let numinvitati = await ListaIngresso.getnumInvitati(idapp, rec.username);
if (rec.profile.special_req) {
numinvitatiattivi = 2;
}
if (mode === 1) {
// 9 punti qualificati
ok = qualified && (numinvitatiattivi >= 2);
} else if (mode === 2) {
// 8 punti qualificati ( 1 Invitato)
ok = qualified && (numinvitati === 2);
} else if (mode === 3) {
ok = qualified && (numinvitatiattivi === 1);
} else if (mode === 4) {
ok = qualified && (numinvitati === 1);
} else if (mode === 5) {
ok = qualified;
}
if (ok) {
ris = await ListaIngresso.addUserInListaIngresso(idapp, rec.username,
rec.aportador_solidario, rec.lang, false, true);
if (!!ris)
num++;
}
}
return num;
}
UserSchema.statics.getUsernameByIndOrder = async function(idapp, ind_order) {
@@ -2886,85 +2698,11 @@ UserSchema.statics.ricalcolaIndex = async function(idapp) {
};
UserSchema.statics.changeInvitante = async function(
idapp, username, invitante_username, ind_order_ingr) {
const User = this;
const rec_ind_order_prima = await ListaIngresso.findOne({idapp, username});
let modif_aportador = false;
// cambia aportador_solidario solo se è la prima nave!
// Oppure se ancora non sono in Lista!
if (!rec_ind_order_prima) {
modif_aportador = true;
} else {
if (rec_ind_order_prima.ind_order === ind_order_ingr) {
modif_aportador = true;
}
}
if (modif_aportador) {
await User.findOneAndUpdate({idapp, username},
{$set: {aportador_solidario: invitante_username}});
}
// **
// ** Cambia invitante_username e ind_order di LISTAINGRESSO
// **
const rec_ingr = await ListaIngresso.findOne({idapp, username: username});
if (!!rec_ingr) {
// await ListaIngresso.findByIdAndUpdate(rec_ingr._id, { $set: { invitante_username, ind_order: ind_order_ingr } });
await ListaIngresso.findByIdAndUpdate(rec_ingr._id,
{$set: {invitante_username}});
}
};
UserSchema.statics.NessunaNavePresenteByUsername = async function(
idapp, username) {
const User = this;
const rec = await User.findOne({idapp, username},
{username: 1, ind_order: 1});
if (!!rec) {
// Controlla se è qualificato!
const qualified = await User.isUserQualified7(idapp, rec.username);
if (qualified) {
// Ha un'imbarco almeno?
const arrimbarchi = await ListaIngresso.findOne({
idapp, username: rec.username,
$or: [
{deleted: {$exists: false}},
{deleted: {$exists: true, $eq: false}}],
});
const arrnavi = await Nave.findOne({
idapp, ind_order: rec.old_order,
});
if (!arrimbarchi && !arrnavi) {
// NEANCHE 1 !
const recout = await User.findOneAndUpdate({
idapp,
username,
}, {$set: {navinonpresenti: true}}, {new: false});
return (!!recout);
}
}
}
return false;
};
UserSchema.statics.getInfoUser = async function(idapp, username) {
return {
username,
is7req: await User.isUserQualified7(idapp, username),
is9req: await User.isUserQualified9(idapp, username),
// is9req: await User.isUserQualified9(idapp, username),
};
};
@@ -2978,37 +2716,15 @@ UserSchema.statics.checkIfSbloccatiRequisiti = async function(
if (!allData.myuser)
return false;
if (await Nave.checkIfNaveExist(idapp, allData.myuser.username)) {
// Se già sei dentro la Nave, allora sei OK
return true; //TOGLEREE
}
//if (await Nave.checkIfNaveExist(idapp, allData.myuser.username)) {
// // Se già sei dentro la Nave, allora sei OK
// return true; //TOGLEREE
//}
// Controlla se Sblocca i 7 requisiti
const is7req = await User.isUserQualified7(idapp, allData.myuser.username);
const is9req = await User.isUserQualified9(idapp, allData.myuser.username);
const userlista = await ListaIngresso.getListaTessByUsername(idapp,
allData.myuser.username);
//if (userlista.length > 0) { //TOGLIERE
if (userlista.length === 0) {
// Se non sono ancora dentro alla lista, allora controllo
if (!!allData.precDataUser) {
if ((!allData.precDataUser.is7req && is7req) &&
!await User.isUserAlreadyQualified(idapp, allData.myuser.username)) {
await User.setUserQualified(idapp, allData.myuser.username);
// ORA HAI I 7 REQUISITI !
// const msgtext = telegrambot.getCiao(idapp, allData.myuser.username, allData.myuser.lang) + tools.gettranslate('HAI_I_7_REQUISITI', allData.myuser.lang);
// telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, true); // Anche a STAFF
// Aggiungilo alla ListaIngresso
risingr = await ListaIngresso.addUserInListaIngresso(idapp,
allData.myuser.username, allData.myuser.aportador_iniziale,
allData.myuser.lang, true, false);
}
}
}
const is9req = false;
// const is9req = await User.isUserQualified9(idapp, allData.myuser.username);
if (!!allData.precDataUser) {
if ((!allData.precDataUser.is9req && is9req) &&
@@ -3107,57 +2823,6 @@ UserSchema.statics.mettiSognoePaypal = async function(idapp, modifica) {
};
UserSchema.statics.flagUtentiNaviNonPresenti = async function(idapp) {
const User = this;
let num = 0;
await User.updateMany({idapp}, {$set: {navinonpresenti: false}});
arrusers = await User.find({
'idapp': idapp,
$or: [
{deleted: {$exists: false}},
{deleted: {$exists: true, $eq: false}},
{subaccount: {$exists: false}},
{subaccount: {$exists: true, $eq: false}}],
});
for (const rec of arrusers) {
const nessunanave = await User.NessunaNavePresenteByUsername(idapp,
rec.username);
if (nessunanave)
num++;
}
return {num};
};
UserSchema.statics.addNavePerUtentiNaviNonPresenti = async function(idapp) {
const User = this;
let num = 0;
arrusers = await User.find({
'idapp': idapp,
navinonpresenti: true,
});
for (const user of arrusers) {
// Controlla se è qualificato!
mydata = tools.AddDate(user.date_reg, 7);
const newrecingr = await ListaIngresso.addUserInListaIngresso(idapp,
user.username, user.aportador_solidario, user.lang, true, true, mydata);
await tools.snooze(1000);
num++;
}
return {num};
};
UserSchema.statics.convSubAccount = async function(idapp) {
const User = this;
@@ -3269,6 +2934,18 @@ UserSchema.statics.addExtraInfo = async function(idapp, recUser) {
}, {username: 1});
recUser._doc.profile.asked_friends = listSentMyRequestFriends ? listSentMyRequestFriends : [];
const listSentMyRequestGroups = await User.find({
idapp,
'profile.req_groups': {
$elemMatch: {username: {$eq: recUser.username}},
},
$or: [
{deleted: {$exists: false}},
{deleted: {$exists: true, $eq: false}}],
}, {username: 1});
recUser._doc.profile.asked_groups = listSentMyRequestGroups ? listSentMyRequestGroups : [];
}catch (e){
console.error('Err', e);
}