region.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package service
  2. import (
  3. "context"
  4. "go-common/app/admin/main/tv/model"
  5. "go-common/library/log"
  6. )
  7. // RegList region list .
  8. func (s *Service) RegList(ctx context.Context, arg *model.Param) (res []*model.RegList, err error) {
  9. var reg []*model.RegDB
  10. res = make([]*model.RegList, 0)
  11. if reg, err = s.dao.RegList(ctx, arg); err != nil {
  12. log.Error("s.dao.RegList error(%v)", err)
  13. return
  14. }
  15. for _, v := range reg {
  16. res = append(res, v.ToList())
  17. }
  18. return
  19. }
  20. // AddReg add region .
  21. func (s *Service) AddReg(ctx context.Context, title, itype, itid, rank string) (err error) {
  22. if err = s.dao.AddReg(ctx, title, itype, itid, rank); err != nil {
  23. log.Error("s.dao.AddReg error(%v)", err)
  24. }
  25. return
  26. }
  27. // EditReg edit region .
  28. func (s *Service) EditReg(ctx context.Context, pid, title, itype, itid string) (err error) {
  29. if err = s.dao.EditReg(ctx, pid, title, itype, itid); err != nil {
  30. log.Error("s.dao.EditReg error(%v)", err)
  31. }
  32. return
  33. }
  34. // UpState publish or not .
  35. func (s *Service) UpState(ctx context.Context, pids []int, state string) (err error) {
  36. if err = s.dao.UpState(ctx, pids, state); err != nil {
  37. log.Error("s.dao.UpState error(%v)", err)
  38. }
  39. return
  40. }
  41. // RegSort .
  42. func (s *Service) RegSort(ctx context.Context, ids []int) (err error) {
  43. order := 0
  44. for _, v := range ids {
  45. if !s.isExist(v) {
  46. log.Error("id is not exit! id(%d) error(%v)", v, err)
  47. return
  48. }
  49. }
  50. tx := s.DB.Begin()
  51. for _, v := range ids {
  52. order += 1
  53. if err = tx.Model(&model.RegDB{}).Where("id=?", v).Update(map[string]int{"rank": order}).Error; err != nil {
  54. log.Error("RegSort Update error(%v)", err)
  55. tx.Rollback()
  56. return
  57. }
  58. }
  59. tx.Commit()
  60. return
  61. }
  62. func (s *Service) isExist(id int) (f bool) {
  63. var (
  64. err error
  65. a = &model.RegDB{}
  66. )
  67. if err = s.DB.Where("id=?", id).Where("deleted=0").Find(a).Error; err != nil {
  68. log.Error("isExist s.DB.Where error(%s)")
  69. return
  70. }
  71. if a.ID != 0 {
  72. return true
  73. }
  74. return false
  75. }