Files
slogan/server/styleagent/dao/cps_click_log_dao.go
T
admin a6de9ebd12 Add 'server/' from commit 'e64421295fff83acbb6d6ab3d3b27f3ef8368f00'
git-subtree-dir: server
git-subtree-mainline: c4e617ada7
git-subtree-split: e64421295f
2026-08-04 15:02:35 +08:00

56 lines
1.9 KiB
Go

package dao
import (
"context"
"slogan-agent/styleagent/consts"
"slogan-agent/styleagent/model/entity"
"github.com/gogf/gf/v2/frame/g"
)
var CpsClickLog = &cpsClickLogDao{}
type cpsClickLogDao struct{}
func init() {
ctx := context.Background()
_, err := dbCps().Exec(ctx, `CREATE TABLE IF NOT EXISTS `+consts.TableNameCpsClickLog+` (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL DEFAULT 0,
source TEXT NOT NULL DEFAULT '',
outer_id TEXT NOT NULL DEFAULT '',
scene TEXT NOT NULL DEFAULT '',
plan_id INTEGER NOT NULL DEFAULT 0,
category_code TEXT NOT NULL DEFAULT '',
deeplink TEXT NOT NULL DEFAULT '',
ip TEXT NOT NULL DEFAULT '',
created_at DATETIME DEFAULT (datetime('now','localtime'))
)`)
if err != nil {
g.Log().Warningf(ctx, "create cps_click_log table failed: %v", err)
}
_, err = dbCps().Exec(ctx, "CREATE INDEX IF NOT EXISTS idx_cps_click_user ON "+
consts.TableNameCpsClickLog+"(user_id, created_at)")
if err != nil {
g.Log().Warningf(ctx, "create cps_click_log index failed: %v", err)
}
}
func (d *cpsClickLogDao) Insert(ctx context.Context, log *entity.CpsClickLog) (int64, error) {
r, err := dbCps().Exec(ctx, "INSERT INTO "+consts.TableNameCpsClickLog+
" (user_id, source, outer_id, scene, plan_id, category_code, deeplink, ip, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, datetime('now','localtime'))",
log.UserId, log.Source, log.OuterId, log.Scene, log.PlanId,
log.CategoryCode, log.Deeplink, log.Ip)
if err != nil {
return 0, err
}
return r.LastInsertId()
}
func (d *cpsClickLogDao) ListByUser(ctx context.Context, userId int64, limit int) ([]*entity.CpsClickLog, error) {
var list []*entity.CpsClickLog
err := dbCps().Model(consts.TableNameCpsClickLog).Ctx(ctx).
Where("user_id", userId).OrderDesc("id").Limit(limit).Scan(&list)
return list, err
}