region.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package dao
  2. import (
  3. "context"
  4. "go-common/app/admin/main/tv/model"
  5. "go-common/library/ecode"
  6. "go-common/library/log"
  7. )
  8. const (
  9. _addRegSQL = `INSERT INTO tv_pages (page_id,title,index_type,index_tid,rank) VALUES (?,?,?,?,?)`
  10. _editRegSQL = `UPDATE tv_pages SET title=?,index_type=?,index_tid=? WHERE page_id=?`
  11. _del = 0
  12. _firpid = 1
  13. )
  14. // RegList region list .
  15. func (d *Dao) RegList(ctx context.Context, arg *model.Param) (res []*model.RegDB, err error) {
  16. if arg.PageID != "" {
  17. if err = d.DB.Where("page_id=? AND deleted=?", arg.PageID, _del).Find(&res).Error; err != nil {
  18. log.Error("d.DB.Where error(%v)", err)
  19. }
  20. } else {
  21. if arg.State == "2" {
  22. if err = d.DB.Order("rank ASC", true).Where("title LIKE ? AND deleted=?", "%"+arg.Title+"%", _del).Find(&res).Error; err != nil {
  23. log.Error("d.DB.Where error(%v)", err)
  24. }
  25. return
  26. }
  27. if err = d.DB.Order("rank ASC", true).Where("title LIKE ? AND deleted=? AND valid=?", "%"+arg.Title+"%", _del, arg.State).Find(&res).Error; err != nil {
  28. log.Error("d.DB.Order Where error(%v)", err)
  29. }
  30. }
  31. return
  32. }
  33. // AddReg add region .
  34. func (d *Dao) AddReg(ctx context.Context, title, itype, itid, rank string) (err error) {
  35. var (
  36. pid int
  37. res = &model.RegDB{}
  38. )
  39. tx := d.DB.Begin()
  40. if err = d.DB.Order("page_id DESC", true).First(res).Error; err != nil || res == nil {
  41. if err == ecode.NothingFound {
  42. if err = d.DB.Exec(_addRegSQL, _firpid, title, itype, itid, rank).Error; err != nil {
  43. log.Error(" d.DB.Exec error(%v)", err)
  44. tx.Rollback()
  45. return
  46. }
  47. tx.Commit()
  48. return
  49. }
  50. log.Error(" d.DB.Order error(%v)", err)
  51. tx.Rollback()
  52. return
  53. }
  54. pid = res.PageID + 1
  55. if err = d.DB.Exec(_addRegSQL, pid, title, itype, itid, rank).Error; err != nil {
  56. log.Error(" d.DB.Exec error(%v)", err)
  57. tx.Rollback()
  58. return
  59. }
  60. tx.Commit()
  61. return
  62. }
  63. // EditReg edit region .
  64. func (d *Dao) EditReg(ctx context.Context, pid, title, itype, itid string) (err error) {
  65. if err = d.DB.Exec(_editRegSQL, title, itype, itid, pid).Error; err != nil {
  66. log.Error(" d.DB.Exec error(%v)", err)
  67. }
  68. return
  69. }
  70. // UpState publish or not .
  71. func (d *Dao) UpState(ctx context.Context, pids []int, state string) (err error) {
  72. m := map[string]string{"valid": state}
  73. if err = d.DB.Table("tv_pages").Where("page_id IN (?)", pids).Updates(m).Error; err != nil {
  74. log.Error(" d.DB.Table.Where.Updates error(%v)", err)
  75. }
  76. return
  77. }