Procházet zdrojové kódy

add:菜单管理

zoie před 2 týdny
rodič
revize
dcf6905a6b
2 změnil soubory, kde provedl 88 přidání a 5 odebrání
  1. 55 2
      Menu/API.go
  2. 33 3
      Menu/Menu.go

+ 55 - 2
Menu/API.go

@@ -1,14 +1,15 @@
-package Account
+package Menu
 
 import (
 	"encoding/json"
 	"errors"
+	"time"
+
 	"github.com/astaxie/beego/cache"
 	_ "github.com/astaxie/beego/cache/redis"
 	"github.com/beego/beego/v2/adapter/orm"
 	orm2 "github.com/beego/beego/v2/client/orm"
 	"gogs.baozhida.cn/zoie/ERP_libs/lib"
-	"time"
 )
 
 type API struct {
@@ -107,3 +108,55 @@ func (m *APIDaoImpl) recursiveMenu(MenuIds []int, AllIds *[]int) error {
 	}
 	return m.recursiveMenu(subIds, AllIds)
 }
+
+// 获取 ById
+func (m *APIDaoImpl) Read_API_ById(id int) (r API, err error) {
+	r.Id = id
+	err = m.orm.Read(&r)
+	return r, err
+}
+
+// 获取 ByMenuId - 根据菜单ID获取API列表
+func (m *APIDaoImpl) Read_API_List_ByMenuId(T_Menu_Id int) (maps []API, err error) {
+	qs := m.orm.QueryTable(new(API))
+	_, err = qs.Filter("T_Menu_Id", T_Menu_Id).Filter("T_enable", 1).All(&maps)
+	return maps, err
+}
+
+// 添加
+func (m *APIDaoImpl) Add_API(r API) (id int64, err error) {
+	if r.T_enable == 0 {
+		r.T_enable = 1
+	}
+	if len(r.T_method) == 0 {
+		r.T_method = "POST"
+	}
+	id, err = m.orm.Insert(&r)
+	return id, err
+}
+
+// 批量添加
+func (m *APIDaoImpl) InsertMulti_API(r []API) (id int64, err error) {
+	id, err = orm.NewOrm().InsertMulti(len(r), r)
+	return
+}
+
+// 修改
+func (m *APIDaoImpl) Update_API(r API, cols ...string) (int64, error) {
+	if len(cols) == 0 {
+		return m.orm.Update(&r, "T_name", "T_uri", "T_method", "T_enable")
+	}
+	return m.orm.Update(&r, cols...)
+}
+
+// 删除(软删除,设置 T_enable = 0)
+func (m *APIDaoImpl) Delete_API(r API) (int64, error) {
+	r.T_enable = 0
+	return m.orm.Update(&r, "T_enable")
+}
+
+// 根据菜单ID删除所有关联的API(软删除)
+func (m *APIDaoImpl) Delete_API_ByMenuId(T_Menu_Id int) (int64, error) {
+	qs := m.orm.QueryTable(new(API))
+	return qs.Filter("T_Menu_Id", T_Menu_Id).Filter("T_enable", 1).Update(orm2.Params{"T_enable": 0})
+}

+ 33 - 3
Menu/Menu.go

@@ -1,4 +1,4 @@
-package Account
+package Menu
 
 import (
 	"github.com/beego/beego/v2/adapter/orm"
@@ -30,8 +30,8 @@ func (t *Menu) TableName() string {
 	return "menu" // 数据库名称   // ************** 替换 FormulaList **************
 }
 
-func NewMenu(orm orm.Ormer) MenuDaoImpl {
-	return MenuDaoImpl{orm: orm}
+func NewMenu(orm orm.Ormer) *MenuDaoImpl {
+	return &MenuDaoImpl{orm: orm}
 }
 
 type MenuDaoImpl struct {
@@ -122,3 +122,33 @@ func (m *MenuDaoImpl) recursiveMenu(MenuIds []int, AllIds *[]int) error {
 	}
 	return m.recursiveMenu(subIds, AllIds)
 }
+
+// 获取 ById
+func (m *MenuDaoImpl) Read_Menu_ById(id int) (r Menu, err error) {
+	r.Id = id
+	err = m.orm.Read(&r)
+	return r, err
+}
+
+// 添加
+func (m *MenuDaoImpl) Add_Menu(r Menu) (id int64, err error) {
+	if r.T_State == 0 {
+		r.T_State = 1
+	}
+	id, err = m.orm.Insert(&r)
+	return id, err
+}
+
+// 修改
+func (m *MenuDaoImpl) Update_Menu(r Menu, cols ...string) (int64, error) {
+	if len(cols) == 0 {
+		return m.orm.Update(&r, "T_mid", "T_name", "T_permission", "T_icon", "T_uri", "T_type", "T_sort", "T_State")
+	}
+	return m.orm.Update(&r, cols...)
+}
+
+// 删除(软删除,设置 T_State = 0)
+func (m *MenuDaoImpl) Delete_Menu(r Menu) (int64, error) {
+	r.T_State = 0
+	return m.orm.Update(&r, "T_State")
+}