Переглянути джерело

Correction bug date badge

Arthur Brandao 5 роки тому
батько
коміт
40c95836f3

+ 28 - 1
src/microfolie/persistance/table/FrequentationTable.java

@@ -13,6 +13,7 @@ import db.mapper.DatabaseMapper;
 import microfolie.persistance.entity.Espace;
 import microfolie.persistance.entity.Frequentation;
 import microfolie.persistance.entity.Usager;
+import microfolie.utils.DateUtils;
 
 @DbTable(name = "Frequentation", entity = Frequentation.class)
 public class FrequentationTable extends DatabaseTable<Frequentation>{
@@ -23,7 +24,7 @@ public class FrequentationTable extends DatabaseTable<Frequentation>{
 		// Private constructor for singleton
 	}
 
-	public Frequentation getByUsagerAndEspace(long usagerId, long espaceId) {
+	public List<Frequentation> getByUsagerAndEspace(long usagerId, long espaceId) {
 		List<String> fields = new ArrayList<>();
 		List<Object> values = new ArrayList<>();
 		fields.add("USAGER");
@@ -31,10 +32,36 @@ public class FrequentationTable extends DatabaseTable<Frequentation>{
 		fields.add("ESPACE");
 		values.add(espaceId);
 		List<Frequentation> frequentation = getWhere(fields, values);
+		return frequentation;
+	}
+	
+	public Frequentation getByUsagerAndEspaceToday(long usagerId, long espaceId) {
+		List<String> fields = new ArrayList<>();
+		List<Object> values = new ArrayList<>();
+		fields.add("USAGER");
+		values.add(usagerId);
+		fields.add("ESPACE");
+		values.add(espaceId);
+		fields.add("DATE");
+		values.add(DateUtils.removeTimeInformation(new Date()).getTime());
+		List<Frequentation> frequentation = getWhere(fields, values);
 		if (frequentation.size() <= 0) {
 			return null;
 		}
 		return frequentation.get(0);
+		
+		/*SQLQueryBuilder sqlBuilder = SQLQueryBuilder.selectQuery("Frequentation");
+		sqlBuilder.add("USAGER", usagerId);
+		sqlBuilder.add("ESPACE", espaceId);
+		sqlBuilder.add("DATE", );
+		List<Object> params = sqlBuilder.getParams();
+		params.add(from);
+		params.add(to);
+		Optional<List<Frequentation>> opt = Database.query(sql, params, DatabaseMapper.listMapper(getClass().getAnnotation(DbTable.class)));
+		if (opt.isPresent()) {
+			return cache(opt.get().get(0));
+		}
+		return null;*/
 	}
 	
 	public List<Frequentation> getByDate(Date from, Date to) {

+ 2 - 2
src/microfolie/service/FrequentationService.java

@@ -31,10 +31,10 @@ public class FrequentationService {
 	public boolean add(String codeUsager, String codeEspace) {
 		Usager usager = usagerTable.getByCode(codeUsager);
 		Espace espace = espaceTable.getByCode(codeEspace);
-		Frequentation frequentation = table.getByUsagerAndEspace(usager.id, espace.id);
+		Frequentation frequentation = table.getByUsagerAndEspaceToday(usager.id, espace.id);
 		// Ajout en base si introuvable ou si il ne date pas d'ajourd'hui
 		Date aujourdhui = new Date();
-		if (frequentation == null || DateUtils.compareDate(frequentation.date, aujourdhui) < 0) {
+		if (frequentation == null) {
 			frequentation = new Frequentation();
 			frequentation.usager = usager;
 			frequentation.espace = espace;

+ 2 - 2
src/microfolie/utils/DateUtils.java

@@ -87,13 +87,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 		return p.getYears();
 	}
 	
-	private static Calendar removeTimeInformation(Date date) {
+	public static Calendar removeTimeInformation(Date date) {
 		Calendar c = GregorianCalendar.getInstance(Locale.FRANCE);
 		c.setTime(date);
 		return removeTimeInformation(c);
 	}
 	
-	private static Calendar removeTimeInformation(Calendar c) {
+	public static Calendar removeTimeInformation(Calendar c) {
 		c.set(Calendar.HOUR_OF_DAY, 0);
 		c.set(Calendar.MINUTE, 0);
 		c.set(Calendar.SECOND, 0);