plug_ad.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package plug_ad
  2. import (
  3. "github.com/gogf/gf/errors/gerror"
  4. "github.com/gogf/gf/frame/g"
  5. "github.com/gogf/gf/os/gtime"
  6. )
  7. // AddReq 用于存储新增广告请求的请求参数
  8. type AddReq struct {
  9. AdName string `p:"adName"` // 广告名称
  10. AdAdtypeid int `p:"adAdtypeid"` // 所属位置
  11. AdCheckid int `p:"adCheckid"` // 1=图片 2=JS
  12. AdJs string `p:"adJs"` // JS代码
  13. AdPic string `p:"adPic"` // 广告图片URL
  14. AdUrl string `p:"adUrl"` // 广告链接
  15. AdContent string `p:"adContent"` // 广告文字内容
  16. AdSort int `p:"adSort"` // 排序
  17. AdOpen int `p:"adOpen"` // 1=审核 0=未审核
  18. }
  19. // EditReq 用于存储修改广告位请求参数
  20. type EditReq struct {
  21. PlugAdID int64 `p:"plugAdID"`
  22. AddReq
  23. }
  24. // SelectPageReq 用于存储分页查询广告的请求参数
  25. type SelectPageReq struct {
  26. AdName string `p:"adName"` // 广告名称
  27. PageNo int64 `p:"pageNo"` // 当前页
  28. PageSize int64 `p:"pageSize"` // 每页显示记录数
  29. }
  30. // GetPlugAdByID 根据ID查询广告记录
  31. func GetPlugAdByID(id int64) (*Entity, error) {
  32. entity, err := Model.FindOne("ad_id", id)
  33. if err != nil {
  34. g.Log().Error(err)
  35. err = gerror.New("根据ID查询广告记录出错")
  36. }
  37. if entity == nil {
  38. err = gerror.New("根据ID未能查询到广告记录")
  39. }
  40. return entity, nil
  41. }
  42. // AddSave 添加广告
  43. func AddSave(req *AddReq) error {
  44. var entity Entity
  45. entity.AdName = req.AdName // 名称
  46. entity.AdAdtypeid = req.AdAdtypeid // 位置
  47. entity.AdCheckid = req.AdCheckid // 1=图片 2=JS
  48. entity.AdJs = req.AdJs // JS代码
  49. entity.AdPic = req.AdPic // 广告图片URL
  50. entity.AdUrl = req.AdUrl // 广告链接
  51. entity.AdContent = req.AdContent // 广告文字内容
  52. entity.AdAddtime = int(gtime.Timestamp()) // 时间戳
  53. entity.AdSort = req.AdSort // 排序
  54. entity.AdOpen = req.AdOpen // 1=审核 0=未审核
  55. // 保存实体
  56. _, err := entity.Insert()
  57. if err != nil {
  58. g.Log().Error(err)
  59. err = gerror.New("保存失败")
  60. return err
  61. }
  62. return nil
  63. }
  64. // 删除广告
  65. func DeleteByIDs(Ids []int) error {
  66. _, err := Model.Delete("ad_id in(?)", Ids)
  67. if err != nil {
  68. g.Log().Error(err)
  69. return gerror.New("删除广告失败")
  70. }
  71. return nil
  72. }
  73. // 根据广告ID来修改广告位信息
  74. func EditSave(editReq *EditReq) error {
  75. // 先根据ID来查询要修改的广告记录
  76. entity, err := GetPlugAdByID(editReq.PlugAdID)
  77. if err != nil {
  78. return err
  79. }
  80. // 修改实体
  81. entity.AdName = editReq.AdName
  82. entity.AdAdtypeid = editReq.AdAdtypeid
  83. entity.AdCheckid = editReq.AdCheckid
  84. entity.AdJs = editReq.AdJs
  85. entity.AdPic = editReq.AdPic
  86. entity.AdUrl = editReq.AdUrl
  87. entity.AdContent = editReq.AdContent
  88. entity.AdSort = editReq.AdSort
  89. entity.AdOpen = editReq.AdOpen
  90. _, err = entity.Update()
  91. if err != nil {
  92. g.Log().Error(err)
  93. return gerror.New("修改广告位失败")
  94. }
  95. return nil
  96. }
  97. // 分页查询,返回值total总记录数,page当前页
  98. func SelectListByPage(req *SelectPageReq) (total int, page int64, list []*Entity, err error) {
  99. model := Model
  100. if req != nil {
  101. if req.AdName != "" {
  102. model = model.Where("ad_name like ?", "%"+req.AdName+"%")
  103. }
  104. }
  105. // 查询广告位总记录数(总行数)
  106. total, err = model.Count()
  107. if err != nil {
  108. g.Log().Error(err)
  109. err = gerror.New("获取总记录数失败")
  110. return 0, 0, nil, err
  111. }
  112. if req.PageNo == 0 {
  113. req.PageNo = 1
  114. }
  115. page = req.PageNo
  116. if req.PageSize == 0 {
  117. req.PageSize = 10
  118. }
  119. // 分页排序查询
  120. list, err = model.Page(int(page), int(req.PageSize)).Order("ad_sort asc,ad_id asc").All()
  121. if err != nil {
  122. g.Log().Error(err)
  123. err = gerror.New("分页查询广告失败")
  124. return 0, 0, nil, err
  125. }
  126. return total, page, list, nil
  127. }