feat:完善项目信息
This commit is contained in:
@ -5,20 +5,23 @@ import (
|
||||
"SciencesServer/app/api/admin/model"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
"SciencesServer/app/service"
|
||||
"SciencesServer/app/session"
|
||||
"SciencesServer/serve/logger"
|
||||
"SciencesServer/utils"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Instance struct{ *controller.Platform }
|
||||
type Instance struct{ *session.Admin }
|
||||
|
||||
type InstanceHandle func(session *service.Session) *Instance
|
||||
type InstanceHandle func(session *session.Admin) *Instance
|
||||
|
||||
type (
|
||||
// InstanceInfo 角色信息
|
||||
InstanceInfo struct {
|
||||
ID string `json:"id"`
|
||||
*model2.SysRole
|
||||
StatusTitle string `json:"status_title"`
|
||||
}
|
||||
// InstanceBasicInfo 角色基本信息
|
||||
InstanceBasicInfo struct {
|
||||
@ -27,14 +30,14 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
// List 列表信息
|
||||
func (c *Instance) List(name string, status, page, pageSize int) (*controller.ReturnPages, error) {
|
||||
// Index 列表信息
|
||||
func (c *Instance) Index(name string, page, pageSize int) (*controller.ReturnPages, error) {
|
||||
mSysRole := model.NewSysRole()
|
||||
|
||||
where := []*model2.ModelWhereOrder{
|
||||
&model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("tenant_id", c.TenantID),
|
||||
Order: model2.NewOrder("sort", model2.OrderModeToDesc),
|
||||
Order: model2.NewOrder("sort", model2.OrderModeToAsc),
|
||||
},
|
||||
&model2.ModelWhereOrder{
|
||||
Order: model2.NewOrder("id", model2.OrderModeToDesc),
|
||||
@ -42,12 +45,7 @@ func (c *Instance) List(name string, status, page, pageSize int) (*controller.Re
|
||||
}
|
||||
if name != "" {
|
||||
where = append(where, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("tenant_id", c.TenantID),
|
||||
})
|
||||
}
|
||||
if status > 0 {
|
||||
where = append(where, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("status", status),
|
||||
Where: model2.NewWhereLike("name", name),
|
||||
})
|
||||
}
|
||||
var count int64
|
||||
@ -60,7 +58,7 @@ func (c *Instance) List(name string, status, page, pageSize int) (*controller.Re
|
||||
list := make([]*InstanceInfo, 0)
|
||||
|
||||
for _, v := range out {
|
||||
list = append(list, &InstanceInfo{SysRole: v, StatusTitle: v.StatusTitle()})
|
||||
list = append(list, &InstanceInfo{ID: v.GetEncodeID(), SysRole: v})
|
||||
}
|
||||
return &controller.ReturnPages{Data: list, Count: count}, nil
|
||||
|
||||
@ -73,10 +71,9 @@ func (c *Instance) Select() ([]*InstanceBasicInfo, error) {
|
||||
where := []*model2.ModelWhereOrder{
|
||||
&model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("tenant_id", c.TenantID),
|
||||
Order: model2.NewOrder("sort", model2.OrderModeToDesc),
|
||||
Order: model2.NewOrder("sort", model2.OrderModeToAsc),
|
||||
},
|
||||
&model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("status", model2.SysRoleStatusForNormal),
|
||||
Order: model2.NewOrder("id", model2.OrderModeToDesc),
|
||||
},
|
||||
}
|
||||
@ -88,8 +85,8 @@ func (c *Instance) Select() ([]*InstanceBasicInfo, error) {
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Data 数据操作
|
||||
func (c *Instance) Data(id uint64, name, remark string, sort int) error {
|
||||
// Form 数据操作
|
||||
func (c *Instance) Form(id uint64, name, remark string, sort int) error {
|
||||
mSysRole := model.NewSysRole()
|
||||
|
||||
if id <= 0 {
|
||||
@ -147,27 +144,28 @@ func (c *Instance) Delete(id uint64) error {
|
||||
if err != nil {
|
||||
return err
|
||||
} else if !isExist {
|
||||
return errors.New("角色不存在")
|
||||
}
|
||||
if c.TenantID > 0 && c.TenantID != mSysRole.TenantID {
|
||||
return errors.New("不可删除其他租户角色")
|
||||
return errors.New("操作错误,角色信息不存在")
|
||||
} else if c.TenantID > 0 && c.TenantID != mSysRole.TenantID {
|
||||
return errors.New("操作错误,无权限操作")
|
||||
}
|
||||
if err = model2.Delete(mSysRole.SysRole); err != nil {
|
||||
return err
|
||||
}
|
||||
go utils.TryCatch(func() {
|
||||
//permission := service.NewPermission([]string{utils.UintToString(id)})(c.TenantKey, "")
|
||||
//// 删除角色权限
|
||||
//if _, err = permission.RemoveRolePolicy(); err != nil {
|
||||
// logger.ErrorF("删除租户【%s】下角色【%d】权限信息错误:%v", c.TenantKey, id, err)
|
||||
// return
|
||||
//}
|
||||
permission := service.NewPermission(
|
||||
service.WithAuthTenant(fmt.Sprintf("%d", mSysRole.TenantID)),
|
||||
service.WithAuthRoles([]string{fmt.Sprintf("%d", id)}),
|
||||
)
|
||||
if _, err = permission.RemoveRolePolicy(); err != nil {
|
||||
logger.ErrorF("Casbin 删除租户【%d】下角色【%d】权限信息错误:%v", mSysRole.TenantID, id, err)
|
||||
return
|
||||
}
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewInstance() InstanceHandle {
|
||||
return func(session *service.Session) *Instance {
|
||||
return &Instance{Platform: &controller.Platform{Session: session}}
|
||||
return func(session *session.Admin) *Instance {
|
||||
return &Instance{Admin: session}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user