You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.9 KiB
62 lines
1.9 KiB
package archive |
|
|
|
import ( |
|
"context" |
|
"time" |
|
|
|
"go-common/app/job/main/videoup-report/model/archive" |
|
"go-common/library/database/sql" |
|
"go-common/library/log" |
|
) |
|
|
|
const ( |
|
_reportAddByTypeIDSQL = "INSERT INTO archive_report_sum(content,ctime,mtime,type) VALUE(?,?,?,?)" |
|
_reportGetByTypeIDSQL = "SELECT id,content,ctime,mtime,type FROM archive_report_sum WHERE type=? AND mtime>=? AND mtime<=?" |
|
_reportLastByTypeIDSQL = "SELECT id,content,ctime,mtime,type FROM archive_report_sum WHERE type=? ORDER BY id DESC LIMIT 1" |
|
) |
|
|
|
// ReportLast get last inserted report |
|
func (d *Dao) ReportLast(c context.Context, typeid int8) (report *archive.Report, err error) { |
|
row := d.db.QueryRow(c, _reportLastByTypeIDSQL, typeid) |
|
report = &archive.Report{} |
|
if err = row.Scan(&report.ID, &report.Content, &report.CTime, &report.MTime, &report.TypeID); err != nil { |
|
if err == sql.ErrNoRows { |
|
report = nil |
|
err = nil |
|
} else { |
|
log.Error("row.Scan error(%v)", err) |
|
} |
|
return |
|
} |
|
return |
|
} |
|
|
|
// ReportAdd report add of typeid |
|
func (d *Dao) ReportAdd(c context.Context, typeid int8, content string, ctime, mtime time.Time) (lastID int64, err error) { |
|
res, err := d.db.Exec(c, _reportAddByTypeIDSQL, content, ctime, mtime, typeid) |
|
if err != nil { |
|
log.Error("d.TaskTookAddStmt.Exec error(%v)", err) |
|
return |
|
} |
|
lastID, err = res.LastInsertId() |
|
return |
|
} |
|
|
|
// Reports report get of typeid |
|
func (d *Dao) Reports(c context.Context, typeid int8, stime, etime time.Time) (reports []*archive.Report, err error) { |
|
rows, err := d.db.Query(c, _reportGetByTypeIDSQL, typeid, stime, etime) |
|
if err != nil { |
|
log.Error("d.Reports.Query error(%v)", err) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
report := &archive.Report{} |
|
if err = rows.Scan(&report.ID, &report.Content, &report.CTime, &report.MTime, &report.TypeID); err != nil { |
|
log.Error("rows.Scan error(%v)", err) |
|
return |
|
} |
|
reports = append(reports, report) |
|
} |
|
return |
|
}
|
|
|