批量更新
This commit is contained in:
@@ -49,6 +49,7 @@ func GetAllMenus() ([]map[string]interface{}, error) {
|
||||
"componentPath": m.ComponentPath,
|
||||
"isExternal": m.IsExternal,
|
||||
"externalUrl": m.ExternalUrl,
|
||||
"menuType": m.MenuType,
|
||||
}
|
||||
result = append(result, item)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/beego/beego/v2/client/orm"
|
||||
)
|
||||
|
||||
// Role 角色模型
|
||||
type Role struct {
|
||||
RoleId int `orm:"pk;auto;column(role_id)" json:"roleId"`
|
||||
TenantId int `orm:"column(tenant_id)" json:"tenantId"`
|
||||
RoleCode string `orm:"size(50);unique" json:"roleCode"`
|
||||
RoleName string `orm:"size(50)" json:"roleName"`
|
||||
Description string `orm:"type(text);null" json:"description"`
|
||||
Status int8 `orm:"default(1)" json:"status"`
|
||||
SortOrder int `orm:"default(0)" json:"sortOrder"`
|
||||
CreateTime time.Time `orm:"auto_now_add;type(datetime)" json:"createTime"`
|
||||
UpdateTime time.Time `orm:"auto_now;type(datetime)" json:"updateTime"`
|
||||
DeleteTime *time.Time `orm:"null;type(datetime)" json:"deleteTime"`
|
||||
CreateBy string `orm:"size(50);null" json:"createBy"`
|
||||
UpdateBy string `orm:"size(50);null" json:"updateBy"`
|
||||
}
|
||||
|
||||
// TableName 设置表名
|
||||
func (r *Role) TableName() string {
|
||||
return "yz_roles"
|
||||
}
|
||||
|
||||
func init() {
|
||||
orm.RegisterModel(new(Role))
|
||||
}
|
||||
|
||||
// GetAllRoles 获取所有角色(排除已删除的)
|
||||
func GetAllRoles() ([]Role, error) {
|
||||
o := orm.NewOrm()
|
||||
var roles []Role
|
||||
_, err := o.QueryTable("yz_roles").Filter("DeleteTime__isnull", true).Filter("Status", 1).OrderBy("SortOrder").All(&roles)
|
||||
return roles, err
|
||||
}
|
||||
|
||||
// GetRoleById 根据ID获取角色
|
||||
func GetRoleById(roleId int) (*Role, error) {
|
||||
o := orm.NewOrm()
|
||||
role := &Role{RoleId: roleId}
|
||||
err := o.Read(role)
|
||||
return role, err
|
||||
}
|
||||
|
||||
// GetRoleByTenantId 根据租户ID获取角色列表
|
||||
func GetRoleByTenantId(tenantId int) ([]Role, error) {
|
||||
o := orm.NewOrm()
|
||||
var roles []Role
|
||||
qs := o.QueryTable("yz_roles").Filter("DeleteTime__isnull", true)
|
||||
if tenantId > 0 {
|
||||
// 显示指定租户和公共(tenant_id=0)的角色
|
||||
qs = qs.Filter("TenantId__in", []int{0, tenantId})
|
||||
} else if tenantId == 0 {
|
||||
// 仅显示公共(tenant_id=0)的角色
|
||||
qs = qs.Filter("TenantId", 0)
|
||||
}
|
||||
_, err := qs.OrderBy("SortOrder").All(&roles)
|
||||
return roles, err
|
||||
}
|
||||
|
||||
// GetRoleByCode 根据代码获取角色(排除已删除的)
|
||||
func GetRoleByCode(roleCode string) (*Role, error) {
|
||||
o := orm.NewOrm()
|
||||
role := &Role{}
|
||||
err := o.QueryTable("yz_roles").Filter("RoleCode", roleCode).Filter("DeleteTime__isnull", true).One(role)
|
||||
return role, err
|
||||
}
|
||||
|
||||
// CreateRole 创建角色
|
||||
func CreateRole(role *Role) (int64, error) {
|
||||
o := orm.NewOrm()
|
||||
id, err := o.Insert(role)
|
||||
return id, err
|
||||
}
|
||||
|
||||
// UpdateRole 更新角色
|
||||
func UpdateRole(role *Role) error {
|
||||
o := orm.NewOrm()
|
||||
_, err := o.Update(role)
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteRole 删除角色(软删除,设置删除时间)
|
||||
func DeleteRole(roleId int) error {
|
||||
o := orm.NewOrm()
|
||||
role := &Role{RoleId: roleId}
|
||||
err := o.Read(role)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
now := time.Now()
|
||||
role.DeleteTime = &now
|
||||
_, err = o.Update(role, "DeleteTime")
|
||||
return err
|
||||
}
|
||||
|
||||
// 修改角色状态
|
||||
func ChangeStatus(roleId int, status int) error {
|
||||
o := orm.NewOrm()
|
||||
role := &Role{RoleId: roleId}
|
||||
err := o.Read(role)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
role.Status = int8(status)
|
||||
_, err = o.Update(role, "Status")
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user