feat:完善项目
This commit is contained in:
@ -1,24 +1,115 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"ArmedPolice/app/controller/basic"
|
||||
model2 "ArmedPolice/app/common/model"
|
||||
"ArmedPolice/app/model"
|
||||
"ArmedPolice/app/service"
|
||||
"ArmedPolice/serve/orm"
|
||||
"ArmedPolice/utils"
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Role struct{ *service.Session }
|
||||
|
||||
type RoleHandle func(session *service.Session) *Role
|
||||
|
||||
func (c *Role) List() (*basic.PageDataResponse, error) {
|
||||
return &basic.PageDataResponse{Data: nil, Count: 0}, nil
|
||||
// RoleInfo 基本信息
|
||||
type RoleInfo struct {
|
||||
ID string `json:"id"`
|
||||
ParentID string `json:"parent_id"`
|
||||
Name string `json:"name"`
|
||||
Checked bool `json:"checked"`
|
||||
Children []*RoleInfo `json:"children"`
|
||||
}
|
||||
|
||||
func (c *Role) Form() error {
|
||||
return nil
|
||||
func (c *Role) tree(iModel model2.IModel, src []*model.SysRoleUserInfo, parentID uint64) []*RoleInfo {
|
||||
out := make([]*RoleInfo, 0)
|
||||
|
||||
for _, v := range src {
|
||||
if v.ParentID == parentID {
|
||||
iModel.SetID(v.ID)
|
||||
id := iModel.GetEncodeID()
|
||||
|
||||
_parentID := "0"
|
||||
|
||||
if v.ParentID > 0 {
|
||||
iModel.SetID(v.ID)
|
||||
_parentID = iModel.GetEncodeID()
|
||||
}
|
||||
out = append(out, &RoleInfo{
|
||||
ID: id,
|
||||
ParentID: _parentID,
|
||||
Name: v.Name,
|
||||
Checked: v.UserRoleID > 0,
|
||||
Children: c.tree(iModel, src, v.ID),
|
||||
})
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func (c *Role) Delete() error {
|
||||
return nil
|
||||
// List 列表信息
|
||||
func (c *Role) List(id uint64) ([]*RoleInfo, error) {
|
||||
mSysUser := model.NewSysUser()
|
||||
mSysUser.ID = id
|
||||
|
||||
isExist, err := model2.FirstField(mSysUser.SysUser, []string{"id", "uuid"})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if !isExist {
|
||||
return nil, errors.New("操作错误,用户信息不存在或已被删除")
|
||||
}
|
||||
mSysRole := model.NewSysRole()
|
||||
|
||||
out := make([]*model.SysRoleUserInfo, 0)
|
||||
|
||||
if out, err = mSysRole.UserRole(mSysUser.UUID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return c.tree(mSysRole.SysRole, out, 0), nil
|
||||
}
|
||||
|
||||
func (c *Role) Bind(id uint64, roleIDs []uint64) error {
|
||||
mSysUser := model.NewSysUser()
|
||||
mSysUser.ID = id
|
||||
|
||||
isExist, err := model2.FirstField(mSysUser.SysUser, []string{"id", "uuid"})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
} else if !isExist {
|
||||
return errors.New("操作错误,用户信息不存在或已被删除")
|
||||
}
|
||||
mSysUserRole := model.NewSysUserRole()
|
||||
|
||||
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||
if err = model2.DeleteWhere(mSysUserRole.SysUserRole, []*model2.ModelWhere{model2.NewWhere("uid", mSysUser.UUID)}, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
roles := make([]*model2.SysUserRole, 0)
|
||||
obj := make([]string, 0)
|
||||
|
||||
mark := make(map[uint64]uint64, 0)
|
||||
|
||||
for _, v := range roleIDs {
|
||||
if _, has := mark[v]; has {
|
||||
continue
|
||||
}
|
||||
obj = append(obj, utils.UintToString(v))
|
||||
|
||||
roles = append(roles, &model2.SysUserRole{
|
||||
UID: mSysUser.UUID, RoleID: v,
|
||||
})
|
||||
mark[v] = v
|
||||
}
|
||||
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func NewRole() RoleHandle {
|
||||
|
Reference in New Issue
Block a user