123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package dao
- import (
- "context"
- "fmt"
- "time"
- "go-common/library/log"
- "go-common/library/xstr"
- "go-common/app/job/main/growup/model"
- )
- const (
- // select
- _upsSQL = "SELECT mid,nickname,fans,signed_at,is_deleted FROM up_info_video WHERE account_state = 3 AND mid IN (%s)"
- _avIncomeSQL = "SELECT mid,av_id,upload_time,total_income FROM av_income_statis WHERE av_id IN (%s) AND mtime > ?"
- _playCountSQL = "SELECT mid,play FROM up_base_statistics WHERE mid IN (%s)"
- _avBreachSQL = "SELECT id,av_id FROM av_breach_record WHERE id > ? ORDER BY id LIMIT ?"
- _deleteArchiveSpySQL = "DELETE FROM archive_spy_statistics LIMIT ?"
- _deleteUpSpySQL = "DELETE FROM up_spy_statistics LIMIT ?"
- // insert
- _inCheatUpsSQL = "INSERT INTO up_spy_statistics(mid,signed_at,nickname,fans,cheat_fans,play_count,cheat_play_count,account_state) VALUES %s ON DUPLICATE KEY UPDATE signed_at=VALUES(signed_at),nickname=VALUES(nickname),fans=VALUES(fans),cheat_fans=VALUES(cheat_fans),play_count=VALUES(play_count),cheat_play_count=VALUES(cheat_play_count),account_state=VALUES(account_state)"
- _inCheatArchiveSQL = "INSERT INTO archive_spy_statistics(archive_id,mid,nickname,upload_time,total_income,cheat_play_count,cheat_favorite,cheat_coin,deducted) VALUES %s ON DUPLICATE KEY UPDATE nickname=VALUES(nickname),total_income=VALUES(total_income),cheat_play_count=VALUES(cheat_play_count),cheat_favorite=VALUES(cheat_favorite),cheat_coin=VALUES(cheat_coin),deducted=VALUES(deducted)"
- )
- // DelArchiveSpy del archive spy
- func (d *Dao) DelArchiveSpy(c context.Context, limit int64) (rows int64, err error) {
- res, err := d.db.Exec(c, _deleteArchiveSpySQL, limit)
- if err != nil {
- return
- }
- return res.RowsAffected()
- }
- // DelUpSpy del up spy
- func (d *Dao) DelUpSpy(c context.Context, limit int64) (rows int64, err error) {
- res, err := d.db.Exec(c, _deleteUpSpySQL, limit)
- if err != nil {
- return
- }
- return res.RowsAffected()
- }
- // AvBreachRecord get av_ids deducted
- func (d *Dao) AvBreachRecord(c context.Context, id int64, limit int64) (last int64, ds map[int64]bool, err error) {
- rows, err := d.db.Query(c, _avBreachSQL, id, limit)
- if err != nil {
- return
- }
- ds = make(map[int64]bool)
- defer rows.Close()
- for rows.Next() {
- var avID int64
- err = rows.Scan(&last, &avID)
- if err != nil {
- return
- }
- ds[avID] = true
- }
- return
- }
- // Ups get ups in up_info_video
- func (d *Dao) Ups(c context.Context, mids []int64) (cs map[int64]*model.Cheating, err error) {
- rows, err := d.db.Query(c, fmt.Sprintf(_upsSQL, xstr.JoinInts(mids)))
- if err != nil {
- return
- }
- defer rows.Close()
- cs = make(map[int64]*model.Cheating)
- for rows.Next() {
- c := &model.Cheating{}
- err = rows.Scan(&c.MID, &c.Nickname, &c.Fans, &c.SignedAt, &c.IsDeleted)
- if err != nil {
- return
- }
- cs[c.MID] = c
- }
- return
- }
- // Avs get avs in av_income_statis
- func (d *Dao) Avs(c context.Context, date time.Time, aids []int64) (cs map[int64]*model.Cheating, err error) {
- rows, err := d.db.Query(c, fmt.Sprintf(_avIncomeSQL, xstr.JoinInts(aids)), date)
- if err != nil {
- return
- }
- defer rows.Close()
- cs = make(map[int64]*model.Cheating)
- for rows.Next() {
- c := &model.Cheating{}
- err = rows.Scan(&c.MID, &c.AvID, &c.UploadTime, &c.TotalIncome)
- if err != nil {
- log.Error("rows.Scan error(%v)", err)
- return
- }
- cs[c.AvID] = c
- }
- return
- }
- // PlayCount get play count in up_base_statistics
- func (d *Dao) PlayCount(c context.Context, mids []int64) (cs map[int64]int64, err error) {
- rows, err := d.db.Query(c, fmt.Sprintf(_playCountSQL, xstr.JoinInts(mids)))
- if err != nil {
- return
- }
- cs = make(map[int64]int64)
- defer rows.Close()
- for rows.Next() {
- var mid, count int64
- err = rows.Scan(&mid, &count)
- if err != nil {
- log.Error("rows.Scan error(%v)", err)
- return
- }
- cs[mid] = count
- }
- return
- }
- // InsertCheatUps insert cheat ups
- func (d *Dao) InsertCheatUps(c context.Context, values string) (rows int64, err error) {
- res, err := d.db.Exec(c, fmt.Sprintf(_inCheatUpsSQL, values))
- if err != nil {
- return
- }
- return res.RowsAffected()
- }
- // InsertCheatArchives insert cheat archives
- func (d *Dao) InsertCheatArchives(c context.Context, values string) (rows int64, err error) {
- res, err := d.db.Exec(c, fmt.Sprintf(_inCheatArchiveSQL, values))
- if err != nil {
- return
- }
- return res.RowsAffected()
- }
|