Regalamiunsorriso/decompiled-libs/www/cli-rus-2.1.9/it/acxent/pg/Users.java

778 lines
27 KiB
Java

package it.acxent.pg;
import it.acxent.bank.paypal.PayPalReq;
import it.acxent.bank.poste.PeReq;
import it.acxent.bank.sella.SellaReq;
import it.acxent.common.CrontabInterface;
import it.acxent.common.Parm;
import it.acxent.db.ApplParmFull;
import it.acxent.db.DBAdapter;
import it.acxent.db.ResParm;
import it.acxent.db.WcString;
import it.acxent.mail.MailMessage;
import it.acxent.util.StringTokenizer;
import it.acxent.util.Timer;
import it.acxent.util.Vectumerator;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.text.NumberFormat;
import java.util.Calendar;
import java.util.concurrent.ConcurrentHashMap;
public class Users extends it.acxent.anag.Users implements CrontabInterface {
private Date dataScadenza;
private Date dataVisual;
private long nFotoVisual;
private long nFotoVisualOggi;
private long nFotoMax;
private long flgVisCompatta;
private long flgMailFotoScadenza;
private long flgMiniature;
private long flgMailFotoMax;
private static final long TTL_MILLIS = 10000L;
private static final ConcurrentHashMap<String, Long> rinnovoMailSent = new ConcurrentHashMap<>();
private static final ConcurrentHashMap<String, Long> scadABreveMailSent = new ConcurrentHashMap<>();
private static final ConcurrentHashMap<String, Long> couponOmaggioMailSent = new ConcurrentHashMap<>();
public Users(ApplParmFull newApplParmFull) {
super(newApplParmFull);
}
public Users() {}
protected ResParm checkDeleteCascade() {
return new ResParm(true);
}
protected void deleteCascade() {}
public synchronized void incrementaFotoVisual() {
if (getDBState() == 1) {
setNFotoVisual(getNFotoVisual() + 1L);
if (getDataVisual() == null || getDateDiff(getDataVisual(), getToday()) != 0L) {
setNFotoVisualOggi(0L);
setDataVisual(getToday());
}
setNFotoVisualOggi(getNFotoVisualOggi() + 1L);
save();
}
}
public Date getDataScadenza() {
return this.dataScadenza;
}
public void setDataScadenza(Date dataScadenza) {
this.dataScadenza = dataScadenza;
}
public long getNFotoMax() {
return this.nFotoMax;
}
public void setNFotoMax(long fotoMax) {
this.nFotoMax = fotoMax;
}
public long getNFotoVisual() {
return this.nFotoVisual;
}
public void setNFotoVisual(long fotoVisual) {
this.nFotoVisual = fotoVisual;
}
public boolean isCodFiscDuplicated(String l_codFisc) {
String s_Sql_Find = "select * from " + getTableBeanName() + " AS A ";
String s_Sql_Order = "";
String wc = "";
wc = buildWc(wc, "A.codFisc='" + l_codFisc + "'");
try {
PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc);
DBAdapter bean = (DBAdapter)getFirstRecord(stmt);
if (bean != null && bean.getDBState() == 1)
return true;
return false;
} catch (Exception e) {
handleDebug(e);
return true;
}
}
public Vectumerator findByCR(UsersCR CR, int pageNumber, int pageRows) {
String s_Sql_Find = "select A.* from USERS AS A";
WcString wc = new WcString();
wc.addWc("dataFineVld is null");
wc = managePolicyFind(CR, wc);
if (!CR.isCode1())
wc.addWc("A.id_users <>1");
if (!CR.getFlgValido().isEmpty())
wc.addWc("A.flgValido='" + CR.getFlgValido() + "'");
if (!CR.getSearchTxt().trim().isEmpty()) {
String temp = CR.getSearchTxt().trim().replace("*", "%");
StringTokenizer st = new StringTokenizer(temp, " ");
StringBuffer txt = new StringBuffer("(");
int countToken = 0;
while (st.hasMoreTokens()) {
String token = prepareSqlString(st.nextToken());
countToken++;
if (countToken > 1)
token = "%" + token;
txt.append("(A.nome like'%" + token + "%' or A.cognome like'%" + token + "%' or A.eMail like'%" + token + "%' or A.codFisc like'%" + token + "%' or A.login like'%" + token + "%')");
if (st.hasMoreTokens())
txt.append(" and ");
}
txt.append(")");
wc.addWc(txt.toString());
}
if (!CR.getEMail().isEmpty())
wc.addWc("A.eMail like'%" + CR.getEMail() + "%'");
if (CR.getFlgMiniature() == 0L) {
wc.addWc("(A.flgMiniature is null or A.flgMiniature=0)");
} else if (CR.getFlgMiniature() == 1L) {
wc.addWc("A.flgMiniature=1");
}
if (CR.getFlgScaduto() == 0L) {
wc.addWc("A.dataScadenza>=?");
wc.addWc("A.nFotoMax>=A.nFotoVisual");
} else if (CR.getFlgScaduto() == 1L) {
wc.addWc("(A.dataScadenza<? || A.nFotoMax<A.nFotoVisual)");
}
if (CR.getFlgMl() == 0L) {
wc.addWc("(A.flgMl is null or A.flgMl=0)");
} else if (CR.getFlgMl() > 0L) {
wc.addWc("A.flgMl =" + CR.getFlgMl());
}
try {
PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find);
int dataCount = 0;
if (CR.getFlgScaduto() >= 0L) {
dataCount++;
stmt.setDate(dataCount, getToday());
}
return findRows(stmt, pageNumber, pageRows);
} catch (Exception e) {
handleDebug(e);
return AB_EMPTY_VECTUMERATOR;
}
}
public ResParm azzeraFotoPrelevate() {
String s_Sql = "delete from LOG where id_users=" + getId_users();
return delete(s_Sql);
}
public Date getDataVisual() {
return this.dataVisual;
}
public void setDataVisual(Date dataVisual) {
this.dataVisual = dataVisual;
}
public long getNFotoVisualOggi() {
if (getDataVisual() == null || getDateDiff(getDataVisual(), getToday()) != 0L)
return 0L;
return this.nFotoVisualOggi;
}
public void setNFotoVisualOggi(long fotoVisualOggi) {
this.nFotoVisualOggi = fotoVisualOggi;
}
public ResParm sendUserDataMailMessageCrypt(String l_password) {
ResParm rp = new ResParm(true);
try {
if (getDBState() == 1) {
NumberFormat nf = getNf();
String userMailMessage = getUserMailMessage("it");
if (!getControlCode().isEmpty())
userMailMessage = userMailMessage.substring(0, userMailMessage.length() - 5) + "CC" + userMailMessage.substring(0, userMailMessage.length() - 5);
MailMessage mf = new MailMessage(getApFull(), userMailMessage);
mf.setQuestionMark(false);
if (!getControlCode().isEmpty())
mf.setString("controlCode", getControlCode());
mf.setString("data", getDataFormat().format(new java.util.Date()));
mf.setString("login", getLogin());
if (l_password.isEmpty()) {
mf.setString("pwd", "******");
} else {
mf.setString("pwd", l_password);
}
mf.setString("nome", getNome());
mf.setString("cognome", getCognome());
mf.setString("citta", getCitta());
mf.setString("telefono", getTelefono());
mf.setString("eMail", getEMail());
mf.setString("indirizzo", getIndirizzo());
mf.setString("numeroCivico", getNumeroCivico());
mf.setString("codFisc", getCodFisc());
mf.setString("gruppoSportivo", getContatto());
mf.setString("motivo", getNota());
rp = mf.sendMailMessageSystem(getEMail(), mf.getMailSubject() + " Dati Registrazione ", true);
} else {
rp.setStatus(false);
rp.setMsg("Email non in archivio!");
}
} catch (Exception e) {
handleDebug(e);
rp.setStatus(false);
rp.setMsg(e.getMessage());
}
return rp;
}
public ResParm sendRinnovoMailMessage(long nFoto, int anni) {
ResParm rp = new ResParm(true);
try {
if (getDBState() == 1) {
String annifoto;
String key = "mail-rinnovo-" + getId_users();
long now = System.currentTimeMillis();
Long lastSent = rinnovoMailSent.get(key);
if (lastSent != null && now - lastSent < 10000L)
return new ResParm(true);
synchronized (rinnovoMailSent) {
lastSent = rinnovoMailSent.get(key);
if (lastSent != null && now - lastSent < 10000L)
return new ResParm(true);
rinnovoMailSent.put(key, Long.valueOf(now));
}
String rinnovoMailMsg = getDocBase() + getDocBase();
MailMessage mf = new MailMessage(getApFull(), rinnovoMailMsg);
mf.setQuestionMark(false);
mf.setString("data", getDataFormat().format(new java.util.Date()));
mf.setString("nome", getNome());
mf.setString("cognome", getCognome());
if (anni == 1) {
annifoto = "" + anni + " anno e " + anni + " foto";
} else {
annifoto = "" + anni + " anni e " + anni + " foto";
}
mf.setString("annifoto", annifoto);
rp = mf.sendMailMessageSystem(getEMail(), "Regalami un Sorriso - Rinnovo " + annifoto, true);
} else {
rp.setStatus(false);
rp.setMsg("Email non in archivio!");
}
} catch (Exception e) {
handleDebug(e);
rp.setStatus(false);
rp.setMsg("ERRORE INVIO MAIL: " + e.getMessage());
}
return rp;
}
protected String getUserMailMessage() {
return getParm("MAIL_REG").getTesto();
}
protected String getNoMorePicNumberMailMessage() {
return getDocBase() + getDocBase();
}
public boolean isUseControCodeAccess() {
return true;
}
public long getFlgMailFotoMax() {
return this.flgMailFotoMax;
}
public void setFlgMailFotoMax(long flgMailFotoMax) {
this.flgMailFotoMax = flgMailFotoMax;
}
public ResParm sendNoMorePictureMessageScad() {
ResParm rp = new ResParm(true);
if (getFlgMailFotoScadenza() == 0L)
try {
if (getDBState() == 1) {
boolean lockOk = trySetFlgMailFotoScadenzaToYesIfNo();
if (!lockOk)
return rp;
String userMailMessage = getNoMorePicScadMailMessage();
if (!getControlCode().isEmpty())
userMailMessage = userMailMessage.substring(0, userMailMessage.length() - 5) + "CC" + userMailMessage.substring(0, userMailMessage.length() - 5);
MailMessage mf = new MailMessage(getApFull(), userMailMessage);
mf.setQuestionMark(false);
mf.setString("data", getDataFormat().format(new java.util.Date()));
mf.setString("nome", getNome());
mf.setString("cognome", getCognome());
rp = mf.sendMailMessageSystem(getEMail(), mf.getMailSubject() + " Account Scaduto ", true);
} else {
rp.setStatus(false);
rp.setMsg("Email non in archivio");
}
} catch (Exception e) {
handleDebug(e);
rp.setStatus(false);
rp.setMsg(e.getMessage());
}
return rp;
}
public long getFlgMailFotoScadenza() {
return this.flgMailFotoScadenza;
}
public void setFlgMailFotoScadenza(long flgMailFotoScadenza) {
this.flgMailFotoScadenza = flgMailFotoScadenza;
}
protected String getNoMorePicScadMailMessage() {
return getDocBase() + getDocBase();
}
public long getFlgMiniature() {
return this.flgMiniature;
}
public void setFlgMiniature(long flgMiniature) {
this.flgMiniature = flgMiniature;
}
public void initApplicationParms(ApplParmFull ap) {
if (ap != null) {
super.initApplicationParms(ap);
PeReq.initApplicationParms(ap);
SellaReq.initApplicationParms(ap);
PayPalReq.initApplicationParms(ap);
String l_tipoParm = "";
Parm bean = new Parm(ap);
l_tipoParm = "GIACOMELLI";
bean.findByCodice("PATHFOTO");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("PATHFOTO");
bean.setDescrizione("PATHFOTO");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("/home/sites/regalamiunsorriso/RUS/");
bean.setNota("Percorso ASSOLUTO dove risiedono tutte le foto sorgenti.<BR>Produzione: /home/sites/regalamiunsorriso/RUS/<br>Test: /Users/acolzi/Documents/webapps/rus/mypics2/RUS/");
bean.save();
bean.findByCodice("PATHFOTO_RIDOTTE");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("PATHFOTO_RIDOTTE");
bean.setDescrizione("PATHFOTO_RIDOTTE");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("/mnt/foto/catalog/");
bean.setNota("Percorso ASSOLUTO dove risiedono tutte le foto RIDOTTE.<BR>Produzione RUS MINT CASA E UFFICIO: /mnt/foto/catalog/<br>");
bean.save();
bean.findByCodice("MAX_CONCURRENT_THREAD");
bean.setFlgAdmin(0L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("MAX_CONCURRENT_THREAD");
bean.setDescrizione("MAX_CONCURRENT_THREAD");
bean.setFlgTipo(1L);
if (bean.getNumero() <= 1.0D)
bean.setNumero(10.0D);
bean.setNota("Numero thread concorrenti utilizzato per la riduzione foto<br>In locale 10 sembra il valore ottimale");
bean.save();
bean.findByCodice("MAX_CONCURRENT_UPLOAD_THREAD");
bean.setFlgAdmin(0L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("MAX_CONCURRENT_UPLOAD_THREAD");
bean.setDescrizione("MAX_CONCURRENT_UPLOAD_THREAD");
bean.setFlgTipo(1L);
if (bean.getNumero() <= 1.0D)
bean.setNumero(10.0D);
bean.setNota("Numero thread concorrenti utilizzato per L'UPLOAD via http o ftp");
bean.save();
bean.findByCodice("MAIL_MSG_RINNOVO");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("MAIL_MSG_RINNOVO");
bean.setDescrizione("MAIL_MSG_RINNOVO");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("mailMessage/rinnovoMsg.html");
bean.setNota("Percorso RELATIVO messaggio rinnovo");
bean.save();
bean.findByCodice("MAIL_MSG_COUPON_OMAGGIO");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("MAIL_MSG_COUPON_OMAGGIO");
bean.setDescrizione("MAIL_MSG_COUPON_OMAGGIO");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("mailMessage/couponOmaggioMsg.html");
bean.setNota("Percorso RELATIVO messaggio COUPON OMAGGIO");
bean.save();
bean.findByCodice("OCR_COMANDO_SHELL_PRODUZIONE");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("OCR_COMANDO_SHELL_PRODUZIONE");
bean.setDescrizione("OCR_COMANDO_SHELL_PRODUZIONE");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("/home/piero/Documenti/sites/bin/indicizzaR.sh");
bean.setNota("/home/piero/Documenti/sites/bin/indicizzaR.sh<BR>/home/sites/bin/indicizzaR.sh");
bean.save();
bean.findByCodice("OCR_COMANDO_SHELL_TEST");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("OCR_COMANDO_SHELL_TEST");
bean.setDescrizione("OCR_COMANDO_SHELL_TEST");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("/Users/acolzi/Documents/_ablia/work/PG/bin/test.sh");
bean.setNota("/Users/acolzi/Documents/_ablia/work/PG/bin/test.sh<br>/Users/acolzi/Documents/_ablia/work/PG/bin/test.sh");
bean.save();
bean.findByCodice("OCR_LINEE_FILE_PRODUZIONE");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("OCR_LINEE_FILE_PRODUZIONE");
bean.setDescrizione("OCR_LINEE_FILE_PRODUZIONE");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("/home/piero/Documenti/sites/bin/tmp/");
bean.setNota("/home/piero/Documenti/sites/bin/tmp/<br>/home/sites/bin/tmp/");
bean.save();
bean.findByCodice("OCR_LINEE_FILE_TEST");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("OCR_LINEE_FILE_TEST");
bean.setDescrizione("OCR_LINEE_FILE_TEST");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("/Users/acolzi/Documents/_ablia/work/PG/bin/tmp/");
bean.setNota("/Users/acolzi/Documents/_ablia/work/PG/bin/tmp/<br>/Users/acolzi/Documents/_ablia/work/PG/bin/tmp/");
bean.save();
bean.findByCodice("NUM_GG_PRIMA_DELLA_SCADENZA_RINNOVO");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("NUM_GG_PRIMA_DELLA_SCADENZA_RINNOVO");
bean.setDescrizione("NUM_GG_PRIMA_DELLA_SCADENZA_RINNOVO");
bean.setFlgTipo(1L);
bean.setNota("Numero di giorni prima da cui è possibile rinnovare l'abbonamento");
bean.save();
bean.findByCodice("MAIL_MSG_STA_PER_SCADERE");
bean.setFlgAdmin(1L);
bean.setTipoParm(l_tipoParm);
bean.setCodice("MAIL_MSG_STA_PER_SCADERE");
bean.setDescrizione("MAIL_MSG_STA_PER_SCADERE");
bean.setFlgTipo(0L);
if (bean.getTesto().isEmpty())
bean.setTesto("mailMessage/perscadereMsg.html");
bean.setNota("Percorso RELATIVO messaggio sta per scadere");
bean.save();
}
}
public boolean isScaduto() {
return isScaduto(true);
}
public boolean isFotoMaxRaggiunto() {
if (getId_users() == 0L)
return true;
if (getNFotoMax() > 0L && getNFotoVisual() >= getNFotoMax()) {
sendNoMorePictureMessageNumber();
return true;
}
return false;
}
public boolean puoScaricareFoto() {
return (!isFotoMaxRaggiunto() && !isScaduto());
}
public long getGgAScadenza() {
if (getId_users() == 0L)
return -1L;
return DBAdapter.getDateDiff(DBAdapter.getToday(), getDataScadenza());
}
public static final synchronized void addLogFoto(Users user, Foto row, ApplParmFull ap) {
LogFoto log = new LogFoto(ap);
log.setIpAddress(ap.getReqIpAddress());
log.setDataLog(DBAdapter.getToday());
log.setId_foto(row.getId_foto());
log.setId_users(user.getId_users());
ResParm rp = log.save();
if (row.getPuntoFoto().getGara().getFlgFree() == 0L)
user.incrementaFotoVisual();
Foto.addImpression(row, ap);
}
public static final synchronized void addLogFoto(Users user, String fileName, ApplParmFull ap) {
LogFoto log = new LogFoto(ap);
log.setIpAddress(ap.getReqIpAddress());
log.setDataLog(DBAdapter.getToday());
if (fileName.indexOf("mypics2") > 0) {
log.setDescrizione(fileName.substring(fileName.indexOf("mypics2")));
} else if (fileName.indexOf("mypics") > 0) {
log.setDescrizione(fileName.substring(fileName.indexOf("mypics")));
} else {
log.setDescrizione(fileName);
}
log.setId_users(user.getId_users());
ResParm rp = log.save();
user.incrementaFotoVisual();
Foto.addImpression(fileName, ap);
}
public long getFlgVisCompatta() {
return this.flgVisCompatta;
}
public void setFlgVisCompatta(long flgVisCompatta) {
this.flgVisCompatta = flgVisCompatta;
}
public void aggiornaVisCompatta(long l_flgVisCompatta) {
if (getId_users() > 0L) {
setFlgVisCompatta(l_flgVisCompatta);
save();
}
}
public ResParm rinnovaAnno(long n_foto, int l_numAnni) {
System.out.println("rinnova anno foto:" + n_foto + " anni:" + l_numAnni + ": cliente: " + getCognomeNome());
if (n_foto == 0L)
n_foto = 1000L;
if (getId_users() == 0L)
return new ResParm(false, "ERRORE! Tentativo di rinnovare utente nullo.");
if (isDaRinnovare(false) || getNFotoMax() == 1L) {
Calendar cal = Calendar.getInstance();
if (getDateDiff(getToday(), getDataScadenza()) > 0L)
cal.setTime(getDataScadenza());
cal.add(1, l_numAnni);
setDataScadenza(new Date(cal.getTimeInMillis()));
setFlgMailFotoMax(0L);
setFlgMailFotoScadenza(0L);
setFlgMiniature(0L);
setNFotoVisual(0L);
setNFotoMax(n_foto);
ResParm rp = save();
if (rp.getStatus())
rp.setMsg("Utente " + getCognomeNome() + " rinnovato fino al " + getDataFormat().format(getDataScadenza()) + " per " +
getNFotoMax() + " foto<br>");
return rp;
}
return new ResParm(false, "Attenzione! Tentativo di rinnovare utente non ancora scaduto.");
}
public boolean isScaduto(boolean inviaMail) {
if (getId_users() == 0L)
return true;
if (getDataScadenza() != null && DBAdapter.getDateDiff(DBAdapter.getToday(), getDataScadenza()) <= 0L) {
if (inviaMail)
sendNoMorePictureMessageScad();
return true;
}
return false;
}
public boolean isDaRinnovare() {
return isDaRinnovare(true);
}
public boolean isDaRinnovare(boolean inviaMail) {
long ggPrimaScadenza = getParm("NUM_GG_PRIMA_DELLA_SCADENZA_RINNOVO").getNumeroLong();
return (isScaduto(inviaMail) || DBAdapter.getDateDiff(DBAdapter.getToday(), getDataScadenza()) < ggPrimaScadenza ||
isFotoMaxRaggiunto() || getFlgMiniature() == 1L);
}
public boolean isScadutoPerSito(boolean inviaMail) {
return (isScaduto(inviaMail) || isFotoMaxRaggiunto() || getFlgMiniature() == 1L);
}
public boolean isScadutoPerSito() {
return isScadutoPerSito(true);
}
public boolean isDatiPaypalOk() {
if (getCognomeNome().isEmpty() || getIndirizzo().isEmpty() || getCap().isEmpty() || getProvincia().isEmpty())
return false;
return true;
}
public ResParm sendNoMorePictureMessageNumber() {
ResParm rp = new ResParm(true);
if (getFlgMailFotoMax() == 0L)
try {
if (getDBState() == 1) {
boolean lockOk = trySetFlgMailFotoMaxToYesIfNo();
if (!lockOk)
return rp;
String userMailMessage = getNoMorePicNumberMailMessage();
if (!getControlCode().isEmpty())
userMailMessage = userMailMessage.substring(0, userMailMessage.length() - 5) + "CC" + userMailMessage.substring(0, userMailMessage.length() - 5);
MailMessage mf = new MailMessage(getApFull(), userMailMessage);
mf.setQuestionMark(false);
mf.setString("data", getDataFormat().format(new java.util.Date()));
mf.setString("nome", getNome());
mf.setString("cognome", getCognome());
rp = mf.sendMailMessageSystem(getEMail(), mf.getMailSubject() + " Max num. foto raggiunto ", true);
} else {
rp.setStatus(false);
rp.setMsg("Email non in archivio");
}
} catch (Exception e) {
handleDebug(e);
rp.setStatus(false);
rp.setMsg(e.getMessage());
}
return rp;
}
private boolean trySetFlgMailFotoMaxToYesIfNo() {
String s_sql_string = "UPDATE USERS SET flgMailFotoMax = 1";
WcString wc = new WcString();
wc.addWc("id_users=" + getId_users());
wc.addWc("(flgMailFotoMax = 0 or flgMailFotoMax is null)");
ResParm rp = update(s_sql_string + s_sql_string);
if (rp.getStatus()) {
if (rp.getErrorCode() < 0L)
return false;
return true;
}
return false;
}
private boolean trySetFlgMailFotoScadenzaToYesIfNo() {
String s_sql_string = "UPDATE USERS SET flgMailFotoScadenza = 1";
WcString wc = new WcString();
wc.addWc("id_users=" + getId_users());
wc.addWc("(flgMailFotoScadenza = 0 or flgMailFotoScadenza is null)");
ResParm rp = update(s_sql_string + s_sql_string);
if (rp.getStatus()) {
if (rp.getErrorCode() < 0L)
return false;
return true;
}
return false;
}
public ResParm sendCouponOmaggioMailMessage() {
ResParm rp = new ResParm(true);
try {
if (getDBState() == 1) {
String key = "mail-coupon-" + getId_users();
long now = System.currentTimeMillis();
Long lastSent = couponOmaggioMailSent.get(key);
if (lastSent != null && now - lastSent < 10000L)
return new ResParm(true);
synchronized (couponOmaggioMailSent) {
lastSent = couponOmaggioMailSent.get(key);
if (lastSent != null && now - lastSent < 10000L)
return new ResParm(true);
couponOmaggioMailSent.put(key, Long.valueOf(now));
}
String rinnovoMailMsg = getDocBase() + getDocBase();
MailMessage mf = new MailMessage(getApFull(), rinnovoMailMsg);
mf.setQuestionMark(false);
mf.setString("data", getDataFormat().format(new java.util.Date()));
mf.setString("nome", getNome());
mf.setString("cognome", getCognome());
rp = mf.sendMailMessageSystem(getEMail(), mf.getMailSubject() + " Coupon Omaggio ", true);
} else {
rp.setStatus(false);
rp.setMsg("Email non in archivio!");
}
} catch (Exception e) {
handleDebug(e);
rp.setStatus(false);
rp.setMsg(e.getMessage());
}
return rp;
}
public ResParm sendScadeABreveMailMessage() {
ResParm rp = new ResParm(true);
try {
if (getDBState() == 1) {
String key = "mail-scadenza-" + getId_users();
long now = System.currentTimeMillis();
Long lastSent = scadABreveMailSent.get(key);
if (lastSent != null && now - lastSent < 10000L)
return new ResParm(true);
synchronized (scadABreveMailSent) {
lastSent = scadABreveMailSent.get(key);
if (lastSent != null && now - lastSent < 10000L)
return new ResParm(true);
scadABreveMailSent.put(key, Long.valueOf(now));
}
String rinnovoMailMsg = getDocBase() + getDocBase();
MailMessage mf = new MailMessage(getApFull(), rinnovoMailMsg);
mf.setQuestionMark(false);
mf.setString("data", getDataFormat().format(new java.util.Date()));
mf.setString("nome", getNome());
mf.setString("cognome", getCognome());
long ggScadenza = DBAdapter.getDateDiff(DBAdapter.getToday(), getDataScadenza());
mf.setLong("gg", ggScadenza);
rp = mf.sendMailMessageSystem(getEMail(), "Regalami un Sorriso - Rinnovo tra " + ggScadenza + " giorni", true);
} else {
rp.setStatus(false);
rp.setMsg("Email non in archivio!");
}
} catch (Exception e) {
handleDebug(e);
rp.setStatus(false);
rp.setMsg("ERRORE INVIO MAIL: " + e.getMessage());
}
return rp;
}
public Vectumerator<Users> findInScadenza(int ggPrimaDellaScadenza) {
String s_Sql_Find = "select A.* from USERS AS A";
WcString wc = new WcString();
wc.addWc("dataFineVld is null");
wc.addWc("A.flgValido='S'");
wc.addWc("A.dataScadenza=?");
try {
PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find);
int dataCount = 0;
Calendar cal = Calendar.getInstance();
cal.add(6, ggPrimaDellaScadenza);
dataCount++;
stmt.setDate(dataCount, new Date(cal.getTimeInMillis()));
return findRows(stmt);
} catch (Exception e) {
handleDebug(e);
return AB_EMPTY_VECTUMERATOR;
}
}
public ResParm crontabJob(ApplParmFull ap) {
ResParm rp = new ResParm(true);
Timer timer = new Timer();
timer.start();
System.out.println("RUS User crontab start...");
StringBuffer msg = new StringBuffer("\n################# Inizio RUS User crontab (" +
DBAdapter.getNow().toString() + ")\n#################");
Users user = new Users(ap);
int ggPrimaDellaScadenza = ap.getParm("NUM_GG_PRIMA_DELLA_SCADENZA_RINNOVO").getNumeroInt();
Vectumerator<Users> vec = user.findInScadenza(ggPrimaDellaScadenza);
while (vec.hasMoreElements()) {
Users row = (Users)vec.nextElement();
System.out.println(row.getCognomeNome() + " " + row.getCognomeNome() + " " + row.getEMail());
rp = row.sendScadeABreveMailMessage();
msg.append(rp.getMsg());
msg.append("\n");
}
msg.append(rp.getMsg());
msg.append("\n################# Fine RUS User crontab (" + DBAdapter.getNow().toString() + ")\n#################");
timer.stop();
msg.append("Durata aggiornamento: " + timer.getDurataHourMin() + "\n");
rp.setMsg(msg.toString());
System.out.println(msg.toString());
return rp;
}
}