菜单编辑功能 api关联模式变更后台相关
This commit is contained in:
@@ -31,7 +31,6 @@ func (a *Api) DeleteApi() (err error) {
|
||||
|
||||
func (a *Api) EditApi() (err error) {
|
||||
err = qmsql.DEFAULTDB.Update(a).Error
|
||||
err = qmsql.DEFAULTDB.Where("path = ?",a.Path).Update("path",a.Path).Error
|
||||
return err
|
||||
}
|
||||
|
||||
|
@@ -1,21 +1,27 @@
|
||||
package dbModel
|
||||
|
||||
import "main/init/qmsql"
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/jinzhu/gorm"
|
||||
"main/init/qmsql"
|
||||
)
|
||||
|
||||
type ApiAuthority struct {
|
||||
AuthorityId string `json:"-"`
|
||||
Path string `json:"_"`
|
||||
gorm.Model
|
||||
AuthorityId string
|
||||
Authority Authority `gorm:"ForeignKey:AuthorityId;AssociationForeignKey:AuthorityId"` //其实没有关联的必要
|
||||
ApiId string
|
||||
Api Api
|
||||
}
|
||||
|
||||
|
||||
//创建角色api关联关系
|
||||
func (a *ApiAuthority)SetAuthAndPath(authId string,apis []Api)(err error){
|
||||
err = qmsql.DEFAULTDB.Where("authority_id = ?",authId).Delete(&ApiAuthority{}).Error
|
||||
for _,v := range apis{
|
||||
err = qmsql.DEFAULTDB.Create(&ApiAuthority{AuthorityId:authId,Path:v.Path}).Error
|
||||
if (err!=nil){
|
||||
func (a *ApiAuthority) SetAuthAndPath(authId string, apis []Api) (err error) {
|
||||
err = qmsql.DEFAULTDB.Where("authority_id = ?", authId).Delete(&ApiAuthority{}).Error
|
||||
for _, v := range apis {
|
||||
err = qmsql.DEFAULTDB.Create(&ApiAuthority{AuthorityId: authId, ApiId: fmt.Sprintf("%v", v.ID)}).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package dbModel
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/jinzhu/gorm"
|
||||
"github.com/pkg/errors"
|
||||
"main/controller/servers"
|
||||
@@ -33,18 +34,28 @@ func (b *BaseMenu) AddBaseMenu() (err error) {
|
||||
}
|
||||
|
||||
func (b *BaseMenu) DeleteBaseMenu(id float64) (err error) {
|
||||
err = qmsql.DEFAULTDB.Where("parent_id = ?",id).First(&BaseMenu{}).Error
|
||||
if(err!=nil){
|
||||
err = qmsql.DEFAULTDB.Where("parent_id = ?", id).First(&BaseMenu{}).Error
|
||||
if err != nil {
|
||||
err = qmsql.DEFAULTDB.Where("id = ?", id).Delete(&b).Error
|
||||
err = qmsql.DEFAULTDB.Where("menu_id = ?", id).Delete(&Menu{}).Error
|
||||
}else{
|
||||
err = qmsql.DEFAULTDB.Where("menu_id = ?", id).Unscoped().Delete(&Menu{}).Error
|
||||
} else {
|
||||
return errors.New("此菜单存在子菜单不可删除")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (b *BaseMenu) UpdataBaseMenu(name string) (err error) {
|
||||
err = qmsql.DEFAULTDB.Where("name = ?", name).Update(&b).Update(&Menu{}).Error
|
||||
func (b *BaseMenu) UpdataBaseMenu() (err error) {
|
||||
upDataMap := make(map[string]interface{})
|
||||
upDataMap["parentId"] = b.ParentId
|
||||
upDataMap["path"] = b.Path
|
||||
upDataMap["name"] = b.Name
|
||||
upDataMap["hidden"] = b.Hidden
|
||||
upDataMap["component"] = b.Component
|
||||
upDataMap["title"] = b.Title
|
||||
upDataMap["icon"] = b.Icon
|
||||
err = qmsql.DEFAULTDB.Where("id = ?", b.ID).Find(&BaseMenu{}).Updates(upDataMap).Error
|
||||
err1 := qmsql.DEFAULTDB.Where("menu_id = ?", b.ID).Find(&Menu{}).Updates(upDataMap).Error
|
||||
fmt.Printf("菜单修改时候,关联菜单err:%v", err1)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@@ -5,6 +5,7 @@ import (
|
||||
"main/init/qmsql"
|
||||
)
|
||||
|
||||
// menu需要构建的点有点多 这里关联关系表直接把所有数据拿过来 用代码实现关联 后期实现主外键模式
|
||||
type Menu struct {
|
||||
BaseMenu
|
||||
MenuId string `json:"menuId"`
|
||||
|
Reference in New Issue
Block a user