Files
go_process_manager/dao/permission.go
liuzhihang1 831ea9889f 初次提交
2024-06-26 20:45:23 +08:00

43 lines
1.3 KiB
Go

package dao
import (
"msm/log"
"msm/model"
"gorm.io/gorm"
)
type permissionDao struct{}
var PermissionDao = new(permissionDao)
func (p *permissionDao) GetPermssionList(account string) []model.PermissionPo {
result := []model.PermissionPo{}
if err := db.Raw(`SELECT p.name ,p.uuid as pid,p2.owned ,p2."start" ,p2.stop ,p2.terminal
FROM users u full join process p left join permission p2 on p2.account == u.account and p2.pid =p.uuid WHERE u.account = ? or u.account ISNULL`, account).Find(&result); err.Error != nil {
log.Logger.Warnw("权限查询失败", "err", err)
}
return result
}
func (p *permissionDao) EditPermssion(data model.Permission) error {
if db.Model(&model.Permission{}).Where("account = ? and pid = ?", data.Account, data.Pid).First(nil).Error == gorm.ErrRecordNotFound {
db.Omit("name").Create(&model.Permission{
Account: data.Account,
Pid: data.Pid,
})
}
return db.Debug().Model(&model.Permission{}).Where("account = ? and pid = ?", data.Account, data.Pid).Updates(map[string]interface{}{
"owned": data.Owned,
"start": data.Start,
"stop": data.Stop,
"terminal": data.Terminal,
}).Error
}
func (p *permissionDao) GetPermission(user string, pid int) (result model.Permission) {
db.Debug().Model(&model.Permission{}).Where("account = ? and pid = ?", user, pid).First(&result)
return
}