plug_link.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. // ============================================================================
  2. // This is auto-generated by gf cli tool only once. Fill this file as you wish.
  3. // ============================================================================
  4. package plug_link
  5. import (
  6. "gfast/app/model/admin/plug_linktype"
  7. "github.com/gogf/gf/database/gdb"
  8. "github.com/gogf/gf/errors/gerror"
  9. "github.com/gogf/gf/frame/g"
  10. "github.com/gogf/gf/os/gtime"
  11. )
  12. // AddReq 用于存储新增链接请求的请求参数
  13. type AddReq struct {
  14. LinkName string `p:"linkName" v:"required#名称不能为空"` // 链接名称
  15. LinkUrl string `p:"linkUrl"` // 链接URL
  16. LinkTarget string `p:"linkTarget"` // 打开方式
  17. LinkTypeID int `p:"linkTypeID"` // 所属栏目ID
  18. LinkQQ string `p:"linkQQ"` // 联系QQ
  19. LinkOrder int64 `p:"linkOrder"` // 排序
  20. LinkOpen int `p:"linkOpen"` // 0禁用1启用(是否审核)
  21. }
  22. // EditReq 用于存储修改广告位请求参数
  23. type EditReq struct {
  24. PlugLinkID int64 `p:"plugLinkID" v:"required|min:1#广告id不能为空|广告id参数错误"`
  25. AddReq
  26. }
  27. // SelectPageReq 用于存储分页查询广告的请求参数
  28. type SelectPageReq struct {
  29. LinkName string `p:"linkName"` // 广告名称
  30. PageNo int64 `p:"pageNum"` // 当前页
  31. PageSize int64 `p:"pageSize"` // 每页显示记录数
  32. }
  33. // 用于存储分页查询的数据
  34. type ListEntity struct {
  35. Entity
  36. LinkTypeName string `orm:"linktype_name" json:"linktype_name" ` // 友情链接所属分类
  37. }
  38. // GetPlugLinkByID 根据ID查询链接记录
  39. func GetPlugLinkByID(id int64) (*Entity, error) {
  40. entity, err := Model.FindOne("link_id", id)
  41. if err != nil {
  42. g.Log().Error(err)
  43. return nil, gerror.New("根据ID查询链接记录出错")
  44. }
  45. if entity == nil {
  46. return nil, gerror.New("根据ID未能查询到链接记录")
  47. }
  48. return entity, nil
  49. }
  50. // AddSave 添加友情链接
  51. func AddSave(req *AddReq) error {
  52. var entity Entity
  53. entity.LinkName = req.LinkName
  54. entity.LinkUrl = req.LinkUrl
  55. entity.LinkTarget = req.LinkTarget
  56. entity.LinkTypeid = req.LinkTypeID
  57. entity.LinkQq = req.LinkQQ
  58. entity.LinkAddtime = int(gtime.Timestamp()) // 添加时间
  59. entity.LinkOrder = req.LinkOrder
  60. entity.LinkOpen = req.LinkOpen
  61. // 保存实体
  62. _, err := entity.Insert()
  63. if err != nil {
  64. g.Log().Error(err)
  65. return gerror.New("保存失败")
  66. }
  67. return nil
  68. }
  69. // 根据ID批量删除链接
  70. func DeleteByIDs(ids []int) error {
  71. _, err := Model.Delete("link_id in(?)", ids)
  72. if err != nil {
  73. g.Log().Error(err)
  74. return gerror.New("删除链接失败")
  75. }
  76. return nil
  77. }
  78. // 根据ID来修改链接信息
  79. func EditSave(editReq *EditReq) error {
  80. // 先根据ID来查询要修改的链接记录
  81. entity, err := GetPlugLinkByID(editReq.PlugLinkID)
  82. if err != nil {
  83. return err
  84. }
  85. // 修改实体
  86. entity.LinkName = editReq.LinkName
  87. entity.LinkUrl = editReq.LinkUrl
  88. entity.LinkTarget = editReq.LinkTarget
  89. entity.LinkTypeid = editReq.LinkTypeID
  90. entity.LinkQq = editReq.LinkQQ
  91. entity.LinkOrder = editReq.LinkOrder
  92. entity.LinkOpen = editReq.LinkOpen
  93. _, err = entity.Update()
  94. if err != nil {
  95. g.Log().Error(err)
  96. return gerror.New("修改栏目失败")
  97. }
  98. return nil
  99. }
  100. // 分页查询,返回值total总记录数,page当前页
  101. func SelectListByPage(req *SelectPageReq) (total int, page int64, list []*ListEntity, err error) {
  102. model := g.DB().Table(Table + " link")
  103. if req != nil {
  104. if req.LinkName != "" {
  105. model.Where("link.link_name like ?", "%"+req.LinkName+"%")
  106. }
  107. }
  108. model = model.LeftJoin(plug_linktype.Table+" type", "type.linktype_id=link.link_typeid")
  109. // 查询友情链接总记录数(总行数)
  110. total, err = model.Count()
  111. if err != nil {
  112. g.Log().Error(err)
  113. err = gerror.New("获取总记录数失败")
  114. return 0, 0, nil, err
  115. }
  116. if req.PageNo == 0 {
  117. req.PageNo = 1
  118. }
  119. page = req.PageNo
  120. if req.PageSize == 0 {
  121. req.PageSize = 10
  122. }
  123. // 分页排序查询
  124. var res gdb.Result
  125. res, err = model.Fields("link.*,type.linktype_name").Page(int(page), int(req.PageSize)).Order("link.link_order asc,link.link_id asc").All()
  126. if err != nil {
  127. g.Log().Error(err)
  128. err = gerror.New("分页查询友情链接失败")
  129. return 0, 0, nil, err
  130. }
  131. err = res.Structs(&list)
  132. if err != nil {
  133. g.Log().Error(err)
  134. err = gerror.New("分页查询广告失败")
  135. return 0, 0, nil, err
  136. }
  137. return total, page, list, nil
  138. }