Explorar o código

Merge branch 'v2' of https://git.i2erp.cn/packages/light-apiengine into v2

double.huang %!s(int64=5) %!d(string=hai) anos
pai
achega
4c00fe7f11

+ 24 - 6
controllers/partial/SystemController.go

@@ -36,8 +36,14 @@ func System_Sidebar(c *entitys.CtrlContext) {
 
 	op := template.HTML(type_op)
 
-	// 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5
-	exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user.UserId, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
+	// exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user.UserId, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
+	// 管理员角色Code LAadmin
+	exist, _ := c.Db.SQL(`SELECT sys_user_role.id FROM sys_user_role,sys_role
+		WHERE sys_user_role.role_id=sys_role.id
+		AND sys_user_role.del_flag=0
+		AND sys_role.del_flag=0
+		AND sys_role.code=?
+		AND sys_user_role.user_id=?`, "LAadmin", user.UserId).Exist()
 	//如果是管理员
 	var paramMap_i_t map[string]interface{}
 	if exist {
@@ -175,9 +181,15 @@ func System_GetOrgTree(c *entitys.CtrlContext) {
 	var roleRule interface{} = ""
 	rule_code := "org_tree"
 	var user sysmodel.SysUser
-	// 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5,如果是管理员,可以看所有,否则只看到本部门
 	user_id := c.Ctx.GetString("user_id")
-	exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
+	// exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
+	// 管理员角色Code LAadmin
+	exist, _ := c.Db.SQL(`SELECT sys_user_role.id FROM sys_user_role,sys_role
+		WHERE sys_user_role.role_id=sys_role.id
+		AND sys_user_role.del_flag=0
+		AND sys_role.del_flag=0
+		AND sys_role.code=?
+		AND sys_user_role.user_id=?`, "LAadmin", user_id).Exist()
 	//如果是管理员
 	if exist {
 		user_id = ""
@@ -778,8 +790,14 @@ func System_FindMenuPage(c *entitys.CtrlContext) {
 
 	op := template.HTML(type_op)
 
-	// 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5
-	exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
+	// exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "fc3560f6-e728-490f-aeea-613ed44668fa").Exist()
+	// 管理员角色Code LAadmin
+	exist, _ := c.Db.SQL(`SELECT sys_user_role.id FROM sys_user_role,sys_role
+		WHERE sys_user_role.role_id=sys_role.id
+		AND sys_user_role.del_flag=0
+		AND sys_role.del_flag=0
+		AND sys_role.code=?
+		AND sys_user_role.user_id=?`, "LAadmin", user_id).Exist()
 	//如果是管理员
 	if exist {
 		user_id = ""

+ 25 - 24
sqlconfig/system_controller/system_find_menu_page_count.tpl

@@ -1,33 +1,34 @@
 select
-    count(distinct sys_menu.id) records
-from
-    sys_menu
-LEFT JOIN
-    sys_role_menu
-ON
-    sys_menu.id = sys_role_menu.menu_id
-LEFT JOIN
-    sys_user_role
-ON
-    sys_role_menu.role_id = sys_user_role.role_id
-LEFT JOIN
-    sys_user
-ON
-    sys_user_role.user_id = sys_user.id
-where
-    sys_menu.del_flag = 0
+    count(sys_menu.id) records
+FROM
+	sys_menu
+{{if ne .user_id ""}}
+INNER JOIN (
+	SELECT DISTINCT
+		sys_role_menu.menu_id
+	FROM
+		sys_role_menu,
+		sys_user_role,
+		sys_user
+	WHERE
+		sys_role_menu.del_flag = 0
+	AND sys_user_role.del_flag = 0
+    AND sys_user.id = '{{.user_id}}'
+	AND sys_role_menu.role_id = sys_user_role.role_id
+	AND sys_user_role.user_id = sys_user.id
+) sys_role_menu ON sys_menu.id = sys_role_menu.menu_id
+{{end}}
+WHERE
+	sys_menu.del_flag = 0
 {{if ne .name ""}}
-    and sys_menu.name like '%{{.name}}%'
+    AND sys_menu.name like '%{{.name}}%'
 {{end}}
 {{if ne .code ""}}
-    and sys_menu.code like '%{{.code}}%'
+    AND sys_menu.code like '%{{.code}}%'
 {{end}}
 {{if ne .cn_id ""}}
-    and sys_menu.inheritance like '%{{.cn_id}}%'
+    AND sys_menu.inheritance like '%{{.cn_id}}%'
 {{end}}
 {{if ne .type_op ""}}
-    and sys_menu.type {{.type_op}} {{.type}}
-{{end}}
-{{if ne .user_id ""}}
-    and sys_user.id = '{{.user_id}}'
+    AND sys_menu.type {{.type_op}} {{.type}}
 {{end}}

+ 29 - 30
sqlconfig/system_controller/system_find_menu_page_select.tpl

@@ -1,38 +1,37 @@
-
-select
-    distinct sys_menu.*
-from
-    sys_menu
-LEFT JOIN
-    sys_role_menu
-ON
-    sys_menu.id = sys_role_menu.menu_id
-LEFT JOIN
-    sys_user_role
-ON
-    sys_role_menu.role_id = sys_user_role.role_id
-LEFT JOIN
-    sys_user
-ON
-    sys_user_role.user_id = sys_user.id
-where
-    sys_menu.del_flag = 0
+SELECT
+	sys_menu.*
+FROM
+	sys_menu
+{{if ne .user_id ""}}
+INNER JOIN (
+	SELECT DISTINCT
+		sys_role_menu.menu_id
+	FROM
+		sys_role_menu,
+		sys_user_role,
+		sys_user
+	WHERE
+		sys_role_menu.del_flag = 0
+	AND sys_user_role.del_flag = 0
+    AND sys_user.id = '{{.user_id}}'
+	AND sys_role_menu.role_id = sys_user_role.role_id
+	AND sys_user_role.user_id = sys_user.id
+) sys_role_menu ON sys_menu.id = sys_role_menu.menu_id
+{{end}}
+WHERE
+	sys_menu.del_flag = 0
 {{if ne .name ""}}
-    and sys_menu.name like '%{{.name}}%'
+    AND sys_menu.name like '%{{.name}}%'
 {{end}}
 {{if ne .code ""}}
-    and sys_menu.code like '%{{.code}}%'
+    AND sys_menu.code like '%{{.code}}%'
 {{end}}
 {{if ne .cn_id ""}}
-    and sys_menu.inheritance like '%{{.cn_id}}%'
+    AND sys_menu.inheritance like '%{{.cn_id}}%'
 {{end}}
 {{if ne .type_op ""}}
-    and sys_menu.type {{.type_op}} {{.type}}
-{{end}}
-{{if ne .user_id ""}}
-    and sys_user.id = '{{.user_id}}'
-{{else}}
-    group by sys_menu.id
+    AND sys_menu.type {{.type_op}} {{.type}}
 {{end}}
-order by order_num
-LIMIT {{.rows}} OFFSET {{.offset}}
+ORDER BY
+	sys_menu.order_num, sys_menu.id
+LIMIT {{.rows}} OFFSET {{.offset}}