
* beta:2.7.8-a 增加自动化创建树形结构 (#1941) * feat: 支持创建树形结构 --------- Co-authored-by: piexlMax(奇淼 <qimiaojiangjizhao@gmail.com> * 优化user store部分写法 * Update user.js * feat: 升级版本号 * Dev 278 beta2 (#1954) * 在关闭详情弹窗后 detailFrom为空对象,arr为undefined 使用slice控制台会报错 * 查询不重置pageSize * 优化主题模式相关内容 * 优化弹窗手机端显示 * bugfix:PostgreSQL initdb (#1953) * bugfix:postgresql增加显示指定template --------- Co-authored-by: PiexlMax(奇淼 <165128580+pixelmaxQm@users.noreply.github.com> --------- Co-authored-by: zayn <972858472@qq.com> Co-authored-by: Azir <2075125282@qq.com> Co-authored-by: Qing Liang <106448173+xue-ding-e@users.noreply.github.com> * docs:调整部分代码注释以及代码格式 * feat: 自动化代码字典支持多选 * fix:调整值接收器和指针接收器 * feat: 支持导出表格复制,优化增加方法页面。 * chore:初始化代码规范化。 --------- Co-authored-by: piexlMax(奇淼 <qimiaojiangjizhao@gmail.com> Co-authored-by: Azir <2075125282@qq.com> Co-authored-by: zayn <972858472@qq.com> Co-authored-by: Qing Liang <106448173+xue-ding-e@users.noreply.github.com> Co-authored-by: cjb <75364055@qq.com>
85 lines
2.3 KiB
Go
85 lines
2.3 KiB
Go
package system
|
|
|
|
import (
|
|
"context"
|
|
|
|
sysModel "github.com/flipped-aurora/gin-vue-admin/server/model/system"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/service/system"
|
|
"github.com/pkg/errors"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
const initOrderMenuAuthority = initOrderMenu + initOrderAuthority
|
|
|
|
type initMenuAuthority struct{}
|
|
|
|
// auto run
|
|
func init() {
|
|
system.RegisterInit(initOrderMenuAuthority, &initMenuAuthority{})
|
|
}
|
|
|
|
func (i *initMenuAuthority) MigrateTable(ctx context.Context) (context.Context, error) {
|
|
return ctx, nil // do nothing
|
|
}
|
|
|
|
func (i *initMenuAuthority) TableCreated(ctx context.Context) bool {
|
|
return false // always replace
|
|
}
|
|
|
|
func (i *initMenuAuthority) InitializerName() string {
|
|
return "sys_menu_authorities"
|
|
}
|
|
|
|
func (i *initMenuAuthority) InitializeData(ctx context.Context) (next context.Context, err error) {
|
|
db, ok := ctx.Value("db").(*gorm.DB)
|
|
if !ok {
|
|
return ctx, system.ErrMissingDBContext
|
|
}
|
|
initAuth := &initAuthority{}
|
|
authorities, ok := ctx.Value(initAuth.InitializerName()).([]sysModel.SysAuthority)
|
|
if !ok {
|
|
return ctx, errors.Wrap(system.ErrMissingDependentContext, "创建 [菜单-权限] 关联失败, 未找到权限表初始化数据")
|
|
}
|
|
menus, ok := ctx.Value(new(initMenu).InitializerName()).([]sysModel.SysBaseMenu)
|
|
if !ok {
|
|
return next, errors.Wrap(errors.New(""), "创建 [菜单-权限] 关联失败, 未找到菜单表初始化数据")
|
|
}
|
|
next = ctx
|
|
// 888
|
|
if err = db.Model(&authorities[0]).Association("SysBaseMenus").Replace(menus); err != nil {
|
|
return next, err
|
|
}
|
|
|
|
// 8881
|
|
menu8881 := menus[:2]
|
|
menu8881 = append(menu8881, menus[7])
|
|
if err = db.Model(&authorities[1]).Association("SysBaseMenus").Replace(menu8881); err != nil {
|
|
return next, err
|
|
}
|
|
|
|
// 9528
|
|
if err = db.Model(&authorities[2]).Association("SysBaseMenus").Replace(menus[:11]); err != nil {
|
|
return next, err
|
|
}
|
|
if err = db.Model(&authorities[2]).Association("SysBaseMenus").Append(menus[12:17]); err != nil {
|
|
return next, err
|
|
}
|
|
return next, nil
|
|
}
|
|
|
|
func (i *initMenuAuthority) DataInserted(ctx context.Context) bool {
|
|
db, ok := ctx.Value("db").(*gorm.DB)
|
|
if !ok {
|
|
return false
|
|
}
|
|
auth := &sysModel.SysAuthority{}
|
|
if ret := db.Model(auth).
|
|
Where("authority_id = ?", 9528).Preload("SysBaseMenus").Find(auth); ret != nil {
|
|
if ret.Error != nil {
|
|
return false
|
|
}
|
|
return len(auth.SysBaseMenus) > 0
|
|
}
|
|
return false
|
|
}
|