av_breach.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package dao
  2. import (
  3. "context"
  4. "fmt"
  5. "go-common/app/job/main/growup/model"
  6. "go-common/library/log"
  7. )
  8. const (
  9. // list av_breach_record
  10. _avBreachRecordSQL = "SELECT id,av_id,mid,money,cdate,reason FROM av_breach_record WHERE cdate >= '%s' AND cdate <= '%s'"
  11. _avBreachPreSQL = "SELECT aid,mid FROM av_breach_pre WHERE cdate = '%s' AND ctype = ? AND state = ?"
  12. // insert
  13. _inAvBreachPreSQL = "INSERT INTO av_breach_pre(aid, mid, cdate, ctype, state) VALUES(%s) ON DUPLICATE KEY UPDATE state=VALUES(state)"
  14. // update
  15. _upAvBreachPresSQL = "UPDATE av_breach_pre SET state = ? WHERE aid = ? AND ctype = ? AND cdate >= '%s' AND state = 1"
  16. )
  17. // GetAvBreach get av_breach by date
  18. func (d *Dao) GetAvBreach(c context.Context, start, end string) (avs []*model.AvBreach, err error) {
  19. avs = make([]*model.AvBreach, 0)
  20. rows, err := d.db.Query(c, fmt.Sprintf(_avBreachRecordSQL, start, end))
  21. if err != nil {
  22. log.Error("GetAvBreach d.db.Query error(%v)", err)
  23. return
  24. }
  25. defer rows.Close()
  26. for rows.Next() {
  27. list := &model.AvBreach{}
  28. err = rows.Scan(&list.ID, &list.AvID, &list.MID, &list.Money, &list.Date, &list.Reason)
  29. if err != nil {
  30. log.Error("GetAvBreach rows scan error(%v)", err)
  31. return
  32. }
  33. avs = append(avs, list)
  34. }
  35. err = rows.Err()
  36. return
  37. }
  38. // GetAvBreachPre get av breach pre by date and state
  39. func (d *Dao) GetAvBreachPre(c context.Context, ctype, state int, cdate string) (avs []*model.AvBreach, err error) {
  40. avs = make([]*model.AvBreach, 0)
  41. rows, err := d.db.Query(c, fmt.Sprintf(_avBreachPreSQL, cdate), ctype, state)
  42. if err != nil {
  43. log.Error("GetAvBreachPre d.db.Query error(%v)", err)
  44. return
  45. }
  46. defer rows.Close()
  47. for rows.Next() {
  48. list := &model.AvBreach{}
  49. err = rows.Scan(&list.AvID, &list.MID)
  50. if err != nil {
  51. log.Error("GetAvBreachPre rows scan error(%v)", err)
  52. return
  53. }
  54. avs = append(avs, list)
  55. }
  56. err = rows.Err()
  57. return
  58. }
  59. // InsertAvBreachPre insert into av_breach_pre
  60. func (d *Dao) InsertAvBreachPre(c context.Context, val string) (rows int64, err error) {
  61. if val == "" {
  62. return
  63. }
  64. res, err := d.db.Exec(c, fmt.Sprintf(_inAvBreachPreSQL, val))
  65. if err != nil {
  66. log.Error("InsertAvBreachPre(%s) tx.Exec error(%v)", val, err)
  67. return
  68. }
  69. return res.RowsAffected()
  70. }
  71. // UpdateAvBreachPre update av breach pre
  72. func (d *Dao) UpdateAvBreachPre(c context.Context, aid, ctype int64, date string, state int) (rows int64, err error) {
  73. res, err := d.db.Exec(c, fmt.Sprintf(_upAvBreachPresSQL, date), state, aid, ctype)
  74. if err != nil {
  75. log.Error("UpdateAvBreachPre tx.Exec error(%v)", err)
  76. return
  77. }
  78. return res.RowsAffected()
  79. }