Lots of changes and fixes

This commit is contained in:
2025-03-24 23:23:29 +00:00
parent 09b2ad8c56
commit d2013ec5c5
9 changed files with 116 additions and 54 deletions

View File

@@ -4,6 +4,7 @@ import (
"database/sql"
"log"
"strings"
"synlotto-website/helpers"
"synlotto-website/models"
)
@@ -28,21 +29,64 @@ func InsertThunderballResult(db *sql.DB, res models.ThunderballResult) error {
return err
}
func InsertMyTicket(db *sql.DB, ticket models.MyTicket) error {
stmt := `
func InsertTicket(db *sql.DB, ticket models.MyTicket) error {
// Convert optional fields to interface{} using manual check
var bonus1Val interface{}
var bonus2Val interface{}
if ticket.Bonus1 != nil {
bonus1Val = helpers.Nullable(*ticket.Bonus1)
} else {
bonus1Val = nil
}
if ticket.Bonus2 != nil {
bonus2Val = helpers.Nullable(*ticket.Bonus2)
} else {
bonus2Val = nil
}
query := `
SELECT COUNT(*) FROM my_tickets
WHERE game_type = ? AND draw_date = ?
AND ball1 = ? AND ball2 = ? AND ball3 = ?
AND ball4 = ? AND ball5 = ? AND bonus1 IS ? AND bonus2 IS ?;`
var count int
err := db.QueryRow(query,
ticket.GameType,
ticket.DrawDate,
ticket.Ball1,
ticket.Ball2,
ticket.Ball3,
ticket.Ball4,
ticket.Ball5,
bonus1Val,
bonus2Val,
).Scan(&count)
isDuplicate := count > 0
insert := `
INSERT INTO my_tickets (
game_type, draw_date,
ball1, ball2, ball3, ball4, ball5,
bonus1, bonus2
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);`
bonus1, bonus2, duplicate
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);`
_, err := db.Exec(stmt,
_, err = db.Exec(insert,
ticket.GameType, ticket.DrawDate,
ticket.Ball1, ticket.Ball2, ticket.Ball3, ticket.Ball4, ticket.Ball5,
ticket.Bonus1, ticket.Bonus2,
ticket.Ball1, ticket.Ball2, ticket.Ball3,
ticket.Ball4, ticket.Ball5,
bonus1Val, bonus2Val,
isDuplicate,
)
if err != nil {
log.Println("❌ InsertMyTicket error:", err)
log.Println("❌ Failed to insert ticket:", err)
} else if isDuplicate {
log.Println("⚠️ Duplicate ticket detected and flagged.")
}
return err
}