Files

79 lines
1.7 KiB
Go
Raw Normal View History

2021-09-28 11:47:19 +08:00
package auth
import (
2022-01-05 11:29:27 +08:00
"SciencesServer/app/api/admin/model"
2021-09-28 11:47:19 +08:00
model2 "SciencesServer/app/common/model"
2022-01-06 22:02:09 +08:00
"SciencesServer/app/session"
2022-01-07 16:12:43 +08:00
"errors"
2021-09-28 11:47:19 +08:00
)
2022-01-06 22:02:09 +08:00
type Instance struct{ *session.Admin }
2021-09-28 11:47:19 +08:00
2022-01-06 22:02:09 +08:00
type InstanceHandle func(session *session.Admin) *Instance
2021-09-28 11:47:19 +08:00
2022-01-07 16:12:43 +08:00
type InstanceParams struct {
ID, ParentID uint64
Kind, Sort int
Name, Auth, Remark string
}
2022-01-06 22:02:09 +08:00
// Index 列表信息
func (c *Instance) Index() ([]*Tree, error) {
2021-09-28 11:47:19 +08:00
mSysAuth := model.NewSysAuth()
where := []*model2.ModelWhereOrder{
2022-01-07 16:12:43 +08:00
&model2.ModelWhereOrder{Order: model2.NewOrder("sort", model2.OrderModeToAsc)},
2021-09-28 11:47:19 +08:00
&model2.ModelWhereOrder{Order: model2.NewOrder("parent_id", model2.OrderModeToAsc)},
}
out := make([]*model2.SysAuth, 0)
if err := model2.Scan(mSysAuth, &out, where...); err != nil {
return nil, err
}
return tree(out, 0), nil
}
2022-01-07 16:12:43 +08:00
// Form 数据操作
func (c *Instance) Form(params *InstanceParams) error {
mSysAuth := model.NewSysAuth()
if params.ID > 0 {
mSysAuth.ID = params.ID
if isExist, err := model2.First(mSysAuth.SysAuth); err != nil {
return err
} else if !isExist {
return errors.New("操作错误,权限信息不存在")
}
}
mSysAuth.ParentID = params.ParentID
mSysAuth.Kind = model2.SysAuthKind(params.Kind)
mSysAuth.Name = params.Name
mSysAuth.Auth = params.Auth
mSysAuth.Sort = params.Sort
mSysAuth.Remark = params.Remark
if mSysAuth.ID > 0 {
return model2.Updates(mSysAuth.SysAuth, mSysAuth.SysAuth)
}
return model2.Create(mSysAuth.SysAuth)
}
func (c *Instance) Delete(id uint64) error {
mSysAuth := model.NewSysAuth()
mSysAuth.ID = id
err := model2.Delete(mSysAuth.SysAuth)
if err != nil {
return err
}
return nil
}
2021-09-28 11:47:19 +08:00
func NewInstance() InstanceHandle {
2022-01-06 22:02:09 +08:00
return func(session *session.Admin) *Instance {
return &Instance{Admin: session}
2021-09-28 11:47:19 +08:00
}
}