Bläddra i källkod

修改分页utils总记录数,增加菜单树、菜单列表

huangyh 6 år sedan
förälder
incheckning
d31352f10f

+ 48 - 26
controllers/gen/SystemController_gen.go

@@ -33,19 +33,6 @@ func (c *SystemController) Sidebar(ctx *gin.Context) {
 	partial.System_Sidebar(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
 }
 
-// GetMenuTree
-// @Title GetMenuTree
-// @Description 获取系统菜单         
-// @Param	user    string  false  "用户id"  
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /get_menu_tree  [post,get]
-func (c *SystemController) GetMenuTree(ctx *gin.Context) {
-	//
-	db:=c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.System_GetMenuTree(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
 // FindUserPage
 // @Title FindUserPage
 // @Description 获取用户分页数         
@@ -70,6 +57,54 @@ func (c *SystemController) GetOrgTree(ctx *gin.Context) {
 	partial.System_GetOrgTree(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
 }
 
+// GetMenuTree
+// @Title GetMenuTree
+// @Description 获取菜单树         
+// @Success 200 {object} sysReturn
+// @Failure 403 :id is empty
+// @router /get_menu_tree  [get,post]
+func (c *SystemController) GetMenuTree(ctx *gin.Context) {
+	//
+	db:=c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
+	partial.System_GetMenuTree(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
+}
+
+// FindOrgPage
+// @Title FindOrgPage
+// @Description 获取组织架构分页数         
+// @Success 200 {object} sysReturn
+// @Failure 403 :id is empty
+// @router /find_org_page  [get,post]
+func (c *SystemController) FindOrgPage(ctx *gin.Context) {
+	//
+	db:=c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
+	partial.System_FindOrgPage(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
+}
+
+// FindRolePage
+// @Title FindRolePage
+// @Description 获取角色分页数         
+// @Success 200 {object} sysReturn
+// @Failure 403 :id is empty
+// @router /find_role_page  [get,post]
+func (c *SystemController) FindRolePage(ctx *gin.Context) {
+	//
+	db:=c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
+	partial.System_FindRolePage(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
+}
+
+// FindMenuPage
+// @Title FindMenuPage
+// @Description 获取菜单分页数         
+// @Success 200 {object} sysReturn
+// @Failure 403 :id is empty
+// @router /find_menu_page  [get,post]
+func (c *SystemController) FindMenuPage(ctx *gin.Context) {
+	//
+	db:=c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
+	partial.System_FindMenuPage(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
+}
+
 // AddUser
 // @Title AddUser
 // @Description 添加用户         
@@ -157,19 +192,6 @@ func (c *SystemController) UpdateRole(ctx *gin.Context) {
 	partial.System_UpdateRole(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
 }
 
-// FindRolePage
-// @Title FindRolePage
-// @Description 角色分页         
-// @Param	page      false  "分页参数"  
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /find_role_page  [post,get,put]
-func (c *SystemController) FindRolePage(ctx *gin.Context) {
-	//
-	db:=c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.System_FindRolePage(&entitys.CtrlContext{ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
 // FindRoleMenu
 // @Title FindRoleMenu
 // @Description 查找角色权限         

+ 24 - 5
controllers/partial/SystemController.go

@@ -38,13 +38,13 @@ func System_Sidebar(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_GetMenuTree(c *entitys.CtrlContext) {
-	user := c.Ctx.Query("user")
+	paramMap_i_t := map[string]interface{}{"sort": "name"}
+	result, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap_i_t)
 
-	ret := __none_func_system__(user)
-	if ret {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
+	if err == nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
 	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
 	}
 }
 
@@ -317,6 +317,25 @@ func System_FindRolePage(c *entitys.CtrlContext) {
 	}
 }
 
+// _FindMenuPage
+// @Title _FindMenuPage
+// @Description 获取角色分页数
+// @Success 200 {object} Account
+// @Failure 403 :id is empty
+func System_FindMenuPage(c *entitys.CtrlContext) {
+	page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
+	rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
+
+	paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
+	result, err := sysutils.PageSearch(c.Db, "system", "find_menu_page", "sys_menu", paramMap_i_t)
+	if err == nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
+	} else {
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+	}
+
+}
+
 // _FindRoleMenu
 // @Title _FindRoleMenu
 // @Description 查找角色权限

+ 5 - 7
light-apiengine.xml

@@ -51,21 +51,18 @@
                     <failure ref="$sys_return"></failure>
                 </return>
             </api>
-            <api name="get_menu_tree" desc="获取系统菜单" method="post,get">
-                <param name="user" type="string" desc="用户id"/>
-                <return>
-                    <success ref="$sys_return"></success>
-                    <failure ref="$sys_return"></failure>
-                </return>
-            </api>
             <api name="find_user_page" desc="获取用户分页数" function="page" table="sys_user" method="get,post" >
             </api>
             <api name="get_org_tree" desc="获取组织架构树" function="tree" table="sys_org" method="get,post" >
             </api>
+            <api name="get_menu_tree" desc="获取菜单树" function="tree" table="sys_menu" method="get,post" >
+            </api>
             <api name="find_org_page" desc="获取组织架构分页数" function="page" table="sys_org" method="get,post" >
             </api>
             <api name="find_role_page" desc="获取角色分页数" function="page" table="sys_role" method="get,post" >
             </api>
+            <api name="find_menu_page" desc="获取菜单分页数" function="page" table="sys_menu" method="get,post" >
+            </api>
             <api name="add_user" desc="添加用户" method="post,get,put">
                 <param name="login_id" type="string" desc="登录ID"/>
                 <param name="password" type="string" desc="密码"/>
@@ -345,6 +342,7 @@
             <column isNull="false" name="name" caption="菜单名称" type="string" size="36" dbtype="varchar(36)"/>
             <column isNull="false" name="code" caption="编码" type="string" size="36" dbtype="varchar(36)"/>
             <column isNull="true" name="parent" caption="父菜单ID,一级菜单为null" type="string" size="36" dbtype="varchar(36)"/>
+            <column isNull="true" name="inheritance" caption="继承关系" type="string" size="500" dbtype="varchar(500)"/>
             <column name="url" type="string" size="200" dbtype="varchar(200)" caption="菜单URL,类型:1.普通页面(如用户管理, /sys/user) 2.嵌套完整外部页面,以http(s)开头的链接 3.嵌套服务器页面,使用iframe:前缀+目标URL(如SQL监控, iframe:/druid/login.html, iframe:前缀会替换成服务器地址)"/>
             <column name="component" type="string" size="100" dbtype="varchar(100)" caption="菜单组件"/>
             <column isNull="true" name="perms" caption="授权(多个用逗号分隔,如:sys:user:add,sys:user:edit)" type="string" size="500" dbtype="varchar(500)"/>

+ 2 - 0
models/SysMenuTree_gen.go

@@ -16,6 +16,8 @@ type SysMenuTree struct {
 	Code string `json:"code"`
 	//父菜单ID,一级菜单为null
 	Parent string `json:"parent"`
+	//继承关系
+	Inheritance string `json:"inheritance"`
 	//菜单URL,类型:1.普通页面(如用户管理, /sys/user) 2.嵌套完整外部页面,以http(s)开头的链接 3.嵌套服务器页面,使用iframe:前缀+目标URL(如SQL监控, iframe:/druid/login.html, iframe:前缀会替换成服务器地址)
 	Url string `json:"url"`
 	//菜单组件

+ 2 - 0
models/SysMenu_gen.go

@@ -13,6 +13,8 @@ type SysMenu struct {
 	Code   string    `xorm:"'code' varchar(36) notnull "json:"code"`
 	//父菜单ID,一级菜单为null
 	Parent   string    `xorm:"'parent' varchar(36) null "json:"parent"`
+	//继承关系
+	Inheritance   string    `xorm:"'inheritance' varchar(500) null "json:"inheritance"`
 	//菜单URL,类型:1.普通页面(如用户管理, /sys/user) 2.嵌套完整外部页面,以http(s)开头的链接 3.嵌套服务器页面,使用iframe:前缀+目标URL(如SQL监控, iframe:/druid/login.html, iframe:前缀会替换成服务器地址)
 	Url   string    `xorm:"'url' varchar(200) notnull "json:"url"`
 	//菜单组件

+ 12 - 6
routers/system.go

@@ -23,15 +23,24 @@ func registerSystemRouter(e *engine.ApiEngine){
 	v1.GET("/sidebar",ctrler.Sidebar)
 	v1.POST("/sidebar",ctrler.Sidebar)
 
-	v1.GET("/get_menu_tree",ctrler.GetMenuTree)
-	v1.POST("/get_menu_tree",ctrler.GetMenuTree)
-
 	v1.GET("/find_user_page",ctrler.FindUserPage)
 	v1.POST("/find_user_page",ctrler.FindUserPage)
 
 	v1.GET("/get_org_tree",ctrler.GetOrgTree)
 	v1.POST("/get_org_tree",ctrler.GetOrgTree)
 
+	v1.GET("/get_menu_tree",ctrler.GetMenuTree)
+	v1.POST("/get_menu_tree",ctrler.GetMenuTree)
+
+	v1.GET("/find_org_page",ctrler.FindOrgPage)
+	v1.POST("/find_org_page",ctrler.FindOrgPage)
+
+	v1.GET("/find_role_page",ctrler.FindRolePage)
+	v1.POST("/find_role_page",ctrler.FindRolePage)
+
+	v1.GET("/find_menu_page",ctrler.FindMenuPage)
+	v1.POST("/find_menu_page",ctrler.FindMenuPage)
+
 	v1.GET("/add_user",ctrler.AddUser)
 	v1.POST("/add_user",ctrler.AddUser)
 
@@ -50,9 +59,6 @@ func registerSystemRouter(e *engine.ApiEngine){
 	v1.GET("/update_role",ctrler.UpdateRole)
 	v1.POST("/update_role",ctrler.UpdateRole)
 
-	v1.GET("/find_role_page",ctrler.FindRolePage)
-	v1.POST("/find_role_page",ctrler.FindRolePage)
-
 	v1.GET("/find_role_menu",ctrler.FindRoleMenu)
 	v1.POST("/find_role_menu",ctrler.FindRoleMenu)
 

+ 7 - 0
sqlconfig/system_controller/system_find_menu_page_count.tpl

@@ -0,0 +1,7 @@
+
+select
+    count(*) records
+from
+    sys_menu
+where
+	del_flag = 0

+ 8 - 0
sqlconfig/system_controller/system_find_menu_page_select.tpl

@@ -0,0 +1,8 @@
+
+select
+    *
+from
+    sys_menu
+where
+    del_flag = 0
+LIMIT {{.rows}} OFFSET {{.offset}}

+ 7 - 0
sqlconfig/system_controller/system_get_menu_tree.tpl

@@ -0,0 +1,7 @@
+
+select
+    *
+from
+    sys_menu
+where
+    del_flag = 0

+ 4 - 2
utils/page_util.go

@@ -30,7 +30,9 @@ func PageSearch(engine *xorm.Engine, controllername string, apiname string, tabl
 	records := cresult[0]["records"].(int64)
 
 	var totalSize int64 = 0
-	if records%int64(rows) == 0 {
+	if totalSize < int64(rows) {
+		totalSize = 1
+	} else if records%int64(rows) == 0 {
 		totalSize = records / int64(rows)
 	} else {
 		totalSize = records / int64(rows+1)
@@ -40,7 +42,7 @@ func PageSearch(engine *xorm.Engine, controllername string, apiname string, tabl
 	presult.Page = (page)
 	presult.Rows = (rows)
 	presult.Content = result
-	presult.TotalSize = totalSize
+	presult.TotalSize = records
 
 	return &presult, nil
 }