DDD
This commit is contained in:
parent
31c91c51ea
commit
4ef3dcaf08
@ -2,6 +2,7 @@ package renders
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"cangui/whatsapp/backend/models"
|
"cangui/whatsapp/backend/models"
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
"text/template"
|
"text/template"
|
||||||
@ -538,13 +539,17 @@ func ClientConsumptionPage(db *gorm.DB) http.HandlerFunc {
|
|||||||
http.Error(w, "Non authentifié", http.StatusUnauthorized)
|
http.Error(w, "Non authentifié", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fmt.Println("🔐 SSOID reçu :", ssoid)
|
||||||
|
|
||||||
var currentUser models.User
|
var currentUser models.User
|
||||||
if err := db.Where("sso_id = ?", ssoid).First(¤tUser).Error; err != nil {
|
if err := db.Where("sso_id = ?", ssoid).First(¤tUser).Error; err != nil {
|
||||||
http.Error(w, "Utilisateur introuvable", http.StatusUnauthorized)
|
http.Error(w, "Utilisateur introuvable", http.StatusUnauthorized)
|
||||||
|
fmt.Println("❌ Utilisateur introuvable en base pour ce SSOID")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fmt.Printf("👤 Utilisateur connecté : %s (ID %d - rôle %s)\n", currentUser.Email, currentUser.ID, currentUser.Role)
|
||||||
|
|
||||||
|
// Récupérer les filtres
|
||||||
period := r.URL.Query().Get("period")
|
period := r.URL.Query().Get("period")
|
||||||
clientIDStr := r.URL.Query().Get("client")
|
clientIDStr := r.URL.Query().Get("client")
|
||||||
var clientID uint
|
var clientID uint
|
||||||
@ -552,7 +557,12 @@ func ClientConsumptionPage(db *gorm.DB) http.HandlerFunc {
|
|||||||
idParsed, _ := strconv.Atoi(clientIDStr)
|
idParsed, _ := strconv.Atoi(clientIDStr)
|
||||||
clientID = uint(idParsed)
|
clientID = uint(idParsed)
|
||||||
}
|
}
|
||||||
|
fmt.Println("📅 Filtre période :", period)
|
||||||
|
if clientID > 0 {
|
||||||
|
fmt.Println("🎯 Filtre client ID :", clientID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calcul de la date de début
|
||||||
var fromDate time.Time
|
var fromDate time.Time
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
switch period {
|
switch period {
|
||||||
@ -567,8 +577,9 @@ func ClientConsumptionPage(db *gorm.DB) http.HandlerFunc {
|
|||||||
default:
|
default:
|
||||||
fromDate = time.Time{}
|
fromDate = time.Time{}
|
||||||
}
|
}
|
||||||
|
fmt.Println("📆 Date de début utilisée :", fromDate)
|
||||||
|
|
||||||
// Préparation des filtres
|
// Requête de base
|
||||||
query := db.Model(&models.Consumption{})
|
query := db.Model(&models.Consumption{})
|
||||||
if currentUser.Role == models.ROLE_ADMIN {
|
if currentUser.Role == models.ROLE_ADMIN {
|
||||||
if clientID > 0 {
|
if clientID > 0 {
|
||||||
@ -581,17 +592,22 @@ func ClientConsumptionPage(db *gorm.DB) http.HandlerFunc {
|
|||||||
query = query.Where("created_at >= ?", fromDate)
|
query = query.Where("created_at >= ?", fromDate)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Regroupement par date
|
// Résumé journalier
|
||||||
type DailySummary struct {
|
type DailySummary struct {
|
||||||
Date time.Time
|
Date time.Time
|
||||||
TotalCredits uint
|
TotalCredits uint
|
||||||
}
|
}
|
||||||
var summaries []DailySummary
|
var summaries []DailySummary
|
||||||
query.Select("DATE(created_at) as date, SUM(credits_used) as total_credits").
|
result := query.Select("DATE(created_at) as date, SUM(credits_used) as total_credits").
|
||||||
Group("DATE(created_at)").Order("date desc").
|
Group("DATE(created_at)").Order("date desc").
|
||||||
Scan(&summaries)
|
Scan(&summaries)
|
||||||
|
|
||||||
// Détail par jour
|
if result.Error != nil {
|
||||||
|
fmt.Println("❌ Erreur lors de la récupération du résumé :", result.Error)
|
||||||
|
}
|
||||||
|
fmt.Printf("📊 Résumés trouvés : %d\n", len(summaries))
|
||||||
|
|
||||||
|
// Détails par date
|
||||||
details := make(map[string][]models.Consumption)
|
details := make(map[string][]models.Consumption)
|
||||||
for _, s := range summaries {
|
for _, s := range summaries {
|
||||||
var daily []models.Consumption
|
var daily []models.Consumption
|
||||||
@ -608,6 +624,7 @@ func ClientConsumptionPage(db *gorm.DB) http.HandlerFunc {
|
|||||||
}
|
}
|
||||||
detailQuery.Order("created_at desc").Find(&daily)
|
detailQuery.Order("created_at desc").Find(&daily)
|
||||||
|
|
||||||
|
fmt.Printf("📅 Détails du %s : %d enregistrements\n", s.Date.Format("2006-01-02"), len(daily))
|
||||||
details[s.Date.Format("2006-01-02")] = daily
|
details[s.Date.Format("2006-01-02")] = daily
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -622,6 +639,7 @@ func ClientConsumptionPage(db *gorm.DB) http.HandlerFunc {
|
|||||||
if currentUser.Role == models.ROLE_ADMIN {
|
if currentUser.Role == models.ROLE_ADMIN {
|
||||||
var clients []models.User
|
var clients []models.User
|
||||||
db.Where("role = ?", "CLIENT").Find(&clients)
|
db.Where("role = ?", "CLIENT").Find(&clients)
|
||||||
|
fmt.Printf("👥 Nombre de clients trouvés : %d\n", len(clients))
|
||||||
data["Clients"] = clients
|
data["Clients"] = clients
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -631,6 +649,7 @@ func ClientConsumptionPage(db *gorm.DB) http.HandlerFunc {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// pour un rendu complet de la page
|
// pour un rendu complet de la page
|
||||||
func renderTemplate(w http.ResponseWriter, templ string, data map[string]interface{}) {
|
func renderTemplate(w http.ResponseWriter, templ string, data map[string]interface{}) {
|
||||||
t, err := template.ParseFiles(
|
t, err := template.ParseFiles(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user