SubAccounts
This commit is contained in:
@@ -91,6 +91,31 @@ NaveSchema.statics.findByIndOrder = function (idapp, ind_order) {
|
||||
}
|
||||
};
|
||||
|
||||
NaveSchema.statics.checkIfNaveExist = async function (idapp, username) {
|
||||
const Nave = this;
|
||||
|
||||
try {
|
||||
|
||||
const arrlista = await ListaIngresso.find({
|
||||
idapp,
|
||||
username,
|
||||
// added: true,
|
||||
deleted: false,
|
||||
});
|
||||
|
||||
for (const rec of arrlista) {
|
||||
const mynave = await Nave.find({ idapp, ind_order: rec.ind_order });
|
||||
if (!!mynave)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
NaveSchema.statics.findByIndOrderAndNumTess = function (idapp, ind_order, num_tess) {
|
||||
const Nave = this;
|
||||
|
||||
@@ -108,9 +133,34 @@ NaveSchema.statics.findByIndOrderAndNumTess = function (idapp, ind_order, num_te
|
||||
NaveSchema.statics.findById = function (idapp, id) {
|
||||
const Nave = this;
|
||||
|
||||
const myquery = getQueryProj({ idapp, '_id': ObjectID(id) });
|
||||
const { User } = require('./user');
|
||||
|
||||
return Nave.aggregate(myquery);
|
||||
const myquery = getQueryProj({ idapp, '_id': id });
|
||||
|
||||
return Nave.aggregate(myquery)
|
||||
.then(async (rec) => {
|
||||
try {
|
||||
if (!!rec) {
|
||||
if (rec.length > 0) {
|
||||
const ris = await User.findByIndOrder(idapp, rec[0].ind_order);
|
||||
if (!!ris) {
|
||||
if (!!ris._doc)
|
||||
rec[0] = { ...rec[0], ...ris._doc };
|
||||
else
|
||||
rec[0] = { ...rec[0], ...ris };
|
||||
return rec[0];
|
||||
}
|
||||
return rec[0];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}catch (e) {
|
||||
console.error(e.message);
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
@@ -176,7 +226,7 @@ NaveSchema.statics.findDonatoreByNave = function (idapp, nave) {
|
||||
|
||||
return Nave.findOne(miaquery);
|
||||
} catch (e) {
|
||||
|
||||
console.error(e.message);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -243,16 +293,13 @@ NaveSchema.statics.findRecByRigaColParent = async function (idapp, riga, col, nu
|
||||
|
||||
recfind = await Nave.findById(idapp, myrec.parent_id);
|
||||
if (!!recfind) {
|
||||
if (recfind.length > 0) {
|
||||
recfind = recfind[0];
|
||||
lastrec = recfind;
|
||||
myrigacol.riga = lastrec.riga;
|
||||
myrigacol.col = lastrec.col;
|
||||
} else {
|
||||
//lastrec = await User.findByIndOrder(idapp, 0);
|
||||
lastrec = await Nave.findGeneric({ idapp, riga: 0, col: 0 });
|
||||
break;
|
||||
}
|
||||
lastrec = recfind;
|
||||
myrigacol.riga = lastrec.riga;
|
||||
myrigacol.col = lastrec.col;
|
||||
} else {
|
||||
//lastrec = await User.findByIndOrder(idapp, 0);
|
||||
lastrec = await Nave.findGeneric({ idapp, riga: 0, col: 0 });
|
||||
break;
|
||||
}
|
||||
}
|
||||
parentup++;
|
||||
@@ -267,43 +314,6 @@ NaveSchema.statics.findRecByRigaColParent = async function (idapp, riga, col, nu
|
||||
|
||||
};
|
||||
|
||||
function getlimiti(mypos) {
|
||||
|
||||
if (mypos.col < 0) {
|
||||
mypos.col = 0;
|
||||
}
|
||||
|
||||
if (mypos.riga < 0) {
|
||||
mypos.riga = 0;
|
||||
mypos.col = 0;
|
||||
}
|
||||
|
||||
return mypos;
|
||||
}
|
||||
|
||||
function getRigaColGenerica(idapp, riga, col, numup) {
|
||||
mypos = {
|
||||
idapp,
|
||||
riga,
|
||||
col,
|
||||
numup
|
||||
};
|
||||
|
||||
if (idapp === tools.AYNI) {
|
||||
tools.getRigaColByPosUp(mypos);
|
||||
ris = getlimiti(mypos);
|
||||
}
|
||||
|
||||
return ris;
|
||||
}
|
||||
|
||||
function getRigaColSognatoreByFuoco(idapp, riga, col) {
|
||||
return getRigaColGenerica(idapp, riga, col, 6);
|
||||
}
|
||||
|
||||
function getRigaColMediatoreByFuoco(idapp, riga, col) {
|
||||
return getRigaColGenerica(idapp, riga, col, 3);
|
||||
}
|
||||
|
||||
NaveSchema.statics.findGeneric = function (myrigacol) {
|
||||
|
||||
@@ -339,17 +349,17 @@ NaveSchema.statics.findGeneric = function (myrigacol) {
|
||||
if (!!newrec) {
|
||||
let myarr = {};
|
||||
if (rec[0]._doc === undefined)
|
||||
myarr = { ...newrec._doc, ...rec[0] };
|
||||
myarr = { ...newrec, ...rec[0] };
|
||||
else
|
||||
myarr = { ...newrec._doc, ...rec[0]._doc };
|
||||
myarr = { ...newrec, ...rec[0]._doc };
|
||||
return myarr;
|
||||
} else {
|
||||
let myarr = rec[0];
|
||||
if (!!newrec) {
|
||||
if (rec[0]._doc === undefined)
|
||||
myarr = { ...newrec._doc, ...rec[0] };
|
||||
myarr = { ...newrec, ...rec[0] };
|
||||
else
|
||||
myarr = { ...newrec._doc, ...rec[0]._doc };
|
||||
myarr = { ...newrec, ...rec[0]._doc };
|
||||
}
|
||||
return myarr;
|
||||
}
|
||||
@@ -403,9 +413,11 @@ function getQueryProj(myfilter) {
|
||||
name: 1,
|
||||
surname: 1,
|
||||
username: 1,
|
||||
invitante_username: 1,
|
||||
deleted: 1,
|
||||
sospeso: 1,
|
||||
'profile.paymenttypes': 1,
|
||||
'profile.teleg_id': 1,
|
||||
'profile.email_paypal': 1,
|
||||
'profile.cell': 1,
|
||||
made_gift: 1,
|
||||
@@ -433,10 +445,32 @@ function getQueryProj(myfilter) {
|
||||
{ $match: myfilter },
|
||||
{
|
||||
$lookup: {
|
||||
from: "users",
|
||||
from: "listaingressos",
|
||||
localField: "ind_order",
|
||||
foreignField: "ind_order", // field in the user collection
|
||||
as: "user"
|
||||
as: "mylista"
|
||||
}
|
||||
},
|
||||
{
|
||||
$unwind: "$mylista"
|
||||
},
|
||||
{
|
||||
$lookup: {
|
||||
from: "users",
|
||||
as: "user",
|
||||
let: {username: '$mylista.username' },
|
||||
pipeline: [
|
||||
{
|
||||
$match: {
|
||||
$expr: {
|
||||
$and: [
|
||||
{ $eq: ['$username', '$$username'] },
|
||||
{ $eq: ['$idapp', myfilter.idapp] },
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -521,32 +555,34 @@ NaveSchema.statics.getPlaccaGenerica = async function (idapp, riga, col, offset,
|
||||
let recmediatore = await Nave.findMediatoreByFuoco(idapp, riga, col, offset);
|
||||
let navepersistente = await NavePersistente.findByRigaColByDonatore(idapp, riga, col, offset);
|
||||
|
||||
mystr = tools.ACAPO;
|
||||
if (!solorecord) {
|
||||
mystr = tools.ACAPO;
|
||||
|
||||
mystr += 'GIFTING CHAT (' + riga + '.' + col + ') ' + tools.ACAPO + tools.ACAPO;
|
||||
mystr += 'GIFTING CHAT (' + riga + '.' + col + ') ' + tools.ACAPO + tools.ACAPO;
|
||||
|
||||
if (offset === tools.Placca.SONOFUOCO) {
|
||||
mystr += tools.Placca.SOGNATORE + tools.Placca.STR_SOGNATORE + ': ' + await getusertextbyrec(recsognatori[0], '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
|
||||
mystr += tools.Placca.MEDIATORE + tools.Placca.STR_MEDIATORE + ': ' + await getusertextbyrec(recmediatore, '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
|
||||
}
|
||||
if (offset === tools.Placca.SONOFUOCO) {
|
||||
mystr += tools.Placca.SOGNATORE + tools.Placca.STR_SOGNATORE + ': ' + await getusertextbyrec(recsognatori[0], '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
|
||||
mystr += tools.Placca.MEDIATORE + tools.Placca.STR_MEDIATORE + ': ' + await getusertextbyrec(recmediatore, '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
|
||||
}
|
||||
|
||||
if (offset === tools.Placca.SONOACQUA) {
|
||||
mystr += tools.Placca.SOGNATORE + tools.Placca.STR_SOGNATORE + ': ' + await getusertextbyrec(recmediatore, '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
|
||||
}
|
||||
if (offset === tools.Placca.SONOACQUA) {
|
||||
mystr += tools.Placca.SOGNATORE + tools.Placca.STR_SOGNATORE + ': ' + await getusertextbyrec(recmediatore, '', '', riga, col, '') + tools.ACAPO + tools.ACAPO;
|
||||
}
|
||||
|
||||
let symb = {
|
||||
car: 'D',
|
||||
icona: '🔥'
|
||||
};
|
||||
|
||||
if (offset === tools.Placca.SONOFUOCO) {
|
||||
mystr += tools.Placca.STR_DONATORI + ':' + tools.ACAPO;
|
||||
} else if (offset === tools.Placca.SONOACQUA) {
|
||||
mystr += tools.Placca.STR_MEDIATORI + ':' + tools.ACAPO;
|
||||
symb = {
|
||||
car: 'A',
|
||||
icona: '💦'
|
||||
let symb = {
|
||||
car: 'D',
|
||||
icona: '🔥'
|
||||
};
|
||||
|
||||
if (offset === tools.Placca.SONOFUOCO) {
|
||||
mystr += tools.Placca.STR_DONATORI + ':' + tools.ACAPO;
|
||||
} else if (offset === tools.Placca.SONOACQUA) {
|
||||
mystr += tools.Placca.STR_MEDIATORI + ':' + tools.ACAPO;
|
||||
symb = {
|
||||
car: 'A',
|
||||
icona: '💦'
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// mystr += '🔥🌏💦💨🔥🌏💦💨' + tools.ACAPO;
|
||||
@@ -573,7 +609,9 @@ NaveSchema.statics.getPlaccaGenerica = async function (idapp, riga, col, offset,
|
||||
recfuoco = checkifNullThenEmpty(recfuoco, indr, indc);
|
||||
arrdonatori.push({ index: ind, ...recfuoco });
|
||||
|
||||
mystr += await getusertextbyrec(recfuoco, symb.icona, symb.car, indr, indc, ind) + tools.ACAPO;
|
||||
if (!solorecord) {
|
||||
mystr += await getusertextbyrec(recfuoco, symb.icona, symb.car, indr, indc, ind) + tools.ACAPO;
|
||||
}
|
||||
ind++;
|
||||
}
|
||||
|
||||
@@ -777,45 +815,82 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
|
||||
|
||||
};
|
||||
|
||||
async function Fuochi8Completati(idapp, params) {
|
||||
// Inviare un msg al Mediatore che può aprire la Chat con gli 8 fuochi
|
||||
const telegrambot = require('../telegram/telegrambot');
|
||||
|
||||
let text = '\nCompletata NAVE [riga=' + params.riga + ',col=' + params.col + ', ind_order=' + params.ind_order + ']';
|
||||
console.log(text);
|
||||
tools.writeNaveLog(text);
|
||||
|
||||
const { User } = require('./user');
|
||||
|
||||
const rec = await User.findByIndOrder(idapp, params.ind_order);
|
||||
|
||||
text = await Nave.getNaveByUser(idapp, params.ind_order, rec.lang, true);
|
||||
|
||||
// Inviare un msg a questi 8 Fuochi, che la loro placca è Pronta !
|
||||
|
||||
if (tools.isAbilitaNave(idapp)) {
|
||||
// .............
|
||||
}
|
||||
|
||||
if (false) {
|
||||
await telegrambot.sendMsgTelegram(idapp, rec.username, text, true);
|
||||
} else {
|
||||
await telegrambot.sendMsgTelegramToTheAdmin(idapp, text);
|
||||
}
|
||||
|
||||
// Inviare la placca a Managers
|
||||
// await telegrambot.sendMsgTelegramToTheManagers(idapp, txt);
|
||||
}
|
||||
// async function Fuochi8Completati(idapp, params) {
|
||||
// // Inviare un msg al Mediatore che può aprire la Chat con gli 8 fuochi
|
||||
// const telegrambot = require('../telegram/telegrambot');
|
||||
//
|
||||
// let text = '\nCompletata NAVE [riga=' + params.riga + ',col=' + params.col + ', ind_order=' + params.ind_order + ']';
|
||||
// console.log(text);
|
||||
// tools.writeNaveLog(text);
|
||||
//
|
||||
// const { User } = require('./user');
|
||||
//
|
||||
// const rec = await User.findByIndOrder(idapp, params.ind_order);
|
||||
//
|
||||
// text = await Nave.getNaveByUser(idapp, params.ind_order, rec.lang, true);
|
||||
//
|
||||
// // Inviare un msg a questi 8 Fuochi, che la loro placca è Pronta !
|
||||
//
|
||||
// if (tools.isAbilitaNave(idapp)) {
|
||||
// // .............
|
||||
// }
|
||||
//
|
||||
// if (false) {
|
||||
// await telegrambot.sendMsgTelegram(idapp, rec.username, text, true);
|
||||
// } else {
|
||||
// await telegrambot.sendMsgTelegramToTheAdmin(idapp, text);
|
||||
// }
|
||||
//
|
||||
// // Inviare la placca a Managers
|
||||
// // await telegrambot.sendMsgTelegramToTheManagers(idapp, txt);
|
||||
// }
|
||||
|
||||
NaveSchema.statics.getArrPosizioniByIndOrder = async function (idapp, ind_order) {
|
||||
const Nave = this;
|
||||
|
||||
|
||||
arrposizioni = await Nave.find({ 'idapp': idapp, ind_order }).sort({ riga: 1, col: 1 });
|
||||
arrposizioni = await Nave.find({ idapp, ind_order }).sort({ riga: 1, col: 1 });
|
||||
|
||||
return arrposizioni;
|
||||
};
|
||||
|
||||
NaveSchema.statics.getArrPosizioniByUsername = async function (idapp, username) {
|
||||
const Nave = this;
|
||||
|
||||
const { ListaIngresso } = require('./listaingresso');
|
||||
|
||||
try {
|
||||
const arrrec_indorder = await ListaIngresso.findByAllRecByUsername(idapp, username).distinct("ind_order");
|
||||
|
||||
let arrposizioni = [];
|
||||
|
||||
for (const ind_order of arrrec_indorder) {
|
||||
const arr = await Nave.find({ 'idapp': idapp, ind_order }).sort({ riga: 1, col: 1 });
|
||||
if (!!arr)
|
||||
arrposizioni = [...arrposizioni, ...arr];
|
||||
}
|
||||
|
||||
return arrposizioni;
|
||||
} catch (e) {
|
||||
console.error(e.message);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
NaveSchema.statics.getArrProfiliByIndOrder = async function (idapp, ind_order) {
|
||||
const Nave = this;
|
||||
|
||||
arrposizioni = await Nave.find({ 'idapp': idapp, ind_order }).sort({ riga: 1, col: 1 });
|
||||
|
||||
arrprofili = [];
|
||||
|
||||
// Ind_Order
|
||||
// Ind_order_base
|
||||
|
||||
|
||||
return arrprofili;
|
||||
};
|
||||
|
||||
NaveSchema.statics.getPrimaNaveByRiga = async function (idapp, riga) {
|
||||
const Nave = this;
|
||||
|
||||
@@ -1174,32 +1249,36 @@ NaveSchema.statics.visuNaviUtentiEliminati = async function (idapp) {
|
||||
};
|
||||
|
||||
|
||||
NaveSchema.statics.getNaveByUser = async function (idapp, ind_order, lang, fuoco) {
|
||||
NaveSchema.statics.getNaveByUser = async function (idapp, username, lang, fuoco) {
|
||||
const Nave = this;
|
||||
|
||||
let mystr = '';
|
||||
let rec = {};
|
||||
const arrposiz = await Nave.getArrPosizioniByIndOrder(idapp, ind_order);
|
||||
if (!!arrposiz) {
|
||||
for (const pos of arrposiz) {
|
||||
let mypos = {
|
||||
riga: pos.riga,
|
||||
col: pos.col,
|
||||
numup: 3,
|
||||
};
|
||||
tools.getRigaColByPosUp(mypos);
|
||||
try {
|
||||
const arrposiz = await Nave.getArrPosizioniByUsername(idapp, username);
|
||||
if (!!arrposiz) {
|
||||
for (const pos of arrposiz) {
|
||||
let mypos = {
|
||||
riga: pos.riga,
|
||||
col: pos.col,
|
||||
numup: 3,
|
||||
};
|
||||
tools.getRigaColByPosUp(mypos);
|
||||
|
||||
let persistente = await NavePersistente.findByRigaColByDonatore(idapp, pos.riga, pos.col, 0);
|
||||
if (!!persistente) {
|
||||
if (persistente.provvisoria) {
|
||||
mystr += tools.ACAPO + tools.get__('NAVE', lang) + ' ' + '[' + mypos.riga + '.' + mypos.col + '] - ' + tools.get__('TEMPORANEA', lang) + tools.ACAPO+ tools.ACAPO;
|
||||
} else {
|
||||
mystr += await Nave.getNavePos(idapp, mypos.riga, mypos.col, false, ind_order);
|
||||
let persistente = await NavePersistente.findByRigaColByDonatore(idapp, pos.riga, pos.col, 0);
|
||||
if (!!persistente) {
|
||||
if (persistente.provvisoria) {
|
||||
mystr += tools.ACAPO + tools.get__('NAVE', lang) + ' ' + '[' + mypos.riga + '.' + mypos.col + '] - ' + tools.get__('TEMPORANEA', lang) + tools.ACAPO + tools.ACAPO;
|
||||
} else {
|
||||
mystr += await Nave.getNavePos(idapp, mypos.riga, mypos.col, false, ind_order);
|
||||
}
|
||||
}
|
||||
// mystr += await Nave.getPlaccaPerDonatore(idapp, pos.riga, pos.col, false, rec);
|
||||
// mystr += await Nave.getPlaccaPerMediatore(idapp, pos.riga, pos.col, false, rec);
|
||||
}
|
||||
// mystr += await Nave.getPlaccaPerDonatore(idapp, pos.riga, pos.col, false, rec);
|
||||
// mystr += await Nave.getPlaccaPerMediatore(idapp, pos.riga, pos.col, false, rec);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e.message);
|
||||
}
|
||||
|
||||
return mystr;
|
||||
@@ -1333,6 +1412,53 @@ NaveSchema.statics.getNextNumTess = async function (idapp, ind_order) {
|
||||
|
||||
};
|
||||
|
||||
NaveSchema.statics.getnumNaviByUsername = async function (idapp, username) {
|
||||
const Nave = this;
|
||||
|
||||
try {
|
||||
|
||||
const { ListaIngresso } = require('./listaingresso');
|
||||
|
||||
// Get array di ind_order
|
||||
const arrind_order = await ListaIngresso.find({ idapp, username }).distinct('ind_order');
|
||||
|
||||
const arrrec = await Nave.find({ idapp, ind_order: arrind_order, num_tess: { $mod: [ 2 , 1] } }, {
|
||||
riga: 1,
|
||||
col: 1,
|
||||
ind_order: 1
|
||||
});
|
||||
|
||||
if (!!arrrec)
|
||||
return arrrec.length;
|
||||
else
|
||||
return 0;
|
||||
|
||||
}catch (e) {
|
||||
console.error(e.message);
|
||||
}
|
||||
};
|
||||
|
||||
NaveSchema.statics.getSognatoreByRigaColMediatore = async function (idapp, navemediatore) {
|
||||
|
||||
const ris = this.getRigaColSognatoreByMediatore(idapp, navemediatore.riga, navemediatore.col, 3);
|
||||
|
||||
const myquery = getQueryProj({
|
||||
idapp,
|
||||
riga: ris.riga,
|
||||
col: ris.col,
|
||||
});
|
||||
|
||||
arrrec = await Nave.aggregate(myquery);
|
||||
|
||||
if (!!arrrec) {
|
||||
if (arrrec.length > 0)
|
||||
return arrrec[0];
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
|
||||
|
||||
const Nave = mongoose.model('Nave', NaveSchema);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user