54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
|
package dao
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"context"
|
||
|
"fmt"
|
||
|
|
||
|
"go-common/app/admin/main/macross/model/publish"
|
||
|
"go-common/library/log"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
_logSharding = 10
|
||
|
// dashborad
|
||
|
_inDashboradSQL = `INSERT INTO dashboard (name,label,commit_info,out_url,coverage_url,text_size_arm64,res_size,extra) VALUES(?,?,?,?,?,?,?,?)`
|
||
|
_inDashboradLogsSQL = `INSERT INTO dashboard_log_%02d (dashboard_id,level,msg) VALUES`
|
||
|
)
|
||
|
|
||
|
func (d *Dao) hitLogs(id int64) int64 {
|
||
|
return id % _logSharding
|
||
|
}
|
||
|
|
||
|
// Dashborad insert dashboard.
|
||
|
func (d *Dao) Dashborad(c context.Context, dashboard *publish.Dashboard) (rows int64, err error) {
|
||
|
res, err := d.db.Exec(c, _inDashboradSQL, dashboard.Name, dashboard.Label, dashboard.Commit, dashboard.OutURL, dashboard.CoverageURL, dashboard.TextSizeArm64, dashboard.ResSize, dashboard.Extra)
|
||
|
if err != nil {
|
||
|
log.Error("Dashborad() d.db.Exec() error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
rows, err = res.LastInsertId()
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// DashboradLogs insert dashboard log.
|
||
|
func (d *Dao) DashboradLogs(c context.Context, id int64, logs []*publish.Log) (rows int64, err error) {
|
||
|
var (
|
||
|
buffer bytes.Buffer
|
||
|
insertTp string
|
||
|
)
|
||
|
insertTp = "(%d,'%s','%s'),"
|
||
|
buffer.WriteString(fmt.Sprintf(_inDashboradLogsSQL, d.hitLogs(id)))
|
||
|
for _, v := range logs {
|
||
|
buffer.WriteString(fmt.Sprintf(insertTp, id, v.Level, v.Msg))
|
||
|
}
|
||
|
buffer.Truncate(buffer.Len() - 1)
|
||
|
res, err := d.db.Exec(c, buffer.String())
|
||
|
if err != nil {
|
||
|
log.Error("DashboradLogs d.db.Exec() error(%v)", err)
|
||
|
return
|
||
|
}
|
||
|
rows, err = res.RowsAffected()
|
||
|
return
|
||
|
}
|