- Aggiunta della funzione Cron
- Flag: Pubblicati OnLine + Solo CagalogoGenerale + Dettagli
This commit is contained in:
@@ -1,17 +1,19 @@
|
|||||||
const mongoose = require('mongoose').set('debug', false)
|
const mongoose = require('mongoose').set('debug', false);
|
||||||
const Schema = mongoose.Schema;
|
const Schema = mongoose.Schema;
|
||||||
|
|
||||||
const tools = require('../tools/general');
|
const tools = require('../tools/general');
|
||||||
|
|
||||||
mongoose.Promise = global.Promise;
|
const shared_consts = require('../tools/shared_nodejs');
|
||||||
mongoose.level = "F";
|
|
||||||
|
|
||||||
|
mongoose.Promise = global.Promise;
|
||||||
|
mongoose.level = 'F';
|
||||||
|
|
||||||
// Resolving error Unknown modifier: $pushAll
|
// Resolving error Unknown modifier: $pushAll
|
||||||
mongoose.plugin(schema => {
|
mongoose.plugin((schema) => {
|
||||||
schema.options.usePushEach = true
|
schema.options.usePushEach = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const CronMod = require('../modules/CronMod');
|
||||||
|
|
||||||
const CronSchema = new Schema({
|
const CronSchema = new Schema({
|
||||||
idapp: {
|
idapp: {
|
||||||
@@ -27,26 +29,45 @@ const CronSchema = new Schema({
|
|||||||
nomeFunzioneDbOp: {
|
nomeFunzioneDbOp: {
|
||||||
type: String,
|
type: String,
|
||||||
},
|
},
|
||||||
startTime: { // Orario iniziale (es. "08:30")
|
startTime: {
|
||||||
|
// Orario iniziale (es. "08:30")
|
||||||
type: String,
|
type: String,
|
||||||
default: "00:00"
|
|
||||||
},
|
},
|
||||||
everyXHours: { // Esegui ogni X ore
|
everyXMinutes: {
|
||||||
|
// Esegui ogni X ore
|
||||||
|
type: Number,
|
||||||
|
},
|
||||||
|
quanteVolteEseguito: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
quanteVolteEseguiAlGG: {
|
||||||
|
type: Number,
|
||||||
|
default: 1,
|
||||||
|
},
|
||||||
|
lastJobStarted: {
|
||||||
|
type: Date,
|
||||||
|
},
|
||||||
|
lastJobEnd: {
|
||||||
|
type: Date,
|
||||||
|
},
|
||||||
|
log: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
status: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 24
|
|
||||||
},
|
},
|
||||||
date_created: {
|
date_created: {
|
||||||
type: Date,
|
type: Date,
|
||||||
default: Date.now
|
default: Date.now,
|
||||||
},
|
},
|
||||||
date_updated: {
|
date_updated: {
|
||||||
type: Date,
|
type: Date,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
CronSchema.statics.getFieldsForSearch = function () {
|
CronSchema.statics.getFieldsForSearch = function () {
|
||||||
return [{ field: 'descr', type: tools.FieldType.string }]
|
return [{ field: 'descr', type: tools.FieldType.string }];
|
||||||
};
|
};
|
||||||
|
|
||||||
CronSchema.statics.executeQueryTable = function (idapp, params, user) {
|
CronSchema.statics.executeQueryTable = function (idapp, params, user) {
|
||||||
@@ -54,6 +75,73 @@ CronSchema.statics.executeQueryTable = function (idapp, params, user) {
|
|||||||
return tools.executeQueryTable(this, idapp, params, user);
|
return tools.executeQueryTable(this, idapp, params, user);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
CronSchema.statics.startJobCron = async function (idapp) {
|
||||||
|
// Esegui un loop su tutti i cron job che trovi per l'idapp specificato
|
||||||
|
const Cron = this;
|
||||||
|
const cronJobs = await Cron.find({ idapp, active: true });
|
||||||
|
|
||||||
|
// console.log('Check startJobCron...', idapp);
|
||||||
|
|
||||||
|
const mycronMod = new CronMod();
|
||||||
|
|
||||||
|
const currentDate = new Date();
|
||||||
|
|
||||||
|
for (const mycron of cronJobs) {
|
||||||
|
const jobTime = new Date();
|
||||||
|
const [hours, minutes] = mycron.startTime.split(':');
|
||||||
|
jobTime.setHours(hours, minutes, 0, 0);
|
||||||
|
|
||||||
|
// Check if jobTime has passed and if 'everyXMinutes' have elapsed since last execution
|
||||||
|
if (!mycron.quanteVolteEseguito) mycron.quanteVolteEseguito = 0;
|
||||||
|
const timesPerDay = mycron.quanteVolteEseguiAlGG || 1;
|
||||||
|
const startDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
|
||||||
|
const lastJobDate = new Date(
|
||||||
|
mycron.lastJobStarted.getFullYear(),
|
||||||
|
mycron.lastJobStarted.getMonth(),
|
||||||
|
mycron.lastJobStarted.getDate()
|
||||||
|
);
|
||||||
|
const tempooltre = currentDate - mycron.lastJobStarted >= mycron.everyXMinutes * 60 * 1000;
|
||||||
|
if (
|
||||||
|
((mycron.quanteVolteEseguito < timesPerDay && startDate.getTime() === lastJobDate.getTime()) ||
|
||||||
|
startDate.getTime() !== lastJobDate.getTime()) &&
|
||||||
|
(!mycron.lastJobStarted || tempooltre)
|
||||||
|
) {
|
||||||
|
if (currentDate >= jobTime) {
|
||||||
|
// Execute the function at the scheduled time
|
||||||
|
console.log(`Sto eseguendo il Cron Job: ${mycron.nomeFunzioneDbOp} alle ${currentDate.toLocaleTimeString()}`);
|
||||||
|
const status = shared_consts.STATUS_JOB.START;
|
||||||
|
if (startDate.getTime() !== lastJobDate.getTime()) {
|
||||||
|
mycron.quanteVolteEseguito = 0;
|
||||||
|
}
|
||||||
|
const quanteVolteEseguito = mycron.quanteVolteEseguito + 1;
|
||||||
|
await Cron.findOneAndUpdate(
|
||||||
|
{ _id: mycron._id },
|
||||||
|
{ $set: { lastJobStarted: currentDate, status, quanteVolteEseguito } },
|
||||||
|
{ new: true }
|
||||||
|
);
|
||||||
|
mycronMod
|
||||||
|
.eseguiDbOp(idapp, { dbop: mycron.nomeFunzioneDbOp }, null, null)
|
||||||
|
.then(async (ris) => {
|
||||||
|
console.log(`${currentDate.toLocaleTimeString()} LOG JOB: ${ris.mystr}`);
|
||||||
|
const myid = mycron._id;
|
||||||
|
const status = shared_consts.STATUS_JOB.FINISH;
|
||||||
|
const risupdate = await Cron.findOneAndUpdate(
|
||||||
|
{ _id: myid },
|
||||||
|
{ $set: { lastJobEnd: new Date(), status } },
|
||||||
|
{ new: true }
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.catch(async (err) => {
|
||||||
|
const log = "Errore durante l'esecuzione del job: " + err.message || err;
|
||||||
|
const status = shared_consts.STATUS_JOB.ERR;
|
||||||
|
await Cron.findOneAndUpdate({ _id: mycron._id }, { $set: { log, status } }, { new: true });
|
||||||
|
console.error(log);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
CronSchema.statics.findAllIdApp = async function (idapp) {
|
CronSchema.statics.findAllIdApp = async function (idapp) {
|
||||||
const Cron = this;
|
const Cron = this;
|
||||||
|
|
||||||
@@ -61,7 +149,6 @@ CronSchema.statics.findAllIdApp = async function (idapp) {
|
|||||||
return await Cron.find({ idapp }).then((arrrec) => {
|
return await Cron.find({ idapp }).then((arrrec) => {
|
||||||
return arrrec;
|
return arrrec;
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('Errore: ', err);
|
console.error('Errore: ', err);
|
||||||
}
|
}
|
||||||
@@ -70,8 +157,9 @@ CronSchema.statics.findAllIdApp = async function (idapp) {
|
|||||||
const Cron = mongoose.model('Cron', CronSchema);
|
const Cron = mongoose.model('Cron', CronSchema);
|
||||||
|
|
||||||
Cron.createIndexes()
|
Cron.createIndexes()
|
||||||
.then(() => { })
|
.then(() => {})
|
||||||
.catch((err) => { throw err; });
|
.catch((err) => {
|
||||||
|
throw err;
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = { Cron };
|
module.exports = { Cron };
|
||||||
|
|||||||
@@ -532,7 +532,7 @@ module.exports.removeProductInfoWithoutDateUpdatedFromGM = async function (idapp
|
|||||||
try {
|
try {
|
||||||
const arrproductInfo = await ProductInfo.find({ idapp, date_updated_fromGM: { $exists: false } });
|
const arrproductInfo = await ProductInfo.find({ idapp, date_updated_fromGM: { $exists: false } });
|
||||||
|
|
||||||
if (arrproductInfo.length > 0) {
|
if (arrproductInfo.length > 0 && arrproductInfo.length < 1000) {
|
||||||
mylog = `Rimuovo ${arrproductInfo.length} productInfo senza date_updated_fromGM !!`
|
mylog = `Rimuovo ${arrproductInfo.length} productInfo senza date_updated_fromGM !!`
|
||||||
console.log(mylog);
|
console.log(mylog);
|
||||||
|
|
||||||
|
|||||||
477
src/server/modules/CronMod.js
Normal file
477
src/server/modules/CronMod.js
Normal file
@@ -0,0 +1,477 @@
|
|||||||
|
const { User } = require('../models/user');
|
||||||
|
|
||||||
|
const Hours = require('../models/hours');
|
||||||
|
const { ObjectId } = require('mongodb');
|
||||||
|
|
||||||
|
const tools = require('../tools/general');
|
||||||
|
const shared_consts = require('../tools/shared_nodejs');
|
||||||
|
|
||||||
|
const server_constants = require('../tools/server_constants');
|
||||||
|
|
||||||
|
const { Settings } = require('../models/settings');
|
||||||
|
const { MyBot } = require('../models/bot');
|
||||||
|
const { MyElem } = require('../models/myelem');
|
||||||
|
|
||||||
|
const telegrambot = require('../telegram/telegrambot');
|
||||||
|
|
||||||
|
const Cart = require('../models/cart');
|
||||||
|
const CartClass = require('../modules/Cart');
|
||||||
|
const Product = require('../models/product');
|
||||||
|
const ProductInfo = require('../models/productInfo');
|
||||||
|
const CatProd = require('../models/catprod');
|
||||||
|
const SubCatProd = require('../models/subcatprod');
|
||||||
|
const Order = require('../models/order');
|
||||||
|
const OrdersCart = require('../models/orderscart');
|
||||||
|
const Variant = require('../models/variant');
|
||||||
|
const TypedError = require('../modules/ErrorHandler');
|
||||||
|
|
||||||
|
const { MyGroup } = require('../models/mygroup');
|
||||||
|
const { Circuit } = require('../models/circuit');
|
||||||
|
const { Province } = require('../models/province');
|
||||||
|
const { City } = require('../models/city');
|
||||||
|
const { Account } = require('../models/account');
|
||||||
|
|
||||||
|
const Macro = require('../modules/Macro');
|
||||||
|
|
||||||
|
class CronMod {
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
|
async eseguiDbOp(idapp, mydata, req, res) {
|
||||||
|
|
||||||
|
|
||||||
|
let ris = await User.DbOp(idapp, mydata);
|
||||||
|
|
||||||
|
const populate = require("../populate/populate");
|
||||||
|
|
||||||
|
const globalTables = require("../tools/globalTables");
|
||||||
|
const { Reaction } = require("../models/reaction");
|
||||||
|
|
||||||
|
let mystr = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (mydata.dbop === "") {
|
||||||
|
// } else if (mydata.dbop === 'rigeneraTutto') {
|
||||||
|
// await ListaIngresso.Esegui_CronTab(idapp, mydata);
|
||||||
|
} else if (mydata.dbop === "ReplaceAllCircuits") {
|
||||||
|
// ++ 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 === "removeProductInfoWithoutDateUpdatedFromGM") {
|
||||||
|
mystr = await ProductInfo.removeProductInfoWithoutDateUpdatedFromGM(idapp);
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "StatMacro") {
|
||||||
|
const macro = new Macro(idapp, {});
|
||||||
|
mystr = await macro.getStat();
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "updateAllBook") {
|
||||||
|
// chiama updateAllBook
|
||||||
|
const { updateAllBook } = require("../controllers/articleController");
|
||||||
|
|
||||||
|
mystr = await updateAllBook(idapp, mydata.options);
|
||||||
|
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "updateAllBooksAndRemoveCanc") {
|
||||||
|
// chiama updateAllBooksAndRemoveCanc
|
||||||
|
|
||||||
|
const { updateAllBook } = require("../controllers/articleController");
|
||||||
|
|
||||||
|
mystr = await updateAllBook(idapp, {usaDBGMLocale: false, caricatutti: true, rimuovieventualiCancellati: true});
|
||||||
|
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "creaUtentiTest") {
|
||||||
|
let num = 0;
|
||||||
|
lastrec = await User.find({ idapp }).sort({ _id: -1 }).limit(1);
|
||||||
|
let last = 1;
|
||||||
|
if (lastrec) {
|
||||||
|
last = lastrec[0].index;
|
||||||
|
}
|
||||||
|
if (!last) {
|
||||||
|
last = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let ind = 0; ind < 100; ind++) {
|
||||||
|
let myuser = new User();
|
||||||
|
myuser._id = new ObjectId();
|
||||||
|
myuser.index = last + ind + 1;
|
||||||
|
myuser.idapp = idapp;
|
||||||
|
myuser.password = "$2a$12$DEaX1h5saTUVC43f7kubyOAlah1xHDgqQTfSIux0.RFDT9WGbyCaG";
|
||||||
|
myuser.lang = "it";
|
||||||
|
myuser.email = "miaemail@email.it";
|
||||||
|
myuser.name = "U" + myuser.index;
|
||||||
|
myuser.surname = "Ar" + myuser.index;
|
||||||
|
myuser.verified_email = true;
|
||||||
|
myuser.verified_by_aportador = true;
|
||||||
|
if (myuser.index < 2) myuser.perm = "3";
|
||||||
|
myuser.username = "Userna_" + myuser.name;
|
||||||
|
myuser.profile.special_req = true;
|
||||||
|
myuser.profile.nationality = "IT";
|
||||||
|
await myuser.save();
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ris = { num };
|
||||||
|
/*} else if (mydata.dbop === 'visuPlacca') {
|
||||||
|
|
||||||
|
mystr = '✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨\n' +
|
||||||
|
'NAVI CHE SALPANO DALLA ' + mydata.riga + '.' + mydata.col + ' ALLA ' + mydata.riga + '.' + (parseInt(mydata.col) + 7) + '\n' +
|
||||||
|
'AUGURI ALLA NUOVA SOGNATRICE !!!\n' +
|
||||||
|
'✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨';
|
||||||
|
|
||||||
|
const visu_nave_Bot = await Settings.getValDbSettings(idapp, 'VISU_NAVE_BOT');
|
||||||
|
|
||||||
|
for (let ind = 0; ind < 8; ind++) {
|
||||||
|
mystr += await Nave.getNavePos(idapp, parseInt(mydata.riga), parseInt(mydata.col) + ind, false);
|
||||||
|
mystr += tools.ACAPO;
|
||||||
|
if (visu_nave_Bot && ind === 3) {
|
||||||
|
await telegrambot.sendMsgTelegramToTheAdmin(idapp, mystr, true);
|
||||||
|
mystr = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (visu_nave_Bot)
|
||||||
|
await telegrambot.sendMsgTelegramToTheAdmin(idapp, mystr, true);
|
||||||
|
|
||||||
|
ris = { mystr };
|
||||||
|
*/
|
||||||
|
} else if (mydata.dbop === "CorreggiTabHours") {
|
||||||
|
ris = await Hours.correggiHours(idapp);
|
||||||
|
} else if (mydata.dbop === "setVerifiedByAportadorToALL") {
|
||||||
|
ris = await User.setVerifiedByAportadorToALL();
|
||||||
|
} else if (mydata.dbop === "RewriteContribType") {
|
||||||
|
ris = populate.rewriteTable("contribtypes");
|
||||||
|
} else if (mydata.dbop === "ReplaceUsername") {
|
||||||
|
if (User.isAdmin(req.user.perm)) {
|
||||||
|
ris = globalTables.replaceUsername(req.body.idapp, mydata.search_username, mydata.replace_username);
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === "ExitFromAllCircuitWithZero") {
|
||||||
|
if (User.isAdmin(req.user.perm)) {
|
||||||
|
ris = globalTables.ExitFromAllCircuitWithZero(req.body.idapp, mydata.search_username);
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === "replaceAportadorSolidario") {
|
||||||
|
if (User.isAdmin(req.user.perm)) {
|
||||||
|
ris = globalTables.replaceAportadorSolidario(req.body.idapp, mydata.search_username, mydata.replace_username);
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === "SearchString") {
|
||||||
|
if (User.isAdmin(req.user.perm)) {
|
||||||
|
mystr = await globalTables.SearchString(req.body.idapp, mydata.search);
|
||||||
|
}
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "UpdateCatDeleteEmpty") {
|
||||||
|
mystr = await CatProd.updateCatDeleteEmpty(req.body.idapp);
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "UpdateStatFatturato") {
|
||||||
|
mystr = await ProductInfo.updateProductInfoByStats(req.body.idapp);
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "MigrateMSSQLToMongoDb") {
|
||||||
|
const { mssqlmigrateTables } = require("../controllers/articleController");
|
||||||
|
|
||||||
|
mystr = await mssqlmigrateTables(req);
|
||||||
|
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "copyFrom1To14") {
|
||||||
|
const idapporig = 1;
|
||||||
|
const idappdest = 14;
|
||||||
|
if (!idapporig || !idappdest) return;
|
||||||
|
|
||||||
|
const globalTables = require("../tools/globalTables");
|
||||||
|
|
||||||
|
//++ Todo: TO FIXIT !
|
||||||
|
const mytablesstr = ["settings", "users", "templemail", "destnewsletter", "contribtypes", "bots", "cfgservers"];
|
||||||
|
|
||||||
|
try {
|
||||||
|
let numrectot = 0;
|
||||||
|
for (const table of mytablesstr) {
|
||||||
|
const mytable = globalTables.getTableByTableName(table);
|
||||||
|
|
||||||
|
tools.mylogshow("copyfromapptoapp: ", table, mytable);
|
||||||
|
|
||||||
|
await mytable.DuplicateAllRecords(idapporig, idappdest).then((numrec) => {
|
||||||
|
// tools.mylogshow(' REC TO MODIFY: ', rec);
|
||||||
|
if (numrec) numrectot += numrec;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
ris = true;
|
||||||
|
} catch (e) {
|
||||||
|
console.log("e", e);
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === "removeRecordsFav") {
|
||||||
|
// Passa le tabelle da users sulle nuove tabelle:
|
||||||
|
await User.removerecordsFavorite();
|
||||||
|
} else if (mydata.dbop === "updateReactionsCounts") {
|
||||||
|
await Reaction.updateReactionsCounts();
|
||||||
|
} else if (mydata.dbop === "GeneraCSVOrdineProdotti") {
|
||||||
|
await Order.GeneraCSVOrdineProdotti();
|
||||||
|
} else if (mydata.dbop === "RemoveDeletedOrdersInOrderscart") {
|
||||||
|
await Order.RemoveDeletedOrdersInOrderscart();
|
||||||
|
} else if (mydata.dbop === "CheckTransazioniCircuiti") {
|
||||||
|
await Circuit.CheckTransazioniCircuiti(false);
|
||||||
|
} else if (mydata.dbop === "CorreggiTransazioniCircuiti") {
|
||||||
|
await Circuit.CheckTransazioniCircuiti(true);
|
||||||
|
} else if (mydata.dbop === "RemovePendentTransactions") {
|
||||||
|
ris = await SendNotif.RemovePendentTransactions(idapp);
|
||||||
|
} else if (mydata.dbop === "RemoveOldNotif90") {
|
||||||
|
await SendNotif.RemoveOldNotif90(idapp);
|
||||||
|
} else if (mydata.dbop === "RemoveOldNotif30") {
|
||||||
|
await SendNotif.RemoveOldNotif30(idapp);
|
||||||
|
} else if (mydata.dbop === "UpdateCoordProv") {
|
||||||
|
await Province.setCoordinatesOnDB();
|
||||||
|
} else if (mydata.dbop === "insertGeojsonToMongoDB") {
|
||||||
|
await City.insertGeojsonToMongoDB("comuni_italia.geojson");
|
||||||
|
} else if (mydata.dbop === "listCollectionsBySize") {
|
||||||
|
mystr = await tools.listCollectionsBySize();
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "EnableNewsOn_ToAll") {
|
||||||
|
mystr = await User.setNewsletterToAll(idapp);
|
||||||
|
} else if (mydata.dbop === "MyElemSetIdPageInsteadThePah") {
|
||||||
|
mystr = await MyElem.SetIdPageInsteadThePah(idapp);
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === "AbilitaNewsletterALL") {
|
||||||
|
await User.updateMany(
|
||||||
|
{
|
||||||
|
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
|
||||||
|
},
|
||||||
|
{ $set: { news_on: true } },
|
||||||
|
{ new: false }
|
||||||
|
);
|
||||||
|
} else if (mydata.dbop === "SvuotaTuttiGliAccessiOnlineConToken") {
|
||||||
|
await User.SvuotaTuttiGliAccessiOnlineConToken(idapp);
|
||||||
|
} else if (mydata.dbop === "SettaAdTypeOffro_In_Hosps") {
|
||||||
|
const { MyHosp } = require("../models/myhosp");
|
||||||
|
|
||||||
|
await MyHosp.SettaAdTypeOffro_In_Hosps(idapp);
|
||||||
|
} else if (mydata.dbop === "removeRegulations") {
|
||||||
|
await Circuit.updateMany({}, { $set: { regulation: "" } });
|
||||||
|
} else if (mydata.dbop === "newRecordsFav") {
|
||||||
|
// Passa le tabelle da users sulle nuove tabelle:
|
||||||
|
await User.moverecordsFavorite(1);
|
||||||
|
await User.moverecordsFavorite(2);
|
||||||
|
await User.moverecordsFavorite(3);
|
||||||
|
await User.moverecordsFavorite(4);
|
||||||
|
await User.moverecordsFavorite(5);
|
||||||
|
} else if (mydata.dbop === "emptyTabCatServiziBeni") {
|
||||||
|
const { Sector } = require("../models/sector");
|
||||||
|
const { SectorGood } = require("../models/sectorgood");
|
||||||
|
const { Skill } = require("../models/skill");
|
||||||
|
const { Good } = require("../models/good");
|
||||||
|
|
||||||
|
await Sector.deleteMany({});
|
||||||
|
await SectorGood.deleteMany({});
|
||||||
|
await Skill.deleteMany({});
|
||||||
|
ris = await Good.deleteMany({});
|
||||||
|
} else if (mydata.dbop === "emptyDbSkill") {
|
||||||
|
// Svuota e Ricrea
|
||||||
|
|
||||||
|
const { Sector } = require("../models/sector");
|
||||||
|
const { SectorGood } = require("../models/sectorgood");
|
||||||
|
const { Skill } = require("../models/skill");
|
||||||
|
const { Good } = require("../models/good");
|
||||||
|
const { SubSkill } = require("../models/subskill");
|
||||||
|
const { Contribtype } = require("../models/contribtype");
|
||||||
|
const { AdType } = require("../models/adtype");
|
||||||
|
const { AdTypeGood } = require("../models/adtypegood");
|
||||||
|
const { StatusSkill } = require("../models/statusSkill");
|
||||||
|
const { CatGrp } = require("../models/catgrp");
|
||||||
|
|
||||||
|
await Sector.deleteMany({});
|
||||||
|
await SectorGood.deleteMany({});
|
||||||
|
await Skill.deleteMany({});
|
||||||
|
await Good.deleteMany({});
|
||||||
|
await SubSkill.deleteMany({});
|
||||||
|
await Contribtype.deleteMany({});
|
||||||
|
await AdType.deleteMany({});
|
||||||
|
await AdTypeGood.deleteMany({});
|
||||||
|
await StatusSkill.deleteMany({});
|
||||||
|
await CatGrp.deleteMany({});
|
||||||
|
|
||||||
|
ris = await populate.popolaTabelleNuove();
|
||||||
|
} else if (mydata.dbop === "ricreaTabCitiesProvinces") {
|
||||||
|
// Svuota e Ricrea
|
||||||
|
|
||||||
|
const { City } = require("../models/city");
|
||||||
|
const { Province } = require("../models/province");
|
||||||
|
|
||||||
|
await City.deleteMany({});
|
||||||
|
await Province.deleteMany({});
|
||||||
|
|
||||||
|
ris = await populate.popolaTabelleNuove();
|
||||||
|
} else if (mydata.dbop === "PopulateTables") {
|
||||||
|
ris = populate.popolaTabelleNuove();
|
||||||
|
} else if (mydata.dbop === "dropProducts") {
|
||||||
|
if (idapp) {
|
||||||
|
const deleteProducts = await Product.deleteMany({ idapp });
|
||||||
|
console.log(`Cancellati ${deleteProducts.deletedCount} record dalla collezione Product.`);
|
||||||
|
|
||||||
|
// Cancellazione dei record nella collezione ProductInfo
|
||||||
|
const deleteProductInfo = await ProductInfo.deleteMany({ idapp });
|
||||||
|
console.log(`Cancellati ${deleteProductInfo.deletedCount} record dalla collezione ProductInfo.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
ris = deleteProductInfo ? true : false;
|
||||||
|
} else if (mydata.dbop === "dropCatProd") {
|
||||||
|
const deleteCatProd = await CatProd.deleteMany({ idapp });
|
||||||
|
} else if (mydata.dbop === "dropSubCatProd") {
|
||||||
|
const deleteSubCatProd = await SubCatProd.deleteMany({ idapp });
|
||||||
|
} else if (mydata.dbop === "dropAllOrders") {
|
||||||
|
try {
|
||||||
|
const deleteOrder = await Order.deleteMany({ idapp });
|
||||||
|
const deleteOrdersCart = await OrdersCart.deleteMany({ idapp });
|
||||||
|
const deleteCart = await Cart.deleteMany({ idapp });
|
||||||
|
|
||||||
|
ris = deleteCart;
|
||||||
|
} catch (e) {
|
||||||
|
console.error("Err:", e);
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === "SistemaGasOrdine") {
|
||||||
|
const arrrec = await Product.find({}).lean();
|
||||||
|
for (const rec of arrrec) {
|
||||||
|
if (tools.isArray(rec.idGasordines) && rec.idGasordines.length > 0) {
|
||||||
|
await Product.findByIdAndUpdate(rec._id, { $set: { idGasordine: rec.idGasordines[0] } });
|
||||||
|
} else {
|
||||||
|
await Product.findByIdAndUpdate(rec._id, { $set: { idGasordine: null } });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === "CopyPriceToCalc") {
|
||||||
|
try {
|
||||||
|
const arrrec = await OrdersCart.find({}).lean();
|
||||||
|
for (const rec of arrrec) {
|
||||||
|
await OrdersCart.findByIdAndUpdate(rec._id, { $set: { totalPriceCalc: rec.totalPrice } });
|
||||||
|
}
|
||||||
|
|
||||||
|
const arrrec2 = await Order.find({}).lean();
|
||||||
|
for (const rec of arrrec2) {
|
||||||
|
await Order.findByIdAndUpdate(rec._id, { $set: { TotalPriceProductCalc: rec.TotalPriceProduct } });
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error("Err:", e);
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === "dropAllCarts") {
|
||||||
|
ris = await Cart.deleteMany({ idapp });
|
||||||
|
} else if (mydata.dbop === "RewriteCitiesTable") {
|
||||||
|
ris = populate.rewriteTable("cities");
|
||||||
|
} else if (mydata.dbop === "RewriteLevelsTable") {
|
||||||
|
ris = populate.rewriteTable("levels");
|
||||||
|
} else if (mydata.dbop === "RewriteProvincesTable") {
|
||||||
|
ris = populate.rewriteTable("provinces");
|
||||||
|
} else if (mydata.dbop === "emptyCityProvinces") {
|
||||||
|
const { City } = require("../models/city");
|
||||||
|
const { Province } = require("../models/province");
|
||||||
|
|
||||||
|
await City.deleteMany({});
|
||||||
|
await Province.deleteMany({});
|
||||||
|
} else if (mydata.dbop === "ConvTablesFromIntToString") {
|
||||||
|
const { MySkill } = require("../models/myskill");
|
||||||
|
const { MyBacheca } = require("../models/mybacheca");
|
||||||
|
const { MyHosp } = require("../models/myhosp");
|
||||||
|
const { MyGood } = require("../models/mygood");
|
||||||
|
// const { MyGroup } = require('../models/mygroup');
|
||||||
|
|
||||||
|
console.log("INIZIO - Conversioni");
|
||||||
|
// 'myskills',
|
||||||
|
// 'mybachecas',
|
||||||
|
// 'myhosps',
|
||||||
|
// 'mygoods',
|
||||||
|
// 'mygroups'
|
||||||
|
|
||||||
|
await ConvertiDaIntAStr(MySkill);
|
||||||
|
await ConvertiDaIntAStr(MyBacheca);
|
||||||
|
await ConvertiDaIntAStr(MyHosp);
|
||||||
|
await ConvertiDaIntAStr(MyGood);
|
||||||
|
await ConvertiDaIntAStr(MyGroup);
|
||||||
|
|
||||||
|
console.log("FINE - Conversioni");
|
||||||
|
} else if (mydata.dbop === "Removeinteger") {
|
||||||
|
const { MySkill } = require("../models/myskill");
|
||||||
|
const { MyBacheca } = require("../models/mybacheca");
|
||||||
|
const { MyHosp } = require("../models/myhosp");
|
||||||
|
const { MyGood } = require("../models/mygood");
|
||||||
|
// const { MyGroup } = require('../models/mygroup');
|
||||||
|
|
||||||
|
console.log("INIZIO - Rimozione");
|
||||||
|
|
||||||
|
await RimuoviInteri(MySkill);
|
||||||
|
await RimuoviInteri(MyBacheca);
|
||||||
|
await RimuoviInteri(MyHosp);
|
||||||
|
await RimuoviInteri(MyGood);
|
||||||
|
await RimuoviInteri(MyGroup);
|
||||||
|
|
||||||
|
console.log("FINE - Rimozione");
|
||||||
|
} else if (mydata.dbop === "createAllCircuits") {
|
||||||
|
const { Province } = require("../models/province");
|
||||||
|
|
||||||
|
const arrProv = await Province.find({});
|
||||||
|
for (const recprov of arrProv) {
|
||||||
|
await Circuit.createCircuitIfNotExist(req, idapp, recprov.prov);
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === "correggiProductTypes") {
|
||||||
|
await ProductInfo.correggiProductTypes();
|
||||||
|
} else if (mydata.dbop === "replaceProductImgToImageFile") {
|
||||||
|
await ProductInfo.replaceProductImgToImageFile(true);
|
||||||
|
} else if (mydata.dbop === "removeUploadProducts_Path") {
|
||||||
|
await ProductInfo.replaceProductImgToImageFile(false);
|
||||||
|
} else if (mydata.dbop === "correggiCircuitiANull") {
|
||||||
|
await User.updateMany({}, { $pull: { "profile.mycircuits": { circuitname: null } } });
|
||||||
|
} else if (mydata.dbop === "ImpostaMinMaxPersonali") {
|
||||||
|
await Account.SetMinMaxPersonali(idapp, mydata.valmin, mydata.valmax, "");
|
||||||
|
} else if (mydata.dbop === "ImpostaMinMaxPersonaliCircuito") {
|
||||||
|
await Account.SetMinMaxPersonali(idapp, mydata.valmin, mydata.valmax, mydata.circuitId);
|
||||||
|
} else if (mydata.dbop === "ImpostaMinMaxComunitari") {
|
||||||
|
await Account.SetMinMaxComunitari(idapp, mydata.valmin, mydata.valmax);
|
||||||
|
} else if (mydata.dbop === "ImpostaMinMaxCollettivi") {
|
||||||
|
await Account.SetMinMaxCollettivi(idapp, mydata.valmin, mydata.valmax);
|
||||||
|
} else if (mydata.dbop === "ImpostaDefMinMaxPersonali") {
|
||||||
|
await Circuit.SetDefMinMaxPersonali(idapp, mydata.valmin, mydata.valmax, mydata.circuitId);
|
||||||
|
} else if (mydata.dbop === "ImpostaDefMinMaxCollettivi") {
|
||||||
|
await Circuit.SetDefMinMaxCollettivi(idapp, mydata.valmin, mydata.valmax, mydata.circuitId);
|
||||||
|
} else if (mydata.dbop === "AbilitaTuttiCircuiti") {
|
||||||
|
await Circuit.AbilitaTuttiCircuiti(idapp);
|
||||||
|
} else if (mydata.dbop === "AzzeraRegolamentiTuttiCircuiti") {
|
||||||
|
await Circuit.AzzeraRegolamentiTuttiCircuiti(idapp);
|
||||||
|
} else if (mydata.dbop === "setstrProvByIdCityCircuits") {
|
||||||
|
await Circuit.setstrProvByIdCityCircuits(idapp);
|
||||||
|
} else if (mydata.dbop === "updateSaldoAndTransato_AllAccounts") {
|
||||||
|
await Account.updateSaldoAndTransato_AllAccounts(idapp);
|
||||||
|
} else if (mydata.dbop === "generateBotMenuRecords") {
|
||||||
|
await MyBot.generateBotMenuRecords(idapp);
|
||||||
|
} else if (mydata.dbop === "GenerateVapiKey") {
|
||||||
|
await tools.generateVapiKey();
|
||||||
|
|
||||||
|
/*} else if (mydata.dbop === 'visuNave') {
|
||||||
|
mystr = await Nave.getNavePos(idapp, parseInt(mydata.riga), parseInt(mydata.col));
|
||||||
|
|
||||||
|
const visu_nave_Bot = await Settings.getValDbSettings(idapp, 'VISU_NAVE_BOT');
|
||||||
|
if (visu_nave_Bot)
|
||||||
|
telegrambot.sendMsgTelegramToTheAdmin(idapp, mystr, true);
|
||||||
|
|
||||||
|
ris = { mystr };
|
||||||
|
} else if (mydata.dbop === 'getnavibyuser') {
|
||||||
|
|
||||||
|
let arrnavi = null;
|
||||||
|
|
||||||
|
const user = await User.getUserShortDataByUsername(idapp, mydata.username);
|
||||||
|
if (user) {
|
||||||
|
arrnavi = await Nave.getArrPosizioniByUsername(idapp, user.username);
|
||||||
|
|
||||||
|
for (let mynave of arrnavi) {
|
||||||
|
mynave._doc.rec = await Nave.getNaveByRigaCol(idapp, mynave.riga, mynave.col);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ris = { data: arrnavi };
|
||||||
|
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
// console.log('ris', ris);
|
||||||
|
|
||||||
|
return ris;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = CronMod;
|
||||||
@@ -435,7 +435,7 @@ class Macro {
|
|||||||
|
|
||||||
let count = 0;
|
let count = 0;
|
||||||
if (Array.isArray(recproducts)) {
|
if (Array.isArray(recproducts)) {
|
||||||
if (recproducts.length > 10 && lavoromassivo) {
|
if (recproducts.length > 10 && lavoromassivo && options.rimuovieventualiCancellati) {
|
||||||
// rimuovi dalla tabella productInfo tutti i campi date_updated_fromGM
|
// rimuovi dalla tabella productInfo tutti i campi date_updated_fromGM
|
||||||
const result = await ProductInfo.updateMany({ idapp: options.idapp }, { $unset: { date_updated_fromGM: null } });
|
const result = await ProductInfo.updateMany({ idapp: options.idapp }, { $unset: { date_updated_fromGM: null } });
|
||||||
let quanti_rimossi = result.modifiedCount;
|
let quanti_rimossi = result.modifiedCount;
|
||||||
@@ -461,7 +461,7 @@ class Macro {
|
|||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rimuoviTabellePerIniziare) {
|
if (rimuoviTabellePerIniziare && options.rimuovieventualiCancellati) {
|
||||||
await ProductInfo.removeProductInfoWithoutDateUpdatedFromGM(options.idapp);
|
await ProductInfo.removeProductInfoWithoutDateUpdatedFromGM(options.idapp);
|
||||||
}
|
}
|
||||||
if (myjob)
|
if (myjob)
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ const { Contribtype } = require('../models/contribtype');
|
|||||||
const { PaymentType } = require('../models/paymenttype');
|
const { PaymentType } = require('../models/paymenttype');
|
||||||
const { Discipline } = require('../models/discipline');
|
const { Discipline } = require('../models/discipline');
|
||||||
const { MyElem } = require('../models/myelem');
|
const { MyElem } = require('../models/myelem');
|
||||||
|
const { Cron } = require('../models/cron');
|
||||||
const { Skill } = require('../models/skill');
|
const { Skill } = require('../models/skill');
|
||||||
const { Good } = require('../models/good');
|
const { Good } = require('../models/good');
|
||||||
const { StatusSkill } = require('../models/statusSkill');
|
const { StatusSkill } = require('../models/statusSkill');
|
||||||
@@ -2028,6 +2029,7 @@ async function load(req, res, version = '0') {
|
|||||||
stati_prodotto: version >= 91 ? T_WEB_StatiProdotto.findAllIdApp() : Promise.resolve([]),
|
stati_prodotto: version >= 91 ? T_WEB_StatiProdotto.findAllIdApp() : Promise.resolve([]),
|
||||||
tipologie: version >= 91 ? T_WEB_Tipologie.findAllIdApp() : Promise.resolve([]),
|
tipologie: version >= 91 ? T_WEB_Tipologie.findAllIdApp() : Promise.resolve([]),
|
||||||
tipoformato: version >= 91 ? T_WEB_TipiFormato.findAllIdApp() : Promise.resolve([]),
|
tipoformato: version >= 91 ? T_WEB_TipiFormato.findAllIdApp() : Promise.resolve([]),
|
||||||
|
crons: version >= 91 ? Cron.findAllIdApp() : Promise.resolve([]),
|
||||||
myuserextra: req.user
|
myuserextra: req.user
|
||||||
? User.addExtraInfo(idapp, req.user, version)
|
? User.addExtraInfo(idapp, req.user, version)
|
||||||
: Promise.resolve(null)
|
: Promise.resolve(null)
|
||||||
@@ -2144,6 +2146,7 @@ async function load(req, res, version = '0') {
|
|||||||
stati_prodotto: data.stati_prodotto,
|
stati_prodotto: data.stati_prodotto,
|
||||||
tipologie: data.tipologie,
|
tipologie: data.tipologie,
|
||||||
tipoformato: data.tipoformato,
|
tipoformato: data.tipoformato,
|
||||||
|
crons: data.crons,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ const { ObjectId } = require('mongodb');
|
|||||||
const sendemail = require('../sendemail');
|
const sendemail = require('../sendemail');
|
||||||
|
|
||||||
const { Settings } = require('../models/settings');
|
const { Settings } = require('../models/settings');
|
||||||
|
const CronMod = require('../modules/CronMod');
|
||||||
|
|
||||||
const { SendNotif } = require('../models/sendnotif');
|
const { SendNotif } = require('../models/sendnotif');
|
||||||
const { MyElem } = require('../models/myelem');
|
const { MyElem } = require('../models/myelem');
|
||||||
@@ -1051,546 +1052,6 @@ router.post('/circuits/cmd', authenticate, async (req, res) => {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
async function eseguiDbOp(idapp, mydata, locale, req, res) {
|
|
||||||
|
|
||||||
let ris = await User.DbOp(idapp, mydata);
|
|
||||||
|
|
||||||
const populate = require('../populate/populate');
|
|
||||||
|
|
||||||
const globalTables = require('../tools/globalTables');
|
|
||||||
const { Reaction } = require('../models/reaction');
|
|
||||||
|
|
||||||
let mystr = '';
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
if (mydata.dbop === '') {
|
|
||||||
|
|
||||||
// } else if (mydata.dbop === 'rigeneraTutto') {
|
|
||||||
// await ListaIngresso.Esegui_CronTab(idapp, mydata);
|
|
||||||
} else if (mydata.dbop === 'ReplaceAllCircuits') {
|
|
||||||
// ++ 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 === 'removeProductInfoWithoutDateUpdatedFromGM') {
|
|
||||||
|
|
||||||
mystr = await ProductInfo.removeProductInfoWithoutDateUpdatedFromGM(idapp);
|
|
||||||
ris = { mystr };
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'StatMacro') {
|
|
||||||
|
|
||||||
const macro = new Macro(idapp, {});
|
|
||||||
mystr = await macro.getStat();
|
|
||||||
ris = { mystr };
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'updateAllBook') {
|
|
||||||
// chiama updateAllBook
|
|
||||||
const { updateAllBook } = require("../controllers/articleController");
|
|
||||||
|
|
||||||
mystr = await updateAllBook(idapp, mydata.options);
|
|
||||||
|
|
||||||
ris = { mystr };
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'creaUtentiTest') {
|
|
||||||
|
|
||||||
let num = 0;
|
|
||||||
lastrec = await User.find({ idapp }).sort({ _id: -1 }).limit(1);
|
|
||||||
let last = 1;
|
|
||||||
if (lastrec) {
|
|
||||||
last = lastrec[0].index;
|
|
||||||
}
|
|
||||||
if (!last) {
|
|
||||||
last = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let ind = 0; ind < 100; ind++) {
|
|
||||||
let myuser = new User();
|
|
||||||
myuser._id = new ObjectId();
|
|
||||||
myuser.index = last + ind + 1;
|
|
||||||
myuser.idapp = idapp;
|
|
||||||
myuser.password = '$2a$12$DEaX1h5saTUVC43f7kubyOAlah1xHDgqQTfSIux0.RFDT9WGbyCaG';
|
|
||||||
myuser.lang = 'it';
|
|
||||||
myuser.email = 'miaemail@email.it';
|
|
||||||
myuser.name = 'U' + myuser.index;
|
|
||||||
myuser.surname = 'Ar' + myuser.index;
|
|
||||||
myuser.verified_email = true;
|
|
||||||
myuser.verified_by_aportador = true;
|
|
||||||
if (myuser.index < 2)
|
|
||||||
myuser.perm = '3';
|
|
||||||
myuser.username = 'Userna_' + myuser.name;
|
|
||||||
myuser.profile.special_req = true;
|
|
||||||
myuser.profile.nationality = 'IT';
|
|
||||||
await myuser.save();
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
|
|
||||||
ris = { num };
|
|
||||||
/*} else if (mydata.dbop === 'visuPlacca') {
|
|
||||||
|
|
||||||
mystr = '✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨\n' +
|
|
||||||
'NAVI CHE SALPANO DALLA ' + mydata.riga + '.' + mydata.col + ' ALLA ' + mydata.riga + '.' + (parseInt(mydata.col) + 7) + '\n' +
|
|
||||||
'AUGURI ALLA NUOVA SOGNATRICE !!!\n' +
|
|
||||||
'✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨';
|
|
||||||
|
|
||||||
const visu_nave_Bot = await Settings.getValDbSettings(idapp, 'VISU_NAVE_BOT');
|
|
||||||
|
|
||||||
for (let ind = 0; ind < 8; ind++) {
|
|
||||||
mystr += await Nave.getNavePos(idapp, parseInt(mydata.riga), parseInt(mydata.col) + ind, false);
|
|
||||||
mystr += tools.ACAPO;
|
|
||||||
if (visu_nave_Bot && ind === 3) {
|
|
||||||
await telegrambot.sendMsgTelegramToTheAdmin(idapp, mystr, true);
|
|
||||||
mystr = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (visu_nave_Bot)
|
|
||||||
await telegrambot.sendMsgTelegramToTheAdmin(idapp, mystr, true);
|
|
||||||
|
|
||||||
ris = { mystr };
|
|
||||||
*/
|
|
||||||
} else if (mydata.dbop === 'CorreggiTabHours') {
|
|
||||||
|
|
||||||
ris = await Hours.correggiHours(idapp);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'setVerifiedByAportadorToALL') {
|
|
||||||
|
|
||||||
ris = await User.setVerifiedByAportadorToALL();
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'RewriteContribType') {
|
|
||||||
|
|
||||||
ris = populate.rewriteTable('contribtypes');
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ReplaceUsername') {
|
|
||||||
|
|
||||||
if (User.isAdmin(req.user.perm)) {
|
|
||||||
ris = globalTables.replaceUsername(req.body.idapp, mydata.search_username, mydata.replace_username);
|
|
||||||
}
|
|
||||||
} else if (mydata.dbop === 'ExitFromAllCircuitWithZero') {
|
|
||||||
|
|
||||||
if (User.isAdmin(req.user.perm)) {
|
|
||||||
ris = globalTables.ExitFromAllCircuitWithZero(req.body.idapp, mydata.search_username);
|
|
||||||
}
|
|
||||||
} else if (mydata.dbop === 'replaceAportadorSolidario') {
|
|
||||||
|
|
||||||
if (User.isAdmin(req.user.perm)) {
|
|
||||||
ris = globalTables.replaceAportadorSolidario(req.body.idapp, mydata.search_username, mydata.replace_username);
|
|
||||||
}
|
|
||||||
} else if (mydata.dbop === 'SearchString') {
|
|
||||||
|
|
||||||
if (User.isAdmin(req.user.perm)) {
|
|
||||||
mystr = await globalTables.SearchString(req.body.idapp, mydata.search);
|
|
||||||
}
|
|
||||||
ris = { mystr };
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'UpdateCatDeleteEmpty') {
|
|
||||||
|
|
||||||
mystr = await CatProd.updateCatDeleteEmpty(req.body.idapp);
|
|
||||||
ris = { mystr };
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'UpdateStatFatturato') {
|
|
||||||
|
|
||||||
mystr = await ProductInfo.updateProductInfoByStats(req.body.idapp);
|
|
||||||
ris = { mystr };
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'MigrateMSSQLToMongoDb') {
|
|
||||||
const { mssqlmigrateTables } = require("../controllers/articleController");
|
|
||||||
|
|
||||||
mystr = await mssqlmigrateTables(req);
|
|
||||||
|
|
||||||
ris = { mystr };
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'copyFrom1To14') {
|
|
||||||
const idapporig = 1;
|
|
||||||
const idappdest = 14;
|
|
||||||
if (!idapporig || !idappdest)
|
|
||||||
return;
|
|
||||||
|
|
||||||
const globalTables = require('../tools/globalTables');
|
|
||||||
|
|
||||||
//++ Todo: TO FIXIT !
|
|
||||||
const mytablesstr = [
|
|
||||||
'settings',
|
|
||||||
'users',
|
|
||||||
'templemail',
|
|
||||||
'destnewsletter',
|
|
||||||
'contribtypes',
|
|
||||||
'bots',
|
|
||||||
'cfgservers'];
|
|
||||||
|
|
||||||
try {
|
|
||||||
let numrectot = 0;
|
|
||||||
for (const table of mytablesstr) {
|
|
||||||
const mytable = globalTables.getTableByTableName(table);
|
|
||||||
|
|
||||||
tools.mylogshow('copyfromapptoapp: ', table, mytable);
|
|
||||||
|
|
||||||
await mytable.DuplicateAllRecords(idapporig, idappdest).
|
|
||||||
then((numrec) => {
|
|
||||||
// tools.mylogshow(' REC TO MODIFY: ', rec);
|
|
||||||
if (numrec)
|
|
||||||
numrectot += numrec;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
ris = true;
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
console.log('e', e);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'removeRecordsFav') {
|
|
||||||
// Passa le tabelle da users sulle nuove tabelle:
|
|
||||||
await User.removerecordsFavorite();
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'updateReactionsCounts') {
|
|
||||||
await Reaction.updateReactionsCounts();
|
|
||||||
} else if (mydata.dbop === 'GeneraCSVOrdineProdotti') {
|
|
||||||
await Order.GeneraCSVOrdineProdotti();
|
|
||||||
} else if (mydata.dbop === 'RemoveDeletedOrdersInOrderscart') {
|
|
||||||
await Order.RemoveDeletedOrdersInOrderscart();
|
|
||||||
} else if (mydata.dbop === 'CheckTransazioniCircuiti') {
|
|
||||||
await Circuit.CheckTransazioniCircuiti(false);
|
|
||||||
} else if (mydata.dbop === 'CorreggiTransazioniCircuiti') {
|
|
||||||
await Circuit.CheckTransazioniCircuiti(true);
|
|
||||||
} else if (mydata.dbop === 'RemovePendentTransactions') {
|
|
||||||
ris = await SendNotif.RemovePendentTransactions(idapp);
|
|
||||||
} else if (mydata.dbop === 'RemoveOldNotif90') {
|
|
||||||
await SendNotif.RemoveOldNotif90(idapp);
|
|
||||||
} else if (mydata.dbop === 'RemoveOldNotif30') {
|
|
||||||
await SendNotif.RemoveOldNotif30(idapp);
|
|
||||||
} else if (mydata.dbop === 'UpdateCoordProv') {
|
|
||||||
await Province.setCoordinatesOnDB();
|
|
||||||
} else if (mydata.dbop === 'insertGeojsonToMongoDB') {
|
|
||||||
await City.insertGeojsonToMongoDB('comuni_italia.geojson');
|
|
||||||
} else if (mydata.dbop === 'listCollectionsBySize') {
|
|
||||||
mystr = await tools.listCollectionsBySize();
|
|
||||||
ris = { mystr };
|
|
||||||
} else if (mydata.dbop === 'EnableNewsOn_ToAll') {
|
|
||||||
mystr = await User.setNewsletterToAll(idapp);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'MyElemSetIdPageInsteadThePah') {
|
|
||||||
mystr = await MyElem.SetIdPageInsteadThePah(idapp);
|
|
||||||
ris = { mystr };
|
|
||||||
} else if (mydata.dbop === 'AbilitaNewsletterALL') {
|
|
||||||
await User.updateMany({
|
|
||||||
$or: [
|
|
||||||
{ deleted: { $exists: false } },
|
|
||||||
{ deleted: { $exists: true, $eq: false } }],
|
|
||||||
|
|
||||||
},
|
|
||||||
{ $set: { news_on: true } },
|
|
||||||
{ new: false });
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'SvuotaTuttiGliAccessiOnlineConToken') {
|
|
||||||
await User.SvuotaTuttiGliAccessiOnlineConToken(idapp);
|
|
||||||
} else if (mydata.dbop === 'SettaAdTypeOffro_In_Hosps') {
|
|
||||||
const { MyHosp } = require('../models/myhosp');
|
|
||||||
|
|
||||||
await MyHosp.SettaAdTypeOffro_In_Hosps(idapp);
|
|
||||||
} else if (mydata.dbop === 'removeRegulations') {
|
|
||||||
await Circuit.updateMany({}, { $set: { regulation: '' } });
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'newRecordsFav') {
|
|
||||||
// Passa le tabelle da users sulle nuove tabelle:
|
|
||||||
await User.moverecordsFavorite(1);
|
|
||||||
await User.moverecordsFavorite(2);
|
|
||||||
await User.moverecordsFavorite(3);
|
|
||||||
await User.moverecordsFavorite(4);
|
|
||||||
await User.moverecordsFavorite(5);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'emptyTabCatServiziBeni') {
|
|
||||||
|
|
||||||
const { Sector } = require('../models/sector');
|
|
||||||
const { SectorGood } = require('../models/sectorgood');
|
|
||||||
const { Skill } = require('../models/skill');
|
|
||||||
const { Good } = require('../models/good');
|
|
||||||
|
|
||||||
await Sector.deleteMany({});
|
|
||||||
await SectorGood.deleteMany({});
|
|
||||||
await Skill.deleteMany({});
|
|
||||||
ris = await Good.deleteMany({});
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'emptyDbSkill') {
|
|
||||||
|
|
||||||
// Svuota e Ricrea
|
|
||||||
|
|
||||||
const { Sector } = require('../models/sector');
|
|
||||||
const { SectorGood } = require('../models/sectorgood');
|
|
||||||
const { Skill } = require('../models/skill');
|
|
||||||
const { Good } = require('../models/good');
|
|
||||||
const { SubSkill } = require('../models/subskill');
|
|
||||||
const { Contribtype } = require('../models/contribtype');
|
|
||||||
const { AdType } = require('../models/adtype');
|
|
||||||
const { AdTypeGood } = require('../models/adtypegood');
|
|
||||||
const { StatusSkill } = require('../models/statusSkill');
|
|
||||||
const { CatGrp } = require('../models/catgrp');
|
|
||||||
|
|
||||||
await Sector.deleteMany({});
|
|
||||||
await SectorGood.deleteMany({});
|
|
||||||
await Skill.deleteMany({});
|
|
||||||
await Good.deleteMany({});
|
|
||||||
await SubSkill.deleteMany({});
|
|
||||||
await Contribtype.deleteMany({});
|
|
||||||
await AdType.deleteMany({});
|
|
||||||
await AdTypeGood.deleteMany({});
|
|
||||||
await StatusSkill.deleteMany({});
|
|
||||||
await CatGrp.deleteMany({});
|
|
||||||
|
|
||||||
ris = await populate.popolaTabelleNuove();
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ricreaTabCitiesProvinces') {
|
|
||||||
|
|
||||||
// Svuota e Ricrea
|
|
||||||
|
|
||||||
const { City } = require('../models/city');
|
|
||||||
const { Province } = require('../models/province');
|
|
||||||
|
|
||||||
await City.deleteMany({});
|
|
||||||
await Province.deleteMany({});
|
|
||||||
|
|
||||||
ris = await populate.popolaTabelleNuove();
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'PopulateTables') {
|
|
||||||
|
|
||||||
ris = populate.popolaTabelleNuove();
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'dropProducts') {
|
|
||||||
|
|
||||||
if (idapp) {
|
|
||||||
const deleteProducts = await Product.deleteMany({ idapp });
|
|
||||||
console.log(`Cancellati ${deleteProducts.deletedCount} record dalla collezione Product.`);
|
|
||||||
|
|
||||||
// Cancellazione dei record nella collezione ProductInfo
|
|
||||||
const deleteProductInfo = await ProductInfo.deleteMany({ idapp });
|
|
||||||
console.log(`Cancellati ${deleteProductInfo.deletedCount} record dalla collezione ProductInfo.`);
|
|
||||||
}
|
|
||||||
|
|
||||||
ris = deleteProductInfo ? true : false;
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'dropCatProd') {
|
|
||||||
|
|
||||||
const deleteCatProd = await CatProd.deleteMany({ idapp });
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'dropSubCatProd') {
|
|
||||||
|
|
||||||
const deleteSubCatProd = await SubCatProd.deleteMany({ idapp });
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'dropAllOrders') {
|
|
||||||
|
|
||||||
try {
|
|
||||||
const deleteOrder = await Order.deleteMany({ idapp });
|
|
||||||
const deleteOrdersCart = await OrdersCart.deleteMany({ idapp });
|
|
||||||
const deleteCart = await Cart.deleteMany({ idapp });
|
|
||||||
|
|
||||||
ris = deleteCart;
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
console.error('Err:', e);
|
|
||||||
}
|
|
||||||
} else if (mydata.dbop === 'SistemaGasOrdine') {
|
|
||||||
const arrrec = await Product.find({}).lean();
|
|
||||||
for (const rec of arrrec) {
|
|
||||||
if (tools.isArray(rec.idGasordines) && rec.idGasordines.length > 0) {
|
|
||||||
await Product.findByIdAndUpdate(rec._id, { $set: { idGasordine: rec.idGasordines[0] } })
|
|
||||||
} else {
|
|
||||||
await Product.findByIdAndUpdate(rec._id, { $set: { idGasordine: null } })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'CopyPriceToCalc') {
|
|
||||||
|
|
||||||
try {
|
|
||||||
const arrrec = await OrdersCart.find({}).lean();
|
|
||||||
for (const rec of arrrec) {
|
|
||||||
await OrdersCart.findByIdAndUpdate(rec._id, { $set: { totalPriceCalc: rec.totalPrice } })
|
|
||||||
}
|
|
||||||
|
|
||||||
const arrrec2 = await Order.find({}).lean();
|
|
||||||
for (const rec of arrrec2) {
|
|
||||||
await Order.findByIdAndUpdate(rec._id, { $set: { TotalPriceProductCalc: rec.TotalPriceProduct } })
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
console.error('Err:', e);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'dropAllCarts') {
|
|
||||||
|
|
||||||
ris = await Cart.deleteMany({ idapp });
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'RewriteCitiesTable') {
|
|
||||||
|
|
||||||
ris = populate.rewriteTable('cities');
|
|
||||||
} else if (mydata.dbop === 'RewriteLevelsTable') {
|
|
||||||
|
|
||||||
ris = populate.rewriteTable('levels');
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'RewriteProvincesTable') {
|
|
||||||
|
|
||||||
ris = populate.rewriteTable('provinces');
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'emptyCityProvinces') {
|
|
||||||
|
|
||||||
const { City } = require('../models/city');
|
|
||||||
const { Province } = require('../models/province');
|
|
||||||
|
|
||||||
await City.deleteMany({});
|
|
||||||
await Province.deleteMany({});
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ConvTablesFromIntToString') {
|
|
||||||
|
|
||||||
const { MySkill } = require('../models/myskill');
|
|
||||||
const { MyBacheca } = require('../models/mybacheca');
|
|
||||||
const { MyHosp } = require('../models/myhosp');
|
|
||||||
const { MyGood } = require('../models/mygood');
|
|
||||||
// const { MyGroup } = require('../models/mygroup');
|
|
||||||
|
|
||||||
console.log('INIZIO - Conversioni');
|
|
||||||
// 'myskills',
|
|
||||||
// 'mybachecas',
|
|
||||||
// 'myhosps',
|
|
||||||
// 'mygoods',
|
|
||||||
// 'mygroups'
|
|
||||||
|
|
||||||
await ConvertiDaIntAStr(MySkill);
|
|
||||||
await ConvertiDaIntAStr(MyBacheca);
|
|
||||||
await ConvertiDaIntAStr(MyHosp);
|
|
||||||
await ConvertiDaIntAStr(MyGood);
|
|
||||||
await ConvertiDaIntAStr(MyGroup);
|
|
||||||
|
|
||||||
console.log('FINE - Conversioni');
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'Removeinteger') {
|
|
||||||
|
|
||||||
const { MySkill } = require('../models/myskill');
|
|
||||||
const { MyBacheca } = require('../models/mybacheca');
|
|
||||||
const { MyHosp } = require('../models/myhosp');
|
|
||||||
const { MyGood } = require('../models/mygood');
|
|
||||||
// const { MyGroup } = require('../models/mygroup');
|
|
||||||
|
|
||||||
console.log('INIZIO - Rimozione');
|
|
||||||
|
|
||||||
await RimuoviInteri(MySkill);
|
|
||||||
await RimuoviInteri(MyBacheca);
|
|
||||||
await RimuoviInteri(MyHosp);
|
|
||||||
await RimuoviInteri(MyGood);
|
|
||||||
await RimuoviInteri(MyGroup);
|
|
||||||
|
|
||||||
console.log('FINE - Rimozione');
|
|
||||||
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'createAllCircuits') {
|
|
||||||
const { Province } = require('../models/province');
|
|
||||||
|
|
||||||
const arrProv = await Province.find({});
|
|
||||||
for (const recprov of arrProv) {
|
|
||||||
await Circuit.createCircuitIfNotExist(req, idapp, recprov.prov);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'correggiProductTypes') {
|
|
||||||
|
|
||||||
await ProductInfo.correggiProductTypes();
|
|
||||||
} else if (mydata.dbop === 'replaceProductImgToImageFile') {
|
|
||||||
|
|
||||||
await ProductInfo.replaceProductImgToImageFile(true);
|
|
||||||
} else if (mydata.dbop === 'removeUploadProducts_Path') {
|
|
||||||
|
|
||||||
await ProductInfo.replaceProductImgToImageFile(false);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'correggiCircuitiANull') {
|
|
||||||
|
|
||||||
|
|
||||||
await User.updateMany(
|
|
||||||
{},
|
|
||||||
{ $pull: { "profile.mycircuits": { "circuitname": null } } }
|
|
||||||
);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ImpostaMinMaxPersonali') {
|
|
||||||
|
|
||||||
await Account.SetMinMaxPersonali(idapp, mydata.valmin, mydata.valmax, '');
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ImpostaMinMaxPersonaliCircuito') {
|
|
||||||
|
|
||||||
await Account.SetMinMaxPersonali(idapp, mydata.valmin, mydata.valmax, mydata.circuitId);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ImpostaMinMaxComunitari') {
|
|
||||||
|
|
||||||
await Account.SetMinMaxComunitari(idapp, mydata.valmin, mydata.valmax);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ImpostaMinMaxCollettivi') {
|
|
||||||
|
|
||||||
await Account.SetMinMaxCollettivi(idapp, mydata.valmin, mydata.valmax);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ImpostaDefMinMaxPersonali') {
|
|
||||||
|
|
||||||
await Circuit.SetDefMinMaxPersonali(idapp, mydata.valmin, mydata.valmax, mydata.circuitId);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'ImpostaDefMinMaxCollettivi') {
|
|
||||||
|
|
||||||
await Circuit.SetDefMinMaxCollettivi(idapp, mydata.valmin, mydata.valmax, mydata.circuitId);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'AbilitaTuttiCircuiti') {
|
|
||||||
|
|
||||||
await Circuit.AbilitaTuttiCircuiti(idapp);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'AzzeraRegolamentiTuttiCircuiti') {
|
|
||||||
|
|
||||||
await Circuit.AzzeraRegolamentiTuttiCircuiti(idapp);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'setstrProvByIdCityCircuits') {
|
|
||||||
|
|
||||||
await Circuit.setstrProvByIdCityCircuits(idapp);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'updateSaldoAndTransato_AllAccounts') {
|
|
||||||
|
|
||||||
await Account.updateSaldoAndTransato_AllAccounts(idapp);
|
|
||||||
} else if (mydata.dbop === 'generateBotMenuRecords') {
|
|
||||||
|
|
||||||
|
|
||||||
await MyBot.generateBotMenuRecords(idapp);
|
|
||||||
|
|
||||||
} else if (mydata.dbop === 'GenerateVapiKey') {
|
|
||||||
|
|
||||||
await tools.generateVapiKey();
|
|
||||||
|
|
||||||
/*} else if (mydata.dbop === 'visuNave') {
|
|
||||||
mystr = await Nave.getNavePos(idapp, parseInt(mydata.riga), parseInt(mydata.col));
|
|
||||||
|
|
||||||
const visu_nave_Bot = await Settings.getValDbSettings(idapp, 'VISU_NAVE_BOT');
|
|
||||||
if (visu_nave_Bot)
|
|
||||||
telegrambot.sendMsgTelegramToTheAdmin(idapp, mystr, true);
|
|
||||||
|
|
||||||
ris = { mystr };
|
|
||||||
} else if (mydata.dbop === 'getnavibyuser') {
|
|
||||||
|
|
||||||
let arrnavi = null;
|
|
||||||
|
|
||||||
const user = await User.getUserShortDataByUsername(idapp, mydata.username);
|
|
||||||
if (user) {
|
|
||||||
arrnavi = await Nave.getArrPosizioniByUsername(idapp, user.username);
|
|
||||||
|
|
||||||
for (let mynave of arrnavi) {
|
|
||||||
mynave._doc.rec = await Nave.getNaveByRigaCol(idapp, mynave.riga, mynave.col);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ris = { data: arrnavi };
|
|
||||||
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
// console.log('ris', ris);
|
|
||||||
|
|
||||||
return ris;
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e.message);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
async function ConvertiDaIntAStr(mytable) {
|
async function ConvertiDaIntAStr(mytable) {
|
||||||
try {
|
try {
|
||||||
@@ -1717,9 +1178,10 @@ router.post('/dbop', authenticate, async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
const risOp = await eseguiDbOp(idapp, mydata, locale, req, res);
|
|
||||||
|
|
||||||
|
const cronMod = new CronMod();
|
||||||
|
const risOp = await cronMod.eseguiDbOp(idapp, mydata, req, res);
|
||||||
|
|
||||||
return res.send({ code: server_constants.RIS_CODE_OK, data: risOp });
|
return res.send({ code: server_constants.RIS_CODE_OK, data: risOp });
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -291,9 +291,6 @@ connectToDatabase(connectionUrl, options)
|
|||||||
}
|
}
|
||||||
|
|
||||||
mycron();
|
mycron();
|
||||||
if (!process.env.VITE_DEBUG) {
|
|
||||||
mycron();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -342,12 +339,15 @@ connectToDatabase(connectionUrl, options)
|
|||||||
try {
|
try {
|
||||||
const sendemail = require('./sendemail');
|
const sendemail = require('./sendemail');
|
||||||
|
|
||||||
const arr = await tools.getApps();
|
const { Cron } = require('./models/cron');
|
||||||
|
|
||||||
|
const arr = await tools.getApps();
|
||||||
for (const app of arr) {
|
for (const app of arr) {
|
||||||
await sendemail.checkifPendingNewsletter(app.idapp);
|
await sendemail.checkifPendingNewsletter(app.idapp);
|
||||||
await sendemail.checkifSentNewsletter(app.idapp);
|
await sendemail.checkifSentNewsletter(app.idapp);
|
||||||
|
|
||||||
|
await Cron.startJobCron(app.idapp);
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Err mycron', e);
|
console.error('Err mycron', e);
|
||||||
@@ -413,7 +413,15 @@ connectToDatabase(connectionUrl, options)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cron every X minutes
|
|
||||||
|
// Esecuzione ogni 1 minuto (*/1 * * * *)
|
||||||
|
// La sintassi di cron è:
|
||||||
|
// 0 12 * * * comando
|
||||||
|
// che significa: esegui il comando ogni giorno alle 12:00
|
||||||
|
// La sintassi di node-cron è:
|
||||||
|
// cron.schedule('0 12 * * *', () => {
|
||||||
|
// che significa: esegui il comando ogni giorno alle 12:00
|
||||||
|
// La sintassi di node-cron con */1 esegue il comando ogni 1 minuto
|
||||||
cron.schedule('*/1 * * * *', () => {
|
cron.schedule('*/1 * * * *', () => {
|
||||||
// console.log('Running Cron Job');
|
// console.log('Running Cron Job');
|
||||||
// if (!process.env.VITE_DEBUG) {
|
// if (!process.env.VITE_DEBUG) {
|
||||||
@@ -421,7 +429,8 @@ connectToDatabase(connectionUrl, options)
|
|||||||
// }
|
// }
|
||||||
});
|
});
|
||||||
|
|
||||||
// Cron every X minutes
|
|
||||||
|
// Cron every 1 HOUR
|
||||||
cron.schedule('*/60 * * * *', async () => {
|
cron.schedule('*/60 * * * *', async () => {
|
||||||
if (!process.env.VITE_DEBUG) {
|
if (!process.env.VITE_DEBUG) {
|
||||||
mycron_30min();
|
mycron_30min();
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ const Pickup = require('../models/pickup');
|
|||||||
const { Newstosent } = require('../models/newstosent');
|
const { Newstosent } = require('../models/newstosent');
|
||||||
const { MyPage } = require('../models/mypage');
|
const { MyPage } = require('../models/mypage');
|
||||||
const { MyElem } = require('../models/myelem');
|
const { MyElem } = require('../models/myelem');
|
||||||
|
const { Cron } = require('../models/cron');
|
||||||
const { MyScheda } = require('../models/myscheda');
|
const { MyScheda } = require('../models/myscheda');
|
||||||
const { MyBot } = require('../models/bot');
|
const { MyBot } = require('../models/bot');
|
||||||
const { CfgServer } = require('../models/cfgserver');
|
const { CfgServer } = require('../models/cfgserver');
|
||||||
@@ -198,6 +199,8 @@ module.exports = {
|
|||||||
mytable = MyPage;
|
mytable = MyPage;
|
||||||
else if (tablename === 'myelems')
|
else if (tablename === 'myelems')
|
||||||
mytable = MyElem;
|
mytable = MyElem;
|
||||||
|
else if (tablename === 'crons')
|
||||||
|
mytable = Cron;
|
||||||
else if (tablename === 'myschedas')
|
else if (tablename === 'myschedas')
|
||||||
mytable = MyScheda;
|
mytable = MyScheda;
|
||||||
else if (tablename === 'bots')
|
else if (tablename === 'bots')
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
TABLES_USER_ID: ['mygroups', 'myskills', 'mybachecas', 'myhosps', 'mygoods'],
|
TABLES_USER_ID: ['mygroups', 'myskills', 'mybachecas', 'myhosps', 'mygoods'],
|
||||||
TABLES_CREATEDBY: ['mygroups', 'circuits', 'attivitas'],
|
TABLES_CREATEDBY: ['mygroups', 'circuits', 'attivitas'],
|
||||||
TABLES_UPDATE_LASTMODIFIED: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'bots', 'mygroups', 'circuits', 'attivitas', 'myelems', 'mypages', 'productinfos', 'products', 'catalogs'],
|
TABLES_UPDATE_LASTMODIFIED: ['myskills', 'mybachecas', 'myhosps', 'mygoods', 'bots', 'mygroups', 'circuits', 'attivitas', 'myelems', 'mypages', 'productinfos', 'products', 'catalogs', 'crons'],
|
||||||
|
|
||||||
TABLES_FIELDS_DESCR_AND_CITY_AND_USER: ['myskills', 'mybachecas', 'myhosps', 'mygoods'],
|
TABLES_FIELDS_DESCR_AND_CITY_AND_USER: ['myskills', 'mybachecas', 'myhosps', 'mygoods'],
|
||||||
|
|
||||||
@@ -1210,6 +1210,7 @@ module.exports = {
|
|||||||
START: 1,
|
START: 1,
|
||||||
FINISH: 10,
|
FINISH: 10,
|
||||||
PAUSE: 2,
|
PAUSE: 2,
|
||||||
|
ERR: -10,
|
||||||
},
|
},
|
||||||
|
|
||||||
TERMINATED_WHY: {
|
TERMINATED_WHY: {
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.2.37
|
1.2.38
|
||||||
Reference in New Issue
Block a user