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.
148 lines
4.3 KiB
148 lines
4.3 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"time" |
|
|
|
"go-common/app/job/main/growup/model" |
|
"go-common/library/log" |
|
) |
|
|
|
const ( |
|
_totalIncome = "SELECT id, av_id, mid, income, total_income, is_deleted FROM av_income WHERE date = ? AND id > ? ORDER BY id LIMIT ?" |
|
_getAV = "SELECT av_id, income, total_income FROM av_income WHERE date = ?" |
|
_tag = "SELECT id, tag, category_id, is_common FROM tag_info WHERE is_deleted = 0 AND start_at <= ? AND end_at >= ?" |
|
_ncMID = "SELECT mid FROM tag_up_info WHERE is_deleted = 0 AND tag_id = ?" |
|
_commonAV = "SELECT av_id, income, total_income, is_deleted FROM av_income WHERE tag_id = ? AND date = ?" |
|
_midAV = "SELECT av_id, income, total_income, is_deleted FROM av_income WHERE mid = ? AND date = ? AND tag_id = ?" |
|
) |
|
|
|
// TotalIncome get date totalincome,upcount, avcount |
|
func (d *Dao) TotalIncome(c context.Context, date time.Time, from, limit int64) (infos []*model.IncomeInfo, err error) { |
|
rows, err := d.db.Query(c, _totalIncome, date, from, limit) |
|
if err != nil { |
|
log.Error("growup-job dao.TotalIncome error(%v)", err) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
info := &model.IncomeInfo{} |
|
err = rows.Scan(&info.ID, &info.AVID, &info.MID, &info.Income, &info.TotalIncome, &info.IsDeleted) |
|
if err != nil { |
|
log.Error("growup-job dao.TotalIncome rows scan error(%v)", err) |
|
return |
|
} |
|
infos = append(infos, info) |
|
} |
|
err = rows.Err() |
|
return |
|
} |
|
|
|
// GetAV get av income. |
|
func (d *Dao) GetAV(c context.Context, date time.Time) (infos []*model.IncomeInfo, err error) { |
|
rows, err := d.db.Query(c, _getAV, date) |
|
if err != nil { |
|
log.Error("growup-job dao.GetAV error(%v)", err) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
info := &model.IncomeInfo{} |
|
err = rows.Scan(&info.AVID, &info.Income, &info.TotalIncome) |
|
if err != nil { |
|
log.Error("growup-job dao.GetAV rows scan error(%v)", err) |
|
return |
|
} |
|
infos = append(infos, info) |
|
} |
|
err = rows.Err() |
|
return |
|
} |
|
|
|
// GetTag get tag. |
|
func (d *Dao) GetTag(c context.Context, date time.Time) (infos []*model.TagInfo, err error) { |
|
infos = make([]*model.TagInfo, 0) |
|
rows, err := d.db.Query(c, _tag, date, date) |
|
if err != nil { |
|
log.Error("growup-job dao.GetTag error(%v),sql(%s)", err, _tag) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
info := &model.TagInfo{} |
|
err = rows.Scan(&info.ID, &info.Tag, &info.Category, &info.IsCommon) |
|
if err != nil { |
|
log.Error("growup-job dao.GetTag rows scan error(%v)", err) |
|
return |
|
} |
|
infos = append(infos, info) |
|
} |
|
err = rows.Err() |
|
return |
|
} |
|
|
|
// GetMID get tag mid. |
|
func (d *Dao) GetMID(c context.Context, TagID int64) (infos []*model.MIDInfo, err error) { |
|
infos = make([]*model.MIDInfo, 0) |
|
rows, err := d.db.Query(c, _ncMID, TagID) |
|
if err != nil { |
|
log.Error("growup-job dao.GetMID error(%v),sql(%s)", err, _ncMID) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
info := &model.MIDInfo{} |
|
err = rows.Scan(&info.MID) |
|
if err != nil { |
|
log.Error("growup-job dao.GetMID rows scan error(%v)", err) |
|
return |
|
} |
|
infos = append(infos, info) |
|
} |
|
err = rows.Err() |
|
return |
|
} |
|
|
|
// TagToAV common tag av. |
|
func (d *Dao) TagToAV(c context.Context, category int, date time.Time) (infos []*model.TagInfo, err error) { |
|
infos = make([]*model.TagInfo, 0) |
|
rows, err := d.db.Query(c, _commonAV, category, date) |
|
if err != nil { |
|
log.Error("growup-job dao.TagToAV error(%v),sql(%s)", err, _commonAV) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
info := &model.TagInfo{} |
|
err = rows.Scan(&info.AVID, &info.Income, &info.TotalIncome, &info.IsDeleted) |
|
if err != nil { |
|
log.Error("growup-job dao.TagToAV rows scan error(%v)", err) |
|
return |
|
} |
|
infos = append(infos, info) |
|
} |
|
err = rows.Err() |
|
return |
|
} |
|
|
|
// MIDToAV no common tag av. |
|
func (d *Dao) MIDToAV(c context.Context, mid int64, category int, date time.Time) (infos []*model.TagInfo, err error) { |
|
infos = make([]*model.TagInfo, 0) |
|
rows, err := d.db.Query(c, _midAV, mid, date, category) |
|
if err != nil { |
|
log.Error("growup-job dao.MIDToAV error(%v),sql(%s)", err, _midAV) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
info := &model.TagInfo{} |
|
err = rows.Scan(&info.AVID, &info.Income, &info.TotalIncome, &info.IsDeleted) |
|
if err != nil { |
|
log.Error("growup-job dao.MIDToAV rows scan error(%v)", err) |
|
return |
|
} |
|
infos = append(infos, info) |
|
} |
|
err = rows.Err() |
|
return |
|
}
|
|
|