1 Star 0 Fork 0

庞飞/multiapp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
RolesRepository.go 1.84 KB
一键复制 编辑 原始数据 按行查看 历史
庞飞 提交于 2023-10-08 10:22 +08:00 . 调整
package repositories
import (
"errors"
"gitee.com/pangxianfei/multiapp/sysmodel"
"gorm.io/gorm"
)
var RolesRepository = new(RolesDao)
type RolesDao struct {
}
// Delete 主键条件删除
func (r *RolesDao) Delete(db *gorm.DB, id int64) error {
return db.Delete(&sysmodel.SysRoles{}, "id = ?", id).Error
}
func (r *RolesDao) Take(db *gorm.DB, where ...interface{}) *sysmodel.SysRoles {
ret := &sysmodel.SysRoles{}
if err := db.Debug().Take(ret, where...).Error; err != nil {
return nil
}
return ret
}
func (r *RolesDao) GetByName(db *gorm.DB, name string) *sysmodel.SysRoles {
return r.Take(db, "name = ?", name)
}
func (r *RolesDao) GetById(db *gorm.DB, id int64) *sysmodel.SysRoles {
return r.Take(db, "id = ?", id)
}
func (r *RolesDao) Create(db *gorm.DB, roles *sysmodel.SysRoles) (*sysmodel.SysRoles, error) {
//表不存则创建表
r.IsHasTable(db)
if r.GetByName(db, roles.Name) != nil {
return nil, errors.New("角色已存在")
}
err := db.Create(roles).Error
return roles, err
}
func (r *RolesDao) IsHasTable(db *gorm.DB) {
if db.Migrator().HasTable(&sysmodel.SysRoles{}) == false {
db.Migrator().CreateTable(&sysmodel.SysRoles{})
}
}
func (r *RolesDao) AnyRole(db *gorm.DB, roleId int64) (rolesList []sysmodel.SysRoles) {
var SysRoles = &sysmodel.SysRoles{Id: roleId}
db.Model(SysRoles).Where(SysRoles).Preload("Permissions").Find(&rolesList)
return rolesList
}
func (r *RolesDao) RoleInfo(db *gorm.DB, roleId int64) (roles sysmodel.SysRoles) {
var SysRoles = &sysmodel.SysRoles{Id: roleId}
db.Model(SysRoles).Where(SysRoles).Preload("Permissions").First(&roles)
return
}
func (r *RolesDao) RemoveRole(db *gorm.DB, roleId int64) error {
if err := r.Delete(db, roleId); err == nil {
roleErr := RolePermissionRepository.DeleteRolePermission(db, roleId)
if roleErr == nil {
return roleErr
}
return err
}
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/pangxianfei/multiapp.git
git@gitee.com:pangxianfei/multiapp.git
pangxianfei
multiapp
multiapp
v1.2.3

搜索帮助