12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package charge
- import (
- "context"
- "fmt"
- "time"
- model "go-common/app/job/main/growup/model/charge"
- "go-common/library/log"
- )
- const (
- _columnChargeSQL = "SELECT id,aid,title,mid,tag_id,words,upload_time,inc_charge,view_c,date FROM %s WHERE id > ? AND date = ? AND inc_charge > 0 ORDER BY id LIMIT ?"
- _columnStatisSQL = "SELECT id,aid,total_charge FROM column_charge_statis WHERE id > ? ORDER BY id LIMIT ?"
- _countCmDailySQL = "SELECT COUNT(*) FROM column_daily_charge WHERE date = '%s'"
- _inCmChargeTableSQL = "INSERT INTO %s(aid,mid,tag_id,inc_charge,date,upload_time) VALUES %s ON DUPLICATE KEY UPDATE inc_charge=VALUES(inc_charge)"
- _inCmStatisSQL = "INSERT INTO column_charge_statis(aid,mid,tag_id,total_charge,upload_time) VALUES %s ON DUPLICATE KEY UPDATE total_charge=VALUES(total_charge)"
- )
- // ColumnCharge get column charge by date
- func (d *Dao) ColumnCharge(c context.Context, date time.Time, id int64, limit int, table string) (columns []*model.Column, err error) {
- columns = make([]*model.Column, 0)
- rows, err := d.db.Query(c, fmt.Sprintf(_columnChargeSQL, table), id, date, limit)
- if err != nil {
- log.Error("ColumnCharge d.db.Query error(%v)", err)
- return
- }
- defer rows.Close()
- for rows.Next() {
- column := &model.Column{}
- err = rows.Scan(&column.ID, &column.AID, &column.Title, &column.MID, &column.TagID, &column.Words, &column.UploadTime, &column.IncCharge, &column.IncViewCount, &column.Date)
- if err != nil {
- log.Error("ColumnCharge rows.Scan error(%v)", err)
- return
- }
- columns = append(columns, column)
- }
- return
- }
- // CmStatis column statis
- func (d *Dao) CmStatis(c context.Context, id int64, limit int) (columns []*model.ColumnStatis, err error) {
- columns = make([]*model.ColumnStatis, 0)
- rows, err := d.db.Query(c, _columnStatisSQL, id, limit)
- if err != nil {
- log.Error("CmStatis d.db.Query error(%v)", err)
- return
- }
- defer rows.Close()
- for rows.Next() {
- column := &model.ColumnStatis{}
- err = rows.Scan(&column.ID, &column.AID, &column.TotalCharge)
- if err != nil {
- log.Error("CmStatis rows.Scan error(%v)", err)
- return
- }
- columns = append(columns, column)
- }
- return
- }
- // InsertCmChargeTable insert column charge
- func (d *Dao) InsertCmChargeTable(c context.Context, vals, table string) (rows int64, err error) {
- if vals == "" {
- return
- }
- res, err := d.db.Exec(c, fmt.Sprintf(_inCmChargeTableSQL, table, vals))
- if err != nil {
- log.Error("InsertCmChargeTable(%s) tx.Exec error(%v)", table, err)
- return
- }
- return res.RowsAffected()
- }
- // InsertCmStatisBatch insert column statis
- func (d *Dao) InsertCmStatisBatch(c context.Context, vals string) (rows int64, err error) {
- if vals == "" {
- return
- }
- res, err := d.db.Exec(c, fmt.Sprintf(_inCmStatisSQL, vals))
- if err != nil {
- log.Error("InsertCmStatisBatch tx.Exec error(%v)", err)
- return
- }
- return res.RowsAffected()
- }
- // CountCmDailyCharge get column_daily_charge count
- func (d *Dao) CountCmDailyCharge(c context.Context, date string) (count int64, err error) {
- err = d.db.QueryRow(c, fmt.Sprintf(_countCmDailySQL, date)).Scan(&count)
- return
- }
|