package auth import ( "SciencesServer/app/api/admin/model" model2 "SciencesServer/app/common/model" "SciencesServer/app/session" "errors" ) type Instance struct{ *session.Admin } type InstanceHandle func(session *session.Admin) *Instance type InstanceParams struct { ID, ParentID uint64 Kind, Sort int Name, Auth, Remark string } // Index 列表信息 func (c *Instance) Index() ([]*Tree, error) { mSysAuth := model.NewSysAuth() where := []*model2.ModelWhereOrder{ &model2.ModelWhereOrder{Order: model2.NewOrder("sort", model2.OrderModeToAsc)}, &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 } // 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 } func NewInstance() InstanceHandle { return func(session *session.Admin) *Instance { return &Instance{Admin: session} } }