pageManage.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package model
  2. import (
  3. "Panel_development/global"
  4. "Panel_development/unity"
  5. "errors"
  6. "gorm.io/gorm"
  7. )
  8. type PageManage struct {
  9. gorm.Model
  10. UserId int `gorm:"type:int;not null;comment:用户id" json:"userId" `
  11. PanelId string `gorm:"type:varchar(255);not null;unique;comment:页面id" json:"panelId" `
  12. Name string `gorm:"type:varchar(255);not null;comment:页面名称" json:"name" `
  13. Data string `gorm:"type:longtext;comment:页面数据" json:"data" validate:"required"`
  14. }
  15. func (p PageManage) GetPageManageById(uid, id int) (PageManage, error) {
  16. //TODO implement me
  17. tx := global.DBLink.Where("id=?", id).Where("user_id=?", uid).First(&p)
  18. if tx.RowsAffected > 0 {
  19. return p, nil
  20. }
  21. return PageManage{}, errors.New("没有找到该页面")
  22. }
  23. func (p PageManage) GetPageManage(params unity.QueryPageParams, model PageManage, queryCond interface{}) (result []PageManage, total int64, err error) {
  24. //TODO implement me
  25. var count int64
  26. if queryCond != nil {
  27. if err = global.DBLink.Model(model).Where(queryCond, params.Query).Where("user_id=?", model.UserId).Count(&count).Error; err != nil {
  28. return nil, 0, err
  29. }
  30. // 计算查询的偏移量,并设置每次查询的记录数量
  31. offset := (params.Page - 1) * params.Size
  32. // 执行分页查询,包括偏移量设置、限制查询数量、排序及应用额外查询条件
  33. if err = global.DBLink.Offset(offset).Limit(params.Size).Order(params.Desc).Where(queryCond, params.Query).Where("user_id=?", model.UserId).Find(&result).Error; err != nil {
  34. return nil, 0, err
  35. }
  36. } else {
  37. if err = global.DBLink.Model(model).Where("user_id=?", model.UserId).Count(&count).Error; err != nil {
  38. return nil, 0, err
  39. }
  40. // 计算查询的偏移量,并设置每次查询的记录数量
  41. offset := (params.Page - 1) * params.Size
  42. // 执行分页查询,包括偏移量设置、限制查询数量、排序及应用额外查询条件
  43. if err = global.DBLink.Offset(offset).Limit(params.Size).Order(params.Desc).Where("user_id=?", model.UserId).Find(&result).Error; err != nil {
  44. return nil, 0, err
  45. }
  46. }
  47. return result, count, nil
  48. }
  49. func (p PageManage) UpdatePageManage(manage PageManage) error {
  50. //TODO implement me
  51. tx := global.DBLink.Where("user_id=?", manage.UserId).Where("id=?", manage.ID).Updates(&manage)
  52. if tx.RowsAffected > 0 {
  53. return nil
  54. }
  55. return errors.New("更新失败")
  56. }
  57. func (p PageManage) DeletePageManageById(uid, id int) error {
  58. //TODO implement me
  59. tx := global.DBLink.Where("user_id=?", uid).Where("id=?", id).Delete(&PageManage{})
  60. if tx.RowsAffected > 0 {
  61. return nil
  62. }
  63. return errors.New("删除失败")
  64. }
  65. func (p PageManage) TableName() string {
  66. return "page_manage"
  67. }