feat:完善项目信息

This commit is contained in:
henry
2022-01-06 22:02:09 +08:00
parent a92801b1ce
commit 657fdc5750
31 changed files with 177 additions and 612 deletions

View File

@ -1,18 +1,17 @@
package auth
import (
"SciencesServer/app/api/admin/controller"
"SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
)
type Instance struct{ *controller.Platform }
type Instance struct{ *session.Admin }
type InstanceHandle func(session *service.Session) *Instance
type InstanceHandle func(session *session.Admin) *Instance
// List 列表信息
func (c *Instance) List() ([]*Tree, error) {
// Index 列表信息
func (c *Instance) Index() ([]*Tree, error) {
mSysAuth := model.NewSysAuth()
where := []*model2.ModelWhereOrder{
@ -28,7 +27,7 @@ func (c *Instance) List() ([]*Tree, error) {
}
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}
}
}

View File

@ -1,25 +1,11 @@
package controller
import (
"SciencesServer/app/service"
"SciencesServer/config"
"SciencesServer/serve/cache"
"SciencesServer/utils"
)
// Platform
type Platform struct{ *service.Session }
func (c *Platform) Format() string {
return ""
}
// ReturnPages 分页数据
type ReturnPages struct {
Data interface{} `json:"data"`
Count int64 `json:"count"`
}
type Key struct{}
// Generate 生成秘钥

View File

