diff --git a/.env.development b/.env.development index 86c5b99..7013049 100644 --- a/.env.development +++ b/.env.development @@ -1,12 +1,12 @@ -DATABASE=test_PiuCheBuono +DATABASE=test_FreePlanet UDB=paofreeplanet PDB=mypassword@1A SEND_EMAIL=0 SEND_EMAIL_ORDERS=1 PORT=3000 -appTelegram_TEST=["1","17"] -appTelegram=["1","17"] -appTelegram_DEVELOP=["17"] +appTelegram_TEST=["1","13"] +appTelegram=["1","13"] +appTelegram_DEVELOP=["13"] DOMAIN=mongodb://localhost:27017/ AUTH_MONGODB=0 ENABLE_PUSHNOTIFICATION=1 @@ -29,7 +29,7 @@ GCM_API_KEY="" PROD=0 PROJECT_DESCR_MAIN='__PROJECTS' SECRK=Askb38v23jjDFaoskBOWj92axXCQ -TOKEN_LIFE=2h +TOKEN_LIFE=1m REFRESH_TOKEN_LIFE=14d FTPSERVER_HOST=139.162.166.31 FTPSERVER_PORT=21 @@ -38,9 +38,4 @@ FTPSERVER_PWD=ftpmypwd@1A_ AUTH_NEW_SITES=123123123 SCRIPTS_DIR=admin_scripts CLOUDFLARE_TOKENS=[{"label":"Paolo.arena77@gmail.com","value":"M9EM309v8WFquJKpYgZCw-TViM2wX6vB3wlK6GD0"},{"label":"gruppomacro.com","value":"bqmzGShoX7WqOBzkXocoECyBkPq3GfqcM5t6VFd8"}] -MIAB_HOST=box.lamiaposta.org -MIAB_ADMIN_EMAIL=admin@lamiaposta.org -MIAB_ADMIN_PASSWORD=passpao1pabox@1A DS_API_KEY="sk-222e3addb3d8455d8b0516d93906eec7" -API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK" -SERVER_A_URL="http://51.77.156.69:3000" \ No newline at end of file diff --git a/logtrans.txt b/logtrans.txt index 35414ba..3c92b7d 100644 --- a/logtrans.txt +++ b/logtrans.txt @@ -478,4 +478,9 @@ Gio 13/03 ORE 18:57: [Circuito RIS Italia]: Inviate Monete da surya1977 a Saldi: surya1977: 11.00 RIS] -GruppoYurta: 17.00 RIS] \ No newline at end of file +GruppoYurta: 17.00 RIS] +Dom 23/03 ORE 22:24: [Circuito RIS Italia]: Inviate Monete da surya1977 a GruppoYurta 1 RIS [causale: ] + +Saldi: +surya1977: 88.20 RIS] +GruppoYurta: 6.00 RIS] \ No newline at end of file diff --git a/src/server/models/stat.js b/src/server/models/stat.js index 8f0a326..ffcabb1 100755 --- a/src/server/models/stat.js +++ b/src/server/models/stat.js @@ -55,6 +55,7 @@ const StatSchema = new Schema({ diffusorilist: [], receiveRislist: [], receiveRislistgroup: [], + listlinksreg: [], strettelist: [], num_transaz_tot: Number, tot_RIS_transati: Number, @@ -95,6 +96,7 @@ StatSchema.statics.calculateStats = async function (idapp) { lastsonline: await User.getLastOnlineUsers(idapp), lastssharedlink: await User.getLastSharedLink(idapp), diffusorilist: await User.getDiffusoriUsers(idapp), + listlinksreg: await User.getListLinkReg(idapp), receiveRislist: await User.getReceiveRISUsers(idapp), receiveRislistgroup: await MyGroup.getReceiveRISGroups(idapp), strettelist: await User.getLastStretteDiManoUsers(idapp), diff --git a/src/server/models/user.js b/src/server/models/user.js index 1266bd4..645ac66 100755 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -435,6 +435,9 @@ const UserSchema = new mongoose.Schema({ lastdate_reqRis: { type: Date, }, + lastdate_LinkReg: { + type: Date, + }, notifs: [ { _id: false, @@ -4878,6 +4881,15 @@ UserSchema.statics.getReceiveRISUsers = async function (idapp) { return ris; }); +}; +UserSchema.statics.getListLinkReg = async function (idapp) { + const User = this; + + return await User.aggregate(User.getQueryListLinkReg(idapp, 8)).then(ris => { + // console.table(ris); + return ris; + }); + }; UserSchema.statics.checkUser = async function (idapp, username) { @@ -5423,6 +5435,93 @@ UserSchema.statics.getQueryReceiveRISUsers = function (idapp, hours) { return query; }; +UserSchema.statics.getQueryListLinkReg = function (idapp, hours) { + + const query = [ + { + $match: { + idapp, + 'profile.lastdate_LinkReg': { $gte: tools.IncDateNow(-(1000 * 60 * 60 * hours)) }, + $or: [ + { deleted: { $exists: false } }, + { deleted: { $exists: true, $eq: false } }], + }, + }, + { + $group: + { + _id: "$username", + count: { + $sum: 1, + }, + } + }, + { $sort: { 'profile.lastdate_linkReg': -1 } }, + { $limit: 30 }, + { + $lookup: { + from: "users", + let: { + username: "$_id", + idapp, + }, + pipeline: [ + { + $match: { + $expr: { + $and: [ + { + $eq: [ + "$$username", + "$username", + ], + }, + { + $eq: [ + "$$idapp", + "$idapp", + ], + }, + ], + }, + }, + }, + ], + as: "user", + }, + }, + { $unwind: "$user" }, + { + $replaceRoot: { + newRoot: { + $mergeObjects: ["$user", "$$ROOT"], + }, + }, + }, + { + $project: { + _id: 0, + count: 1, + aportador_solidario: 1, + username: 1, + name: 1, + surname: 1, + lasttimeonline: 1, + 'profile.lastdate_linkReg': 1, + 'profile.mycircuits': 1, + date_reg: 1, + idapp: 1, + "profile.img": 1, + 'profile.handshake': 1, + 'profile.note': 1, + 'profile.da_contattare': 1, + perm: 1, + }, + }, + ]; + return query; +}; + UserSchema.statics.getUsersRegWeekly = function (idapp, nrec) { const query = [ @@ -6220,6 +6319,17 @@ UserSchema.statics.setReceiveRis = async function (idapp, username) { return !!record; }); +}; +UserSchema.statics.setLinkReg = async function (idapp, username) { + const User = this; + + return await User.findOneAndUpdate({ + idapp, username, + }, + { $set: { 'profile.lastdate_LinkReg': new Date() } }, { new: false }).lean().then((record) => { + return !!record; + }); + }; UserSchema.statics.addNewSite = async function (idappPass, body) { diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js index 11640b2..f144f8a 100755 --- a/src/server/router/users_router.js +++ b/src/server/router/users_router.js @@ -393,7 +393,7 @@ router.post('/', async (req, res) => { } catch (e) { console.error(e.message); } - + }); router.get('/:idapp/:username', async (req, res) => { @@ -496,6 +496,28 @@ router.post('/receiveris', authenticate, (req, res) => { }; }); +router.post('/listlinkreg', authenticate, (req, res) => { + const username = req.user ? req.user.username : ''; + const groupname = req.body.groupname; + const idapp = req.body.idapp; + + try { + if (!username) + return res.send({ code: server_constants.RIS_CODE_ERR }); + + return User.setLinkReg(idapp, username) + .then(risult => { + res.send({ code: server_constants.RIS_CODE_OK }); + }).catch((err) => { + tools.mylog('ERRORE IN listlinkreg: ' + err.message); + res.status(400).send(); + }); + } catch (e) { + res.status(400).send(); + + }; +}); + router.post('/profile', authenticate, (req, res) => { const usernameOrig = req.user ? req.user.username : ''; const perm = req.user ? req.user.perm : tools.Perm.PERM_NONE; @@ -1047,7 +1069,7 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) { // ++ Replace All Circuitname with 'Circuito RIS %s' await Circuit.replaceAllCircuitNames(idapp); } else if (mydata.dbop === 'eliminaCatProds') { - + await CatProd.deleteMany({ idapp }); await SubCatProd.deleteMany({ idapp }); } else if (mydata.dbop === 'creaUtentiTest') { @@ -1561,7 +1583,7 @@ async function ConvertiDaIntAStr(mytable) { const doc = await myrec.save(); ind++; console.log('++Add (', ind, ')', doc._id); - } catch (err) { + } catch (err) { const myid = parseInt(err.keyValue._id, 10) + 0; const canc = await mytable.findOneAndDelete({ _id: myid }); if (canc) diff --git a/src/server/version.txt b/src/server/version.txt index d9e75ec..280fc9d 100644 --- a/src/server/version.txt +++ b/src/server/version.txt @@ -1 +1 @@ -1.2.28 \ No newline at end of file +1.2.29 \ No newline at end of file