package model import ( "Panel_development/global" "Panel_development/unity" "errors" "gorm.io/gorm" ) type PageManage struct { gorm.Model UserId int `gorm:"type:int;not null;comment:用户id" json:"userId" ` PanelId string `gorm:"type:varchar(255);not null;unique;comment:页面id" json:"panelId" ` Name string `gorm:"type:varchar(255);not null;comment:页面名称" json:"name" ` Data string `gorm:"type:longtext;comment:页面数据" json:"data" validate:"required"` } func (p PageManage) GetPageManageById(uid, id int) (PageManage, error) { //TODO implement me tx := global.DBLink.Where("id=?", id).Where("user_id=?", uid).First(&p) if tx.RowsAffected > 0 { return p, nil } return PageManage{}, errors.New("没有找到该页面") } func (p PageManage) GetPageManage(params unity.QueryPageParams, model PageManage, queryCond interface{}) (result []PageManage, total int64, err error) { //TODO implement me var count int64 if queryCond != nil { if err = global.DBLink.Model(model).Where(queryCond, params.Query).Where("user_id=?", model.UserId).Count(&count).Error; err != nil { return nil, 0, err } // 计算查询的偏移量,并设置每次查询的记录数量 offset := (params.Page - 1) * params.Size // 执行分页查询,包括偏移量设置、限制查询数量、排序及应用额外查询条件 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 { return nil, 0, err } } else { if err = global.DBLink.Model(model).Where("user_id=?", model.UserId).Count(&count).Error; err != nil { return nil, 0, err } // 计算查询的偏移量,并设置每次查询的记录数量 offset := (params.Page - 1) * params.Size // 执行分页查询,包括偏移量设置、限制查询数量、排序及应用额外查询条件 if err = global.DBLink.Offset(offset).Limit(params.Size).Order(params.Desc).Where("user_id=?", model.UserId).Find(&result).Error; err != nil { return nil, 0, err } } return result, count, nil } func (p PageManage) UpdatePageManage(manage PageManage) error { //TODO implement me tx := global.DBLink.Where("user_id=?", manage.UserId).Where("id=?", manage.ID).Updates(&manage) if tx.RowsAffected > 0 { return nil } return errors.New("更新失败") } func (p PageManage) DeletePageManageById(uid, id int) error { //TODO implement me tx := global.DBLink.Where("user_id=?", uid).Where("id=?", id).Delete(&PageManage{}) if tx.RowsAffected > 0 { return nil } return errors.New("删除失败") } func (p PageManage) TableName() string { return "page_manage" }