info.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package service
  2. import (
  3. "github.com/flipped-aurora/gin-vue-admin/server/global"
  4. "github.com/flipped-aurora/gin-vue-admin/server/plugin/announcement/model"
  5. "github.com/flipped-aurora/gin-vue-admin/server/plugin/announcement/model/request"
  6. )
  7. var Info = new(info)
  8. type info struct{}
  9. // CreateInfo 创建公告记录
  10. // Author [piexlmax](https://github.com/piexlmax)
  11. func (s *info) CreateInfo(info *model.Info) (err error) {
  12. err = global.GVA_DB.Create(info).Error
  13. return err
  14. }
  15. // DeleteInfo 删除公告记录
  16. // Author [piexlmax](https://github.com/piexlmax)
  17. func (s *info) DeleteInfo(ID string) (err error) {
  18. err = global.GVA_DB.Delete(&model.Info{}, "id = ?", ID).Error
  19. return err
  20. }
  21. // DeleteInfoByIds 批量删除公告记录
  22. // Author [piexlmax](https://github.com/piexlmax)
  23. func (s *info) DeleteInfoByIds(IDs []string) (err error) {
  24. err = global.GVA_DB.Delete(&[]model.Info{}, "id in ?", IDs).Error
  25. return err
  26. }
  27. // UpdateInfo 更新公告记录
  28. // Author [piexlmax](https://github.com/piexlmax)
  29. func (s *info) UpdateInfo(info model.Info) (err error) {
  30. err = global.GVA_DB.Model(&model.Info{}).Where("id = ?", info.ID).Updates(&info).Error
  31. return err
  32. }
  33. // GetInfo 根据ID获取公告记录
  34. // Author [piexlmax](https://github.com/piexlmax)
  35. func (s *info) GetInfo(ID string) (info model.Info, err error) {
  36. err = global.GVA_DB.Where("id = ?", ID).First(&info).Error
  37. return
  38. }
  39. // GetInfoInfoList 分页获取公告记录
  40. // Author [piexlmax](https://github.com/piexlmax)
  41. func (s *info) GetInfoInfoList(info request.InfoSearch) (list []model.Info, total int64, err error) {
  42. limit := info.PageSize
  43. offset := info.PageSize * (info.Page - 1)
  44. // 创建db
  45. db := global.GVA_DB.Model(&model.Info{})
  46. var infos []model.Info
  47. // 如果有条件搜索 下方会自动创建搜索语句
  48. if info.StartCreatedAt != nil && info.EndCreatedAt != nil {
  49. db = db.Where("created_at BETWEEN ? AND ?", info.StartCreatedAt, info.EndCreatedAt)
  50. }
  51. err = db.Count(&total).Error
  52. if err != nil {
  53. return
  54. }
  55. if limit != 0 {
  56. db = db.Limit(limit).Offset(offset)
  57. }
  58. err = db.Find(&infos).Error
  59. return infos, total, err
  60. }
  61. func (s *info) GetInfoDataSource() (res map[string][]map[string]any, err error) {
  62. res = make(map[string][]map[string]any)
  63. userID := make([]map[string]any, 0)
  64. global.GVA_DB.Table("sys_users").Select("nick_name as label,id as value").Scan(&userID)
  65. res["userID"] = userID
  66. return
  67. }