package model import ( "context" "gorm.io/gorm" ) // AIUsageRecordInsert 插入AI使用记录 func AIUsageRecordInsert(ctx context.Context, db *gorm.DB, record *AIUsageRecord) (int64, error) { result := db.WithContext(ctx).Create(record) if result.Error != nil { return 0, result.Error } return record.Id, nil } // AIUsageRecordFindByUser 根据用户ID查询使用记录(分页,按创建时间倒序) func AIUsageRecordFindByUser(ctx context.Context, db *gorm.DB, userId int64, page, pageSize int64) ([]AIUsageRecord, int64, error) { var records []AIUsageRecord var total int64 query := db.WithContext(ctx).Model(&AIUsageRecord{}).Where("user_id = ?", userId) if err := query.Count(&total).Error; err != nil { return nil, 0, err } offset := (page - 1) * pageSize if offset < 0 { offset = 0 } err := query.Order("created_at DESC").Offset(int(offset)).Limit(int(pageSize)).Find(&records).Error if err != nil { return nil, 0, err } return records, total, nil }