80 Star 451 Fork 139

Ulric Qin/Nightingale

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
role.go 1.58 KB
一键复制 编辑 原始数据 按行查看 历史
ning 提交于 2024-04-08 15:29 +08:00 . refactor: Remove redundant DB2FE function from models
package models
import (
"github.com/ccfos/nightingale/v6/pkg/ctx"
"github.com/pkg/errors"
)
type Role struct {
Id int64 `json:"id" gorm:"primaryKey"`
Name string `json:"name"`
Note string `json:"note"`
}
func (Role) TableName() string {
return "role"
}
func RoleGets(ctx *ctx.Context, where string, args ...interface{}) ([]Role, error) {
var objs []Role
err := DB(ctx).Where(where, args...).Find(&objs).Error
if err != nil {
return nil, errors.WithMessage(err, "failed to query roles")
}
return objs, nil
}
func RoleGetsAll(ctx *ctx.Context) ([]Role, error) {
return RoleGets(ctx, "")
}
// 增加角色
func (r *Role) Add(ctx *ctx.Context) error {
role, err := RoleGet(ctx, "name = ?", r.Name)
if err != nil {
return errors.WithMessage(err, "failed to query user")
}
if role != nil {
return errors.New("role name already exists")
}
return DB(ctx).Create(r).Error
}
// 删除角色
func (r *Role) Del(ctx *ctx.Context) error {
return DB(ctx).Delete(r).Error
}
// 更新角色
func (ug *Role) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error {
return DB(ctx).Model(ug).Select(selectField, selectFields...).Updates(ug).Error
}
func RoleGet(ctx *ctx.Context, where string, args ...interface{}) (*Role, error) {
var lst []*Role
err := DB(ctx).Where(where, args...).Find(&lst).Error
if err != nil {
return nil, err
}
if len(lst) == 0 {
return nil, nil
}
return lst[0], nil
}
func RoleCount(ctx *ctx.Context, where string, args ...interface{}) (num int64, err error) {
return Count(DB(ctx).Model(&Role{}).Where(where, args...))
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/cnperl/Nightingale.git
[email protected]:cnperl/Nightingale.git
cnperl
Nightingale
Nightingale
main

搜索帮助