|
@@ -1,5 +1,6 @@
|
|
|
package microfolie.service;
|
|
|
|
|
|
+import java.util.Calendar;
|
|
|
import java.util.Date;
|
|
|
|
|
|
import microfolie.persistance.entity.Espace;
|
|
@@ -25,8 +26,9 @@ public class FrequentationService {
|
|
|
Usager usager = usagerTable.getByCode(codeUsager);
|
|
|
Espace espace = espaceTable.getByCode(codeEspace);
|
|
|
Frequentation frequentation = table.getByUsagerAndEspace(usager.id, espace.id);
|
|
|
- // Ajout en base si introuvable
|
|
|
- if (frequentation == null) {
|
|
|
+ // Ajout en base si introuvable ou si il ne date pas d'ajourd'hui
|
|
|
+ Date aujourdhui = new Date();
|
|
|
+ if (frequentation == null || compareDate(frequentation.date, aujourdhui) < 0) {
|
|
|
frequentation = new Frequentation();
|
|
|
frequentation.usager = usager;
|
|
|
frequentation.espace = espace;
|
|
@@ -38,6 +40,33 @@ public class FrequentationService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Compare deux dates
|
|
|
+ * @param date1
|
|
|
+ * @param date2
|
|
|
+ * @return 0 si les dates sont égales, < 0 si date1 est avant date2, > 0 si date1 est apres date2
|
|
|
+ */
|
|
|
+ private long compareDate(Date date1, Date date2) {
|
|
|
+ // Transformation date1
|
|
|
+ Calendar cal1 = Calendar.getInstance();
|
|
|
+ cal1.setTime(date1);
|
|
|
+ cal1.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ cal1.set(Calendar.MINUTE, 0);
|
|
|
+ cal1.set(Calendar.SECOND, 0);
|
|
|
+ cal1.set(Calendar.MILLISECOND, 0);
|
|
|
+ long time1 = cal1.getTimeInMillis();
|
|
|
+ // Transformation date2
|
|
|
+ Calendar cal2 = Calendar.getInstance();
|
|
|
+ cal2.setTime(date2);
|
|
|
+ cal2.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ cal2.set(Calendar.MINUTE, 0);
|
|
|
+ cal2.set(Calendar.SECOND, 0);
|
|
|
+ cal2.set(Calendar.MILLISECOND, 0);
|
|
|
+ long time2 = cal2.getTimeInMillis();
|
|
|
+ // Comparaison
|
|
|
+ return time1 - time2;
|
|
|
+ }
|
|
|
+
|
|
|
public static FrequentationService getInstance() {
|
|
|
if (instance == null) {
|
|
|
instance = new FrequentationService();
|