news.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. // ==========================================================================
  2. // 生成日期:2020-09-17 10:13:16
  3. // 生成人:gfast
  4. // ==========================================================================
  5. package wf_news
  6. import (
  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. "github.com/gogf/gf/util/gconv"
  12. )
  13. // AddReq 用于存储新增请求的请求参数
  14. type AddReq struct {
  15. Title string `p:"title" `
  16. Uid uint64
  17. }
  18. // EditReq 用于存储修改请求参数
  19. type EditReq struct {
  20. Id int64 `p:"id" v:"required#主键ID不能为空"`
  21. Title string `p:"title" `
  22. }
  23. type RemoveReq struct {
  24. Ids []int `p:"ids"` //删除id
  25. }
  26. // SelectPageReq 用于存储分页查询的请求参数
  27. type SelectPageReq struct {
  28. Title string `p:"title"` //标题
  29. Status string `p:"status"` //-1回退修改0 保存中1流程中 2通过
  30. BeginTime string `p:"beginTime"` //开始时间
  31. EndTime string `p:"endTime"` //结束时间
  32. PageNum int64 `p:"pageNum"` //当前页码
  33. PageSize int `p:"pageSize"` //每页数
  34. }
  35. //待操作按钮的信息
  36. type InfoBtn struct {
  37. *Entity
  38. ActionBtn g.MapStrAny `json:"action_btn"`
  39. }
  40. // GetByID 根据ID查询记录
  41. func GetByID(id int64) (*Entity, error) {
  42. entity, err := Model.FindOne(id)
  43. if err != nil {
  44. g.Log().Error(err)
  45. return nil, gerror.New("根据ID查询记录出错")
  46. }
  47. if entity == nil {
  48. return nil, gerror.New("根据ID未能查询到记录")
  49. }
  50. return entity, nil
  51. }
  52. // AddSave 添加
  53. func AddSave(req *AddReq) error {
  54. entity := new(Entity)
  55. entity.Title = req.Title
  56. entity.Uid = req.Uid
  57. result, err := entity.Insert()
  58. if err != nil {
  59. return err
  60. }
  61. _, err = result.LastInsertId()
  62. if err != nil {
  63. return err
  64. }
  65. return nil
  66. }
  67. // 删除
  68. func DeleteByIds(Ids []int, tx *gdb.TX) error {
  69. _, err := Model.TX(tx).Delete("id in(?)", Ids)
  70. if err != nil {
  71. g.Log().Error(err)
  72. return gerror.New("删除失败")
  73. }
  74. return nil
  75. }
  76. // 根据ID来修改信息
  77. func EditSave(req *EditReq) error {
  78. // 先根据ID来查询要修改的记录
  79. entity, err := GetByID(req.Id)
  80. if err != nil {
  81. return err
  82. }
  83. // 修改实体
  84. entity.Title = req.Title
  85. entity.UpTime = gconv.Uint64(gtime.Timestamp())
  86. _, err = Model.Save(entity)
  87. if err != nil {
  88. g.Log().Error(err)
  89. return gerror.New("修改失败")
  90. }
  91. return nil
  92. }
  93. // 分页查询,返回值total总记录数,page当前页
  94. func SelectListByPage(req *SelectPageReq) (total int, page int64, list []*Entity, err error) {
  95. model := Model
  96. if req != nil {
  97. if req.Title != "" {
  98. model = model.Where("title like ?", "%"+req.Title+"%")
  99. }
  100. if req.Status != "" {
  101. model = model.Where("status", gconv.Int(req.Status))
  102. }
  103. }
  104. // 查询总记录数(总行数)
  105. total, err = model.Count()
  106. if err != nil {
  107. g.Log().Error(err)
  108. err = gerror.New("获取总记录数失败")
  109. return
  110. }
  111. if req.PageNum == 0 {
  112. req.PageNum = 1
  113. }
  114. page = req.PageNum
  115. if req.PageSize == 0 {
  116. req.PageSize = 10
  117. }
  118. // 分页排序查询
  119. list, err = model.Page(int(page), int(req.PageSize)).Order("id asc").All()
  120. if err != nil {
  121. g.Log().Error(err)
  122. err = gerror.New("分页查询失败")
  123. return
  124. }
  125. return
  126. }
  127. // 获取所有数据
  128. func SelectListAll(req *SelectPageReq) (list []*Entity, err error) {
  129. model := Model
  130. if req != nil {
  131. if req.Title != "" {
  132. model.Where("title like ?", "%"+req.Title+"%")
  133. }
  134. }
  135. // 查询
  136. list, err = model.Order("id asc").All()
  137. if err != nil {
  138. g.Log().Error(err)
  139. err = gerror.New("查询失败")
  140. return
  141. }
  142. return
  143. }