fix: improvement log record ads tih ip, useragent, and uer_id

This commit is contained in:
ericprd
2025-03-19 22:43:31 +08:00
parent b0099dac1e
commit 290d7f6701
9 changed files with 83 additions and 28 deletions
+2 -2
View File
@@ -9,8 +9,8 @@ func (a *accessor) GetAll() ([]adsdomain.AdsResponse, error) {
var ads []adsdomain.AdsResponse
if err := a.db.Table("ads").
Select("ads.*, COUNT(log_ads.ads_id) as clicked").
Joins("LEFT JOIN log_ads ON log_ads.ads_id = ads.id").
Select("ads.*, COUNT(log_ads.content_id) as clicked").
Joins("LEFT JOIN log_ads ON log_ads.content_id = ads.id").
Group("ads.id").
Scan(&ads).Error; err != nil {
return ads, fmt.Errorf("failed to get all ads: %v", err)
+18 -5
View File
@@ -2,16 +2,29 @@ package logrepository
import (
"legalgo-BE-go/database"
logsdomain "legalgo-BE-go/internal/domain/logs"
"github.com/google/uuid"
)
func (a *accessor) CreateLogAds(adsID string) error {
spec := database.LogAds{
ID: uuid.NewString(),
AdsID: adsID,
func (a *accessor) CreateLogAds(spec logsdomain.LogsSpec) error {
newSpec := database.LogAds{
ID: uuid.NewString(),
ContentID: spec.ContentID,
}
if err := a.db.Create(&spec).Error; err != nil {
if spec.UserID != nil {
newSpec.UserID = *spec.UserID
}
if spec.IP != nil {
newSpec.IP = *spec.IP
}
if spec.UserAgent != nil {
newSpec.UserAgent = *spec.UserAgent
}
if err := a.db.Create(&newSpec).Error; err != nil {
return err
}
+2 -1
View File
@@ -3,6 +3,7 @@ package logrepository
import (
"legalgo-BE-go/database"
adsdomain "legalgo-BE-go/internal/domain/ads"
logsdomain "legalgo-BE-go/internal/domain/logs"
)
type accessor struct {
@@ -10,7 +11,7 @@ type accessor struct {
}
type Log interface {
CreateLogAds(string) error
CreateLogAds(logsdomain.LogsSpec) error
GetAllLogAds(string) ([]adsdomain.Ads, error)
}