소스 검색

修改user_id获取方式

huangyh 6 년 전
부모
커밋
1844487d1f
5개의 변경된 파일161개의 추가작업 그리고 31개의 파일을 삭제
  1. 78 31
      controllers/SystemController.go
  2. 1 0
      middleware/login_ware.go
  3. 62 0
      models/Sql_SysMenu.go
  4. 2 0
      models/SysMenuTree_gen.go
  5. 18 0
      models/SysRolePageInfo_gen.go

+ 78 - 31
controllers/SystemController.go

@@ -98,10 +98,11 @@ func System_Logout(c *SystemController) {
 // @Success 200 {object} models.Account
 // @Failure 403 :id is empty
 func System_GetNavTree(c *SystemController) {
-	user := c.Ctx.Param(":user")
-	ret := __none_func_system__(user)
+	user_id := c.Ctx.GetString("user_id")
+
+	ret := __none_func_system__(user_id)
 	var menus []sysmodel.SysMenuTree
-	c.Db.SQL(sysmodel.Selectall_sys_menu).Find(&menus)
+	c.Db.SQL(sysmodel.Selectall_nav_tree, user_id).Find(&menus)
 
 	var menutree []sysmodel.SysMenuTree
 	finChildrenMenu(&menus, "", nil, &menutree)
@@ -180,10 +181,12 @@ func finChildrenMenu(menus *[]sysmodel.SysMenuTree, parent string, parent_menu *
 		if m.Parent == parent {
 			if parent_menu == nil {
 				m.Level = 0
+				m.ParentName = ""
 				*menutree = append(*menutree, m)
 				//finChildrenMenu(menus, m.Id, menutree[len(*menutree)-1], menutree)
 			} else {
 				m.Level = parent_menu.Level + 1
+				m.ParentName = parent_menu.Name
 				parent_menu.Children = append(parent_menu.Children, m)
 				finChildrenMenu(menus, m.Id, &parent_menu.Children[len(parent_menu.Children)-1], menutree)
 			}
@@ -260,15 +263,14 @@ func System_AddUser(c *SystemController) {
 		}
 	}
 
-	tk, _ := c.Ctx.Get("token")
-	op := tk.(*entitys.Token)
+	user_id := c.Ctx.GetString("user_id")
 
 	user.Id = utils.NewUUID()
 	user.Name = user.LoginId
 	user.CreateTime = time.Now()
 	user.LastUpdateDate = time.Now()
-	user.CreateBy = op.UserId
-	user.LastUpdateBy = op.UserId
+	user.CreateBy = user_id
+	user.LastUpdateBy = user_id
 	user.DelFlag = 1
 	user.Password = utils.HashPassword(user.Password, "")
 
@@ -339,8 +341,7 @@ func System_DelUser(c *SystemController) {
 // @Success 200 {object} models.Account
 // @Failure 403 :id is empty
 func System_UpdateUser(c *SystemController) {
-	tk, _ := c.Ctx.Get("token")
-	op := tk.(*entitys.Token)
+	user_id := c.Ctx.GetString("user_id")
 
 	var userInfo sysmodel.UserInfo
 	c.Ctx.BindJSON(&userInfo)
@@ -358,8 +359,8 @@ func System_UpdateUser(c *SystemController) {
 	//2、修改角色
 	for i, _ := range userInfo.UserRole {
 		userInfo.UserRole[i].Id = utils.NewUUID()
-		userInfo.UserRole[i].CreateBy = op.UserId
-		userInfo.UserRole[i].LastUpdateBy = op.UserId
+		userInfo.UserRole[i].CreateBy = user_id
+		userInfo.UserRole[i].LastUpdateBy = user_id
 		userInfo.UserRole[i].CreateTime = time.Now()
 		userInfo.UserRole[i].LastUpdateDate = time.Now()
 		userInfo.UserRole[i].DelFlag = 1
@@ -372,7 +373,7 @@ func System_UpdateUser(c *SystemController) {
 	}
 
 	//3、更新用户信息
-	_, err = c.Db.Table(new(models.SysUser)).ID(userInfo.Id).Update(map[string]interface{}{"name": userInfo.Name, "email": userInfo.Email, "org_id": userInfo.OrgId, "last_update_by": op.UserId, "last_update_date": time.Now()})
+	_, err = c.Db.Table(new(models.SysUser)).ID(userInfo.Id).Update(map[string]interface{}{"name": userInfo.Name, "email": userInfo.Email, "org_id": userInfo.OrgId, "last_update_by": user_id, "last_update_date": time.Now()})
 	if err != nil {
 		session.Rollback()
 		c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
@@ -400,13 +401,12 @@ func System_AddRole(c *SystemController) {
 	var role models.SysRole
 	c.Ctx.BindJSON(&role)
 
-	tk, _ := c.Ctx.Get("token")
-	op := tk.(*entitys.Token)
+	user_id := c.Ctx.GetString("user_id")
 
 	role.Id = utils.NewUUID()
 	role.DelFlag = 1
-	role.CreateBy = op.UserId
-	role.LastUpdateBy = op.UserId
+	role.CreateBy = user_id
+	role.LastUpdateBy = user_id
 	role.CreateTime = time.Now()
 	role.LastUpdateDate = time.Now()
 
@@ -466,10 +466,9 @@ func System_UpdateRole(c *SystemController) {
 	var role models.SysRole
 	c.Ctx.BindJSON(&role)
 
-	tk, _ := c.Ctx.Get("token")
-	op := tk.(*entitys.Token)
+	user_id := c.Ctx.GetString("user_id")
 
-	role.LastUpdateBy = op.UserId
+	role.LastUpdateBy = user_id
 	role.LastUpdateDate = time.Now()
 
 	c.Db.ID(role.Id).Update(&role)
@@ -521,11 +520,14 @@ func System_FindRolePage(c *SystemController) {
 // @Failure 403 :id is empty
 func System_FindRoleMenu(c *SystemController) {
 
-	tk, _ := c.Ctx.Get("token")
-	op := tk.(*entitys.Token)
+	role_id, b := c.Ctx.GetQuery("roleId")
+	if !b {
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, "roleId is null", nil})
+		return
+	}
 
 	menus := []models.SysMenu{}
-	c.Db.SQL(models.SqlSelectRoleMenuByUserId, op.UserId).Find(&menus)
+	c.Db.SQL(models.SqlFindRoleMenu, role_id).Find(&menus)
 
 	ret := __none_func_system__()
 	if ret {
@@ -542,10 +544,42 @@ func System_FindRoleMenu(c *SystemController) {
 // @Success 200 {object} models.Account
 // @Failure 403 :id is empty
 func System_SaveRoleMenu(c *SystemController) {
-	var saverolemenu []models.SaveRoleMenu
+	var saverolemenu []models.SysRoleMenu
 
 	c.Ctx.BindJSON(&saverolemenu)
 
+	if len(saverolemenu) < 1 {
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, "role menu length is error", nil})
+		return
+	}
+
+	session := c.Db.NewSession()
+	defer session.Close()
+	err := session.Begin()
+
+	//删除角色下的menu
+	_, err = c.Db.Exec("delete from sys_role_menu where role_id = ?", saverolemenu[0].RoleId)
+	//_, err = c.Db.Exec("delete from sys_role_menu where id = 1")
+	if err != nil {
+		session.Rollback()
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+
+	for i, _ := range saverolemenu {
+		saverolemenu[i].Id = utils.NewUUID()
+		saverolemenu[i].DelFlag = 1
+	}
+
+	_, err = c.Db.Insert(&saverolemenu)
+	if err != nil {
+		session.Rollback()
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
+		return
+	}
+
+	session.Commit()
+
 	ret := __none_func_system__(&saverolemenu)
 	if ret {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
@@ -579,9 +613,24 @@ func System_RoleAll(c *SystemController) {
 // @Failure 403 :id is empty
 func System_FindPermissions(c *SystemController) {
 
+	user_id := c.Ctx.GetString("user_id")
+
+	//result, err := c.Db.Query(models.SqlFindUserPermissions, op.UserId)
+
+	result, err := c.Db.QueryString(models.SqlFindUserPermissions, user_id)
+
+	strs := []string{}
+	for _, v := range result {
+		strs = append(strs, v["perms"])
+	}
+
+	if err != nil {
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
+	}
+
 	ret := __none_func_system__()
 
-	strs := []string{"sys:menu:add", "sys:menu:view", "sys:menu:edit", "sys:menu:delete", "sys:user:edit", "sys:user:delete", "sys:user:add", "sys:role:view", "sys:role:edit", "sys:role:delete", "sys:role:add"}
+	//strs = []string{"sys:menu:add", "sys:menu:view", "sys:menu:edit", "sys:menu:delete", "sys:user:edit", "sys:user:delete", "sys:user:add", "sys:role:view", "sys:role:edit", "sys:role:delete", "sys:role:add"}
 
 	if ret {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", strs})
@@ -600,12 +649,11 @@ func System_AddMenu(c *SystemController) {
 	var sysmenu models.SysMenu
 	c.Ctx.BindJSON(&sysmenu)
 
-	tk, _ := c.Ctx.Get("token")
-	op := tk.(*entitys.Token)
+	user_id := c.Ctx.GetString("user_id")
 
 	sysmenu.Id = utils.NewUUID()
-	sysmenu.CreateBy = op.UserId
-	sysmenu.LastUpdateBy = op.UserId
+	sysmenu.CreateBy = user_id
+	sysmenu.LastUpdateBy = user_id
 	sysmenu.LastUpdateDate = time.Now()
 	sysmenu.CreateTime = time.Now()
 	sysmenu.DelFlag = 1
@@ -667,10 +715,9 @@ func System_UpdateMenu(c *SystemController) {
 	var sysmenu models.SysMenu
 	c.Ctx.BindJSON(&sysmenu)
 
-	tk, _ := c.Ctx.Get("token")
-	op := tk.(*entitys.Token)
+	user_id := c.Ctx.GetString("user_id")
 
-	sysmenu.LastUpdateBy = op.UserId
+	sysmenu.LastUpdateBy = user_id
 	sysmenu.LastUpdateDate = time.Now()
 
 	_, err := c.Db.ID(sysmenu.Id).Update(&sysmenu)

+ 1 - 0
middleware/login_ware.go

@@ -23,6 +23,7 @@ func LoginWare() gin.HandlerFunc {
 		}
 
 		c.Set("token", tk)
+		c.Set("user_id", tk.UserId)
 		c.Next()
 	}
 }

+ 62 - 0
models/Sql_SysMenu.go

@@ -1,6 +1,66 @@
 package models
 
 var SqlSelectRoleMenuByUserId = `
+SELECT 
+	sys_menu.*
+FROM
+	sys_user
+LEFT JOIN
+	sys_user_role
+ON
+	sys_user.id = sys_user_role.user_id
+LEFT JOIN
+	sys_role_menu
+ON
+	sys_user_role.role_id = sys_role_menu.role_id
+LEFT JOIN
+	sys_menu
+ON
+	sys_menu.id = sys_role_menu.menu_id
+WHERE
+	sys_user.id = ?
+`
+
+//获取角色菜单
+var SqlFindRoleMenu = `
+SELECT sys_menu.*
+FROM sys_role
+LEFT JOIN
+	sys_role_menu
+ON
+	sys_role.id = sys_role_menu.role_id
+LEFT JOIN
+	sys_menu
+ON
+	sys_menu.id = sys_role_menu.menu_id
+WHERE
+	sys_role.id = ?
+`
+
+var SqlFindUserPermissions = `
+SELECT 
+	sys_menu.perms
+FROM
+	sys_user
+LEFT JOIN
+	sys_user_role
+ON
+	sys_user.id = sys_user_role.user_id
+LEFT JOIN
+	sys_role_menu
+ON
+	sys_user_role.role_id = sys_role_menu.role_id
+LEFT JOIN
+	sys_menu
+ON
+	sys_menu.id = sys_role_menu.menu_id
+WHERE
+	sys_user.id = ?
+	and sys_menu.type = 2
+`
+
+//查找导航栏
+var Selectall_nav_tree = `
 SELECT sys_menu.*
 FROM
 	sys_user
@@ -18,4 +78,6 @@ ON
 	sys_menu.id = sys_role_menu.menu_id
 WHERE
 	sys_user.id = ?
+	AND	sys_menu.type != 2 
+	order by sys_menu.order_num asc
 `

+ 2 - 0
models/SysMenuTree_gen.go

@@ -40,5 +40,7 @@ type SysMenuTree struct {
 	Children   []SysMenuTree `json:"children"`
 	//目录层级
 	Level   int32 `json:"level"`
+	//父节点名称
+	ParentName   string `json:"parent_name"`
 
 }

+ 18 - 0
models/SysRolePageInfo_gen.go

@@ -0,0 +1,18 @@
+
+package models
+import (
+
+)
+
+type SysRolePageInfo struct {
+	
+	//页码
+	PageNum   int `json:"pageNum"`
+	//单页数
+	PageSize   int `json:"pageSize"`
+	//总页数
+	TotalSize   int `json:"totalSize"`
+	//内容
+	Content   []SysRole `json:"content"`
+
+}