菜单编辑功能 api关联模式变更后台相关

This commit is contained in:
pixel
2019-09-26 13:13:42 +08:00
parent 9f615afdae
commit 59565c042d
8 changed files with 87 additions and 24 deletions

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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
}

View File

@@ -5,6 +5,7 @@ import (
"main/init/qmsql"
)
// menu需要构建的点有点多 这里关联关系表直接把所有数据拿过来 用代码实现关联 后期实现主外键模式
type Menu struct {
BaseMenu
MenuId string `json:"menuId"`