@ -2,6 +2,7 @@ package controller
import (
"SciencesServer/app/api/admin/model"
"SciencesServer/app/basic/controller"
model2 "SciencesServer/app/common/model"
"SciencesServer/config"
"SciencesServer/serve/orm"
@ -16,7 +17,7 @@ type Config struct{}
type ConfigHandle func() *Config
func (c *Config) Config(kind, page, pageSize int) (*ReturnPages, error) {
func (c *Config) Config(kind, page, pageSize int) (*controller.ReturnPages, error) {
mSysConfig := model.NewSysConfig()
where := []*model2.ModelWhereOrder{
@ -32,7 +33,7 @@ func (c *Config) Config(kind, page, pageSize int) (*ReturnPages, error) {
if err := model2.Pages(mSysConfig.SysConfig, &out, page, pageSize, &count, where...); err != nil {
return nil, err
}
return &ReturnPages{Data: out, Count: count}, nil
return &controller.ReturnPages{Data: out, Count: count}, nil
}
func (c *Config) Add(kind int, name, key string, value interface{}) error {

View File

@ -56,7 +56,9 @@ func (c *Instance) Index() ([]*InstanceTreeInfo, error) {
if err := model2.Scan(mSysDepartment.SysDepartment, &out, &model2.ModelWhereOrder{
Where: model2.NewWhere("tenant_id", c.TenantID),
Order: model2.NewOrder("parent_id", model2.OrderModeToAsc)}); err != nil {
Order: model2.NewOrder("parent_id", model2.OrderModeToAsc)},
&model2.ModelWhereOrder{
Order: model2.NewOrder("id", model2.OrderModeToDesc)}); err != nil {
return nil, err
}
return c.tree(out, 0), nil
@ -67,9 +69,11 @@ func (c *Instance) Select() ([]*InstanceTreeInfo, error) {
out := make([]*model2.SysDepartment, 0)
if err := model2.ScanFields(mSysDepartment.SysDepartment, &out, []string{"id", "name"}, &model2.ModelWhereOrder{
if err := model2.ScanFields(mSysDepartment.SysDepartment, &out, []string{"id", "parent_id", "name"}, &model2.ModelWhereOrder{
Where: model2.NewWhere("tenant_id", c.TenantID),
Order: model2.NewOrder("parent_id", model2.OrderModeToAsc)}); err != nil {
Order: model2.NewOrder("parent_id", model2.OrderModeToAsc)}, &model2.ModelWhereOrder{
Where: model2.NewWhere("status", 1),
Order: model2.NewOrder("id", model2.OrderModeToDesc)}); err != nil {
return nil, err
}
return c.tree(out, 0), nil

View File

@ -2,14 +2,15 @@ package controller
import (
"SciencesServer/app/api/admin/model"
"SciencesServer/app/basic/controller"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/tools/ip"
)
type Log struct{ *Platform }
type Log struct{ *session.Admin }
type LogHandle func(session *service.Session) *Log
type LogHandle func(session *session.Admin) *Log
type (
// LogForLogin 登录日志
@ -20,7 +21,7 @@ type (
)
// Login 登录日志
func (c *Log) Login(name string, page, pageSize int) (*ReturnPages, error) {
func (c *Log) Login(name string, page, pageSize int) (*controller.ReturnPages, error) {
mSysUserLoginLogs := model.NewSysUserLoginLog()
where := make([]*model2.ModelWhere, 0)
@ -47,11 +48,11 @@ func (c *Log) Login(name string, page, pageSize int) (*ReturnPages, error) {
SysUserLoginLogInfo: v, IPAddress: string(ipAddress),
})
}
return &ReturnPages{Data: list, Count: count}, nil
return &controller.ReturnPages{Data: list, Count: count}, nil
}
func NewLog() LogHandle {
return func(session *service.Session) *Log {
return &Log{Platform: &Platform{Session: session}}
return func(session *session.Admin) *Log {
return &Log{Admin: session}
}
}

View File

@ -4,7 +4,7 @@ import (
"SciencesServer/app/api/admin/model"
"SciencesServer/app/basic/config"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/serve/orm"
"SciencesServer/utils"
"errors"
@ -13,11 +13,10 @@ import (
)
type Examine struct {
*service.Session
local string
*session.Admin
}
type ExamineHandle func(session *service.Session, local string) *Examine
type ExamineHandle func(session *session.Admin) *Examine
type ExamineManageInfo struct {
IModel model2.IModel
@ -219,10 +218,9 @@ func (c *Examine) Launch(id uint64, identity, status int) error {
}
func NewExamine() ExamineHandle {
return func(session *service.Session, local string) *Examine {
return func(session *session.Admin) *Examine {
return &Examine{
Session: session,
local: local,
Admin: session,
}
}
}

View File

@ -1,9 +1,9 @@
package manage
import (
"SciencesServer/app/api/admin/controller"
"SciencesServer/app/api/admin/model"
"SciencesServer/app/basic/config"
"SciencesServer/app/basic/controller"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"gorm.io/gorm"

View File

@ -1,23 +1,23 @@
package role
import (
"SciencesServer/app/api/admin/controller"
auth2 "SciencesServer/app/api/admin/controller/auth"
model3 "SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/serve/orm"
"SciencesServer/utils"
"gorm.io/gorm"
)
type Auth struct{ *controller.Platform }
type Auth struct{ *session.Admin }
type AuthHandle func(session *service.Session) *Auth
type AuthHandle func(session *session.Admin) *Auth
// List 角色权限列表
func (c *Auth) List(roleID uint64) ([]*auth2.TreeChecked, error) {
// Index 角色权限列表
func (c *Auth) Index(roleID uint64) ([]*auth2.TreeChecked, error) {
mSysAuth := model3.NewSysAuth()
out, err := mSysAuth.RoleAuth(c.TenantID, roleID)
@ -81,7 +81,7 @@ func (c *Auth) Bind(roleID uint64, authIDs []uint64) error {
}
func NewAuth() AuthHandle {
return func(session *service.Session) *Auth {
return &Auth{Platform: &controller.Platform{Session: session}}
return func(session *session.Admin) *Auth {
return &Auth{Admin: session}
}
}

View File

@ -1,8 +1,8 @@
package role
import (
"SciencesServer/app/api/admin/controller"
"SciencesServer/app/api/admin/model"
"SciencesServer/app/basic/controller"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"

View File

@ -1,24 +1,23 @@
package role
import (
"SciencesServer/app/api/admin/controller"
menu2 "SciencesServer/app/api/admin/controller/menu"
model3 "SciencesServer/app/api/admin/model"
"SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/serve/orm"
"errors"
"gorm.io/gorm"
)
type Menu struct{ *controller.Platform }
type Menu struct{ *session.Admin }
type MenuHandle func(session *service.Session) *Menu
type MenuHandle func(session *session.Admin) *Menu
// List 菜单列表
func (c *Menu) List(roleID uint64) ([]*menu2.TreeChecked, error) {
mSysMenu := model3.NewSysMenu()
// Index 菜单列表
func (c *Menu) Index(roleID uint64) ([]*menu2.TreeChecked, error) {
mSysMenu := model.NewSysMenu()
return menu2.MenuForRoleChecked(mSysMenu, c.TenantID, roleID)
}
@ -27,7 +26,7 @@ func (c *Menu) Bind(roleID uint64, menuIDs []uint64) error {
if len(menuIDs) > 0 {
var count int64
mSysMenu := model3.NewSysMenu()
mSysMenu := model.NewSysMenu()
if err := model2.Count(mSysMenu.SysMenu, &count, model2.NewWhereIn("id", menuIDs),
model2.NewWhere("auth", model2.SysMenuAuthForSystem)); err != nil {
@ -36,7 +35,7 @@ func (c *Menu) Bind(roleID uint64, menuIDs []uint64) error {
return errors.New("不可设置超管菜单")
}
}
mSysRoleMenu := model3.NewSysRoleMenu()
mSysRoleMenu := model.NewSysRoleMenu()
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
err := model2.DeleteWhere(mSysRoleMenu.SysRoleMenu, []*model2.ModelWhere{model2.NewWhere("role_id", roleID)}, tx)
@ -68,7 +67,7 @@ func (c *Menu) Bind(roleID uint64, menuIDs []uint64) error {
}
func NewMenu() MenuHandle {
return func(session *service.Session) *Menu {
return &Menu{Platform: &controller.Platform{Session: session}}
return func(session *session.Admin) *Menu {
return &Menu{Admin: session}
}
}

View File

@ -1,79 +0,0 @@
package role
import (
"SciencesServer/app/api/admin/controller"
model3 "SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/serve/orm"
"SciencesServer/utils"
"gorm.io/gorm"
)
type User struct{ *controller.Platform }
type UserHandle func(session *service.Session) *User
// List 列表信息
func (c *User) List(uid uint64) ([]*model3.SysRoleUserInfo, error) {
mSysRole := model3.NewSysRole()
out, err := mSysRole.UserRole(uid)
if err != nil {
return nil, err
}
return out, nil
}
// Bind 绑定角色
func (c *User) Bind(uid uint64, roleIDs []uint64) error {
mSysUserRole := model3.NewSysUserRole()
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
err := model2.DeleteWhere(mSysUserRole.SysUserRole, []*model2.ModelWhere{model2.NewWhere("uid", uid)}, tx)
if 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: uid, RoleID: v,
})
mark[v] = v
}
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
return err
}
go utils.TryCatch(func() {
//permission := service.NewPermission(obj)(c.TenantKey, utils.UintToString(uid))
//
//if _, err = permission.DeleteRolesForUser(false); err != nil {
// logger.ErrorF("删除用户【%d】角色权限错误%v", uid, err)
// return
//}
//if _, err = permission.AddRoleForUser(); err != nil {
// logger.ErrorF("添加用户【%d】角色权限错误%v", uid, err)
// return
//}
})
return nil
})
}
func NewUser() UserHandle {
return func(session *service.Session) *User {
return &User{Platform: &controller.Platform{Session: session}}
}
}

View File

@ -1,10 +1,10 @@
package tenant
import (
"SciencesServer/app/api/admin/controller"
model3 "SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/serve/logger"
"SciencesServer/serve/orm"
"SciencesServer/utils"
@ -13,9 +13,9 @@ import (
"gorm.io/gorm"
)
type Auth struct{ *controller.Platform }
type Auth struct{ *session.Admin }
type AuthHandle func(session *service.Session) *Auth
type AuthHandle func(session *session.Admin) *Auth
// delete 删除所有权限
func (c *Auth) delete(tenantID uint64, tenantKey string, tx *gorm.DB) error {
@ -101,7 +101,7 @@ func (c *Auth) Bind(tenantID uint64, authIDs []uint64) error {
}
func NewAuth() AuthHandle {
return func(session *service.Session) *Auth {
return &Auth{Platform: &controller.Platform{Session: session}}
return func(session *session.Admin) *Auth {
return &Auth{Admin: session}
}
}

View File

@ -67,9 +67,11 @@ func (c *Member) Form(tenantID uint64, params *MemberParams) error {
}
mSysUser.TenantID = tenantID
mSysUser.Account = params.Mobile
mSysUser.Name = params.Mobile
mSysUser.Mobile = params.Mobile
mSysUser.Password = params.Password
mSysUser.IsAdmin = model2.SysUserAdministratorForAdmin
mSysUser.Remark = "子平台管理员"
return model2.Create(mSysUser.SysUser)
}

View File

@ -1,25 +1,25 @@
package tenant
import (
"SciencesServer/app/api/admin/controller"
menu2 "SciencesServer/app/api/admin/controller/menu"
model3 "SciencesServer/app/api/admin/model"
"SciencesServer/app/api/admin/controller/menu"
"SciencesServer/app/api/admin/model"
model3 "SciencesServer/app/api/enterprise/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/serve/orm"
"errors"
"gorm.io/gorm"
)
type Menu struct{ *controller.Platform }
type Menu struct{ *session.Admin }
type MenuHandle func(session *service.Session) *Menu
type MenuHandle func(session *session.Admin) *Menu
// List 菜单列表
func (c *Menu) List(tenantID uint64) ([]*menu2.TreeChecked, error) {
mSysMenu := model3.NewSysMenu()
return menu2.MenuForTenantChecked(mSysMenu, tenantID)
func (c *Menu) List(tenantID uint64) ([]*menu.TreeChecked, error) {
mSysMenu := model.NewSysMenu()
return menu.MenuForTenantChecked(mSysMenu, tenantID)
}
// Bind 绑定菜单
@ -36,7 +36,7 @@ func (c *Menu) Bind(tenantID uint64, menuIDs []uint64) error {
return errors.New("不可设置超管菜单")
}
}
mSysTenantMenu := model3.NewSysTenantMenu()
mSysTenantMenu := model.NewSysTenantMenu()
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
// TODO先全部删除后期考虑局部删除
@ -46,7 +46,7 @@ func (c *Menu) Bind(tenantID uint64, menuIDs []uint64) error {
return err
}
// 租户角色的菜单
mSysRoleMenu := model3.NewSysRoleMenu()
mSysRoleMenu := model.NewSysRoleMenu()
if len(menuIDs) <= 0 {
if err = model2.DeleteWhere(mSysRoleMenu.SysRoleMenu, []*model2.ModelWhere{model2.NewWhere("tenant_id", tenantID)}, tx); err != nil {
@ -82,7 +82,7 @@ func (c *Menu) Bind(tenantID uint64, menuIDs []uint64) error {
}
func NewMenu() MenuHandle {
return func(session *service.Session) *Menu {
return &Menu{Platform: &controller.Platform{Session: session}}
return func(session *session.Admin) *Menu {
return &Menu{Admin: session}
}
}

View File

@ -1,8 +1,8 @@
package user
import (
"SciencesServer/app/api/admin/controller"
"SciencesServer/app/api/admin/model"
"SciencesServer/app/basic/controller"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
@ -138,7 +138,7 @@ func (c *Instance) Info() (*InstanceUserInfo, error) {
}
// Index 列表信息
func (c *Instance) Index(name, mobile string, status, page, pageSize int) (*controller.ReturnPages, error) {
func (c *Instance) Index(name, mobile string, departmentIDs []uint64, status, page, pageSize int) (*controller.ReturnPages, error) {
where := []*model2.ModelWhere{model2.NewWhere("u.tenant_id", c.TenantID)}
if name != "" {
@ -147,6 +147,9 @@ func (c *Instance) Index(name, mobile string, status, page, pageSize int) (*cont
if mobile != "" {
where = append(where, model2.NewWhereLike("u.mobile", mobile))
}
if len(departmentIDs) > 0 {
where = append(where, model2.NewWhereIn("d.id", departmentIDs))
}
if status > 0 {
where = append(where, model2.NewWhere("u.status", status))
}

View File

@ -3,14 +3,14 @@ package user
import (
"SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
"errors"
"time"
)
type Person struct{ *service.Session }
type Person struct{ *session.Admin }
type PersonHandle func(session *service.Session) *Person
type PersonHandle func(session *session.Admin) *Person
// EditPassword 修改密码
func (c *Person) EditPassword(oldPassword, password, repeatPwd string) error {
@ -41,7 +41,7 @@ func (c *Person) EditPassword(oldPassword, password, repeatPwd string) error {
}
func NewPerson() PersonHandle {
return func(session *service.Session) *Person {
return &Person{Session: session}
return func(session *session.Admin) *Person {
return &Person{Admin: session}
}
}

View File

@ -1,79 +0,0 @@
package user
import (
"SciencesServer/app/api/admin/controller"
model3 "SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/serve/orm"
"SciencesServer/utils"
"gorm.io/gorm"
)
type Role struct{ *controller.Platform }
type RoleHandle func(session *service.Session) *Role
// List 列表信息
func (c *Role) List(uid uint64) ([]*model3.SysRoleUserInfo, error) {
mSysRole := model3.NewSysRole()
out, err := mSysRole.UserRole(uid)
if err != nil {
return nil, err
}
return out, nil
}
// Bind 绑定角色
func (c *Role) Bind(uid uint64, roleIDs []uint64) error {
mSysUserRole := model3.NewSysUserRole()
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
err := model2.DeleteWhere(mSysUserRole.SysUserRole, []*model2.ModelWhere{model2.NewWhere("uid", uid)}, tx)
if 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: uid, RoleID: v,
})
mark[v] = v
}
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
return err
}
go utils.TryCatch(func() {
//permission := service.NewPermission(obj)(c.TenantKey, utils.UintToString(uid))
//
//if _, err = permission.DeleteRolesForUser(false); err != nil {
// logger.ErrorF("删除用户【%d】角色权限错误%v", uid, err)
// return
//}
//if _, err = permission.AddRoleForUser(); err != nil {
// logger.ErrorF("添加用户【%d】角色权限错误%v", uid, err)
// return
//}
})
return nil
})
}
func NewRole() RoleHandle {
return func(session *service.Session) *Role {
return &Role{Platform: &controller.Platform{Session: session}}
}
}