staff_apply.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package archive
  2. import (
  3. "context"
  4. bsql "database/sql"
  5. "fmt"
  6. "go-common/app/service/main/videoup/model/archive"
  7. "go-common/library/database/sql"
  8. "go-common/library/log"
  9. "go-common/library/xstr"
  10. )
  11. const (
  12. _inApplySQL = `INSERT INTO archive_staff_apply (type,as_id,apply_aid,apply_up_mid,apply_staff_mid,apply_title,apply_title_id,state,deal_state) VALUES (?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE type=?,apply_title=?,apply_title_id=?,state=?,deal_state=?,as_id=?`
  13. _selApplySQL = `SELECT sa.id,sa.type,sa.as_id,sa.apply_aid,sa.apply_up_mid,sa.apply_staff_mid,sa.apply_title,sa.apply_title_id,sa.state,sa.deal_state,s.state as staff_state,s.staff_title FROM archive_staff_apply sa LEFT JOIN archive_staff s on s.id=sa.as_id where sa.id=?`
  14. _selApplysSQL = `SELECT sa.id,sa.type,sa.as_id,sa.apply_aid,sa.apply_up_mid,sa.apply_staff_mid,sa.apply_title,sa.apply_title_id,sa.state,sa.deal_state,s.state as staff_state,s.staff_title FROM archive_staff_apply sa LEFT JOIN archive_staff s on s.id=sa.as_id where sa.id IN(%s)`
  15. _selApplysByAIDSQL = `SELECT sa.id,sa.type,sa.as_id,sa.apply_aid,sa.apply_up_mid,sa.apply_staff_mid,sa.apply_title,sa.apply_title_id,sa.state,sa.deal_state,s.state as staff_state,s.staff_title FROM archive_staff_apply sa LEFT JOIN archive_staff s on s.id=sa.as_id where sa.apply_aid =?`
  16. _selApplysByAIDSANDMIDSQL = `SELECT sa.id,sa.type,sa.as_id,sa.apply_aid,sa.apply_up_mid,sa.apply_staff_mid,sa.apply_title,sa.apply_title_id,sa.state,sa.deal_state,s.state as staff_state,s.staff_title FROM archive_staff_apply sa LEFT JOIN archive_staff s on s.id=sa.as_id where sa.apply_aid IN(%s) AND sa.apply_staff_mid=%d`
  17. _selApplysByMIDSTAFFSQL = `SELECT sa.id,sa.type,sa.as_id,sa.apply_aid,sa.apply_up_mid,sa.apply_staff_mid,sa.apply_title,sa.apply_title_id,sa.state,sa.deal_state,s.state as staff_state,s.staff_title FROM archive_staff_apply sa LEFT JOIN archive_staff s on s.id=sa.as_id where sa.apply_up_mid=? AND sa.apply_staff_mid =?`
  18. _midCountSQL = `select count(*) as count from archive_staff_apply where apply_staff_mid=?`
  19. )
  20. // Apply get archive Apply
  21. func (d *Dao) Apply(c context.Context, ID int64) (p *archive.StaffApply, err error) {
  22. row := d.rddb.QueryRow(c, _selApplySQL, ID)
  23. p = &archive.StaffApply{}
  24. var title bsql.NullString
  25. var state bsql.NullInt64
  26. if err = row.Scan(&p.ID, &p.Type, &p.ASID, &p.ApplyAID, &p.ApplyUpMID, &p.ApplyStaffMID, &p.ApplyTitle, &p.ApplyTitleID, &p.State, &p.DealState, &state, &title); err != nil {
  27. if err == sql.ErrNoRows {
  28. p = nil
  29. err = nil
  30. } else {
  31. log.Error("row.Scan error(%v)", err)
  32. }
  33. return
  34. }
  35. p.StaffTitle = title.String
  36. p.StaffState = int8(state.Int64)
  37. return
  38. }
  39. // MidCount get
  40. func (d *Dao) MidCount(c context.Context, ID int64) (count int64, err error) {
  41. row := d.rddb.QueryRow(c, _midCountSQL, ID)
  42. if err = row.Scan(&count); err != nil {
  43. if err != sql.ErrNoRows {
  44. log.Error("row.Scan error(%v)", err)
  45. return
  46. }
  47. err = nil
  48. }
  49. return
  50. }
  51. // Applys get .
  52. func (d *Dao) Applys(c context.Context, ids []int64) (as []*archive.StaffApply, err error) {
  53. rows, err := d.db.Query(c, fmt.Sprintf(_selApplysSQL, xstr.JoinInts(ids)))
  54. if err != nil {
  55. log.Error("d.db.Applys ids(%+v) error(%v)", ids, err)
  56. return
  57. }
  58. defer rows.Close()
  59. for rows.Next() {
  60. var title bsql.NullString
  61. var state bsql.NullInt64
  62. s := &archive.StaffApply{}
  63. if err = rows.Scan(&s.ID, &s.Type, &s.ASID, &s.ApplyAID, &s.ApplyUpMID, &s.ApplyStaffMID, &s.ApplyTitle, &s.ApplyTitleID, &s.State, &s.DealState, &state, &title); err != nil {
  64. log.Error("rows.Scan error(%v)", err)
  65. return
  66. }
  67. s.StaffTitle = title.String
  68. s.StaffState = int8(state.Int64)
  69. as = append(as, s)
  70. }
  71. return
  72. }
  73. // FilterApplys get .
  74. func (d *Dao) FilterApplys(c context.Context, aids []int64, mid int64) (as []*archive.StaffApply, err error) {
  75. rows, err := d.db.Query(c, fmt.Sprintf(_selApplysByAIDSANDMIDSQL, xstr.JoinInts(aids), mid))
  76. if err != nil {
  77. log.Error("d.db.FilterApplys(%v,%d) error(%v)", aids, mid, err)
  78. return
  79. }
  80. defer rows.Close()
  81. for rows.Next() {
  82. var title bsql.NullString
  83. var state bsql.NullInt64
  84. s := &archive.StaffApply{}
  85. if err = rows.Scan(&s.ID, &s.Type, &s.ASID, &s.ApplyAID, &s.ApplyUpMID, &s.ApplyStaffMID, &s.ApplyTitle, &s.ApplyTitleID, &s.State, &s.DealState, &state, &title); err != nil {
  86. log.Error("rows.Scan error(%v)", err)
  87. return
  88. }
  89. s.StaffTitle = title.String
  90. s.StaffState = int8(state.Int64)
  91. as = append(as, s)
  92. }
  93. return
  94. }
  95. // ApplysByAID get .
  96. func (d *Dao) ApplysByAID(c context.Context, aid int64) (as []*archive.StaffApply, err error) {
  97. rows, err := d.db.Query(c, _selApplysByAIDSQL, aid)
  98. if err != nil {
  99. log.Error("d.db.ApplysByAID aid(%d) error(%v)", aid, err)
  100. return
  101. }
  102. defer rows.Close()
  103. for rows.Next() {
  104. var title bsql.NullString
  105. var state bsql.NullInt64
  106. s := &archive.StaffApply{}
  107. if err = rows.Scan(&s.ID, &s.Type, &s.ASID, &s.ApplyAID, &s.ApplyUpMID, &s.ApplyStaffMID, &s.ApplyTitle, &s.ApplyTitleID, &s.State, &s.DealState, &state, &title); err != nil {
  108. log.Error("rows.Scan error(%v)", err)
  109. return
  110. }
  111. s.StaffTitle = title.String
  112. s.StaffState = int8(state.Int64)
  113. as = append(as, s)
  114. }
  115. return
  116. }
  117. // ApplysByMIDAndStaff get .
  118. func (d *Dao) ApplysByMIDAndStaff(c context.Context, upMID, staffMID int64) (as []*archive.StaffApply, err error) {
  119. rows, err := d.db.Query(c, _selApplysByMIDSTAFFSQL, upMID, staffMID)
  120. if err != nil {
  121. log.Error("d.db.ApplysByAID upMID(%d) staffMID(%d) error(%v)", upMID, staffMID, err)
  122. return
  123. }
  124. defer rows.Close()
  125. for rows.Next() {
  126. var title bsql.NullString
  127. var state bsql.NullInt64
  128. s := &archive.StaffApply{}
  129. if err = rows.Scan(&s.ID, &s.Type, &s.ASID, &s.ApplyAID, &s.ApplyUpMID, &s.ApplyStaffMID, &s.ApplyTitle, &s.ApplyTitleID, &s.State, &s.DealState, &state, &title); err != nil {
  130. log.Error("rows.Scan error(%v)", err)
  131. return
  132. }
  133. s.StaffTitle = title.String
  134. s.StaffState = int8(state.Int64)
  135. as = append(as, s)
  136. }
  137. return
  138. }
  139. // TxAddApply tx.
  140. func (d *Dao) TxAddApply(tx *sql.Tx, param *archive.ApplyParam) (id int64, err error) {
  141. res, err := tx.Exec(_inApplySQL, param.Type, param.ASID, param.ApplyAID, param.ApplyUpMID, param.ApplyStaffMID, param.ApplyTitle, param.ApplyTitleID, param.State, param.DealState, param.Type, param.ApplyTitle, param.ApplyTitleID, param.State, param.DealState, param.ASID)
  142. if err != nil {
  143. log.Error("d.TxAddApply.Exec() error(%v)", err)
  144. return
  145. }
  146. id, err = res.LastInsertId()
  147. return
  148. }