av_income.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package income
  2. import (
  3. "context"
  4. "fmt"
  5. model "go-common/app/admin/main/growup/model/income"
  6. "go-common/library/log"
  7. )
  8. var (
  9. _video = 0
  10. _column = 2
  11. _bgm = 3
  12. _lottery = 5
  13. )
  14. const (
  15. // select
  16. _avIncomeStatisTableSQL = "SELECT avs,money_section,money_tips,income,category_id,cdate FROM %s WHERE %s LIMIT ?,?"
  17. _avIncomeSQL = "SELECT id,av_id,mid,tag_id,is_original,upload_time,total_income,income,tax_money,date FROM av_income WHERE id > ? AND %s date >= ? AND date <= ? ORDER BY id LIMIT ?"
  18. _columnIncomeSQL = "SELECT id,aid,mid,tag_id,upload_time,total_income,income,tax_money,date FROM column_income WHERE id > ? AND date >= ? AND date <= ? AND %s is_deleted = 0 ORDER BY id LIMIT ?"
  19. )
  20. // GetArchiveStatis get av/column income statis from table and query
  21. func (d *Dao) GetArchiveStatis(c context.Context, table, query string, from, limit int) (avs []*model.ArchiveStatis, err error) {
  22. avs = make([]*model.ArchiveStatis, 0)
  23. if table == "" || query == "" {
  24. return nil, fmt.Errorf("error args table(%s), query(%s)", table, query)
  25. }
  26. rows, err := d.db.Query(c, fmt.Sprintf(_avIncomeStatisTableSQL, table, query), from, limit)
  27. if err != nil {
  28. log.Error("GetArchiveStatis d.db.Query error(%v)", err)
  29. return
  30. }
  31. defer rows.Close()
  32. for rows.Next() {
  33. list := &model.ArchiveStatis{}
  34. err = rows.Scan(&list.Avs, &list.MoneySection, &list.MoneyTips, &list.Income, &list.CategroyID, &list.CDate)
  35. if err != nil {
  36. log.Error("GetArchiveStatis rows scan error(%v)", err)
  37. return
  38. }
  39. avs = append(avs, list)
  40. }
  41. err = rows.Err()
  42. return
  43. }
  44. // GetArchiveIncome get archive income by query
  45. func (d *Dao) GetArchiveIncome(c context.Context, id int64, query string, from, to string, limit int, typ int) (archs []*model.ArchiveIncome, err error) {
  46. switch typ {
  47. case _video:
  48. return d.GetAvIncome(c, id, query, from, to, limit, typ)
  49. case _column:
  50. return d.GetColumnIncome(c, id, query, from, to, limit, typ)
  51. case _bgm:
  52. return d.GetBgmIncome(c, id, query, from, to, limit, typ)
  53. case _lottery:
  54. return d.GetLotteryIncome(c, id, query, from, to, limit, typ)
  55. }
  56. err = fmt.Errorf("get archive type error(%d)", typ)
  57. return
  58. }
  59. // GetAvIncome get av income by query
  60. func (d *Dao) GetAvIncome(c context.Context, id int64, query string, from, to string, limit int, typ int) (avs []*model.ArchiveIncome, err error) {
  61. avs = make([]*model.ArchiveIncome, 0)
  62. if query != "" {
  63. query += " AND"
  64. }
  65. rows, err := d.db.Query(c, fmt.Sprintf(_avIncomeSQL, query), id, from, to, limit)
  66. if err != nil {
  67. log.Error("GetAvIncome d.db.Query error(%v)", err)
  68. return
  69. }
  70. defer rows.Close()
  71. for rows.Next() {
  72. list := &model.ArchiveIncome{}
  73. err = rows.Scan(&list.ID, &list.AvID, &list.MID, &list.TagID, &list.IsOriginal, &list.UploadTime, &list.TotalIncome, &list.Income, &list.TaxMoney, &list.Date)
  74. if err != nil {
  75. log.Error("GetAvIncome rows scan error(%v)", err)
  76. return
  77. }
  78. list.Type = typ
  79. avs = append(avs, list)
  80. }
  81. err = rows.Err()
  82. return
  83. }
  84. // GetColumnIncome get column income by query
  85. func (d *Dao) GetColumnIncome(c context.Context, id int64, query string, from, to string, limit int, typ int) (columns []*model.ArchiveIncome, err error) {
  86. columns = make([]*model.ArchiveIncome, 0)
  87. if query != "" {
  88. query += " AND"
  89. }
  90. rows, err := d.db.Query(c, fmt.Sprintf(_columnIncomeSQL, query), id, from, to, limit)
  91. if err != nil {
  92. log.Error("GetColumnIncome d.db.Query error(%v)", err)
  93. return
  94. }
  95. defer rows.Close()
  96. for rows.Next() {
  97. list := &model.ArchiveIncome{}
  98. err = rows.Scan(&list.ID, &list.AvID, &list.MID, &list.TagID, &list.UploadTime, &list.TotalIncome, &list.Income, &list.TaxMoney, &list.Date)
  99. if err != nil {
  100. log.Error("GetColumnIncome rows scan error(%v)", err)
  101. return
  102. }
  103. list.Type = typ
  104. columns = append(columns, list)
  105. }
  106. err = rows.Err()
  107. return
  108. }