Browse Source

修改菜单bug

duyong mac 1 year ago
parent
commit
9aa2ffbc18

+ 25 - 7
internal/pcmserver/sys/api/v1/user.go

@@ -112,6 +112,17 @@ func (s *UserApi) Register(c *gin.Context) {
 		return
 	}
 
+	roleIds := make([]int, 0)
+
+	if req.RoleIds == 0 {
+		// 2是一个默认角色。在数据初始化时完成创建。每个角色都有一些默认权限是必给的。我们使用默认角色这样一个角色来将这些必给权限赋予用户。
+		// 当用户更换角色时,默认角色自动删除。这些权限在每个角色都有,所以这些必给的权限依然会有效。
+		roleIds = append(roleIds, 2)
+
+	} else {
+		roleIds = append(roleIds, req.RoleIds)
+	}
+
 	user := model.User{
 		Username: req.Username,
 		Password: req.Password,
@@ -124,14 +135,9 @@ func (s *UserApi) Register(c *gin.Context) {
 		DeptId:   req.DeptId,
 		Remark:   req.Remark,
 		Status:   req.Status,
-		RoleIds:  req.RoleIds,
+		RoleIds:  roleIds,
 	}
-	if req.RoleIds == nil || len(req.RoleIds) == 0 {
-		// 2是一个默认角色。在数据初始化时完成创建。每个角色都有一些默认权限是必给的。我们使用默认角色这样一个角色来将这些必给权限赋予用户。
-		// 当用户更换角色时,默认角色自动删除。这些权限在每个角色都有,所以这些必给的权限依然会有效。
-		user.RoleIds = []int{2}
 
-	}
 	user.CreateBy = global.JWT.GetUserID(c)
 	u, err := userService.Register(user)
 	if err != nil {
@@ -256,6 +262,18 @@ func (s *UserApi) SetUserInfo(c *gin.Context) {
 		rescode.WriteErrResponse(c, err)
 		return
 	}
+
+	roleIds := make([]int, 0)
+
+	if req.RoleIds == 0 {
+		// 2是一个默认角色。在数据初始化时完成创建。每个角色都有一些默认权限是必给的。我们使用默认角色这样一个角色来将这些必给权限赋予用户。
+		// 当用户更换角色时,默认角色自动删除。这些权限在每个角色都有,所以这些必给的权限依然会有效。
+		roleIds = append(roleIds, 2)
+
+	} else {
+		roleIds = append(roleIds, req.RoleIds)
+	}
+
 	err = userService.UpdateUser(model.User{
 		UserID:   req.UserId,
 		NickName: req.NickName,
@@ -268,7 +286,7 @@ func (s *UserApi) SetUserInfo(c *gin.Context) {
 		DeptId:   req.DeptId,
 		Remark:   req.Remark,
 		Status:   req.Status,
-		RoleIds:  req.RoleIds,
+		RoleIds:  roleIds,
 	})
 	if err != nil {
 		rescode.WriteErrResponse(c, err)

+ 2 - 2
internal/pcmserver/sys/model/request/user.go

@@ -17,7 +17,7 @@ type Register struct {
 	DeptId   int    `json:"deptId" `
 	Remark   string `json:"remark"`
 	Status   string `json:"status"`
-	RoleIds  []int  `json:"roleIds"`
+	RoleIds  int    `json:"roleIds"`
 }
 
 type SearchUserReq struct {
@@ -44,7 +44,7 @@ type ChangeUserInfoReq struct {
 	DeptId   int    `json:"deptId" `
 	Remark   string `json:"remark"`
 	Status   string `json:"status"`
-	RoleIds  []int  `json:"roleIds"`
+	RoleIds  int    `json:"roleIds"`
 }
 
 type ChangeSelfInfoReq struct {

+ 11 - 4
internal/pcmserver/sys/service/menu.go

@@ -33,13 +33,20 @@ func (ms *MenuService) GetMenus() (topMenuList []model.Menu, err error) {
 func (ms *MenuService) GetMenusByRoleIds(roleIds []int) (topMenuList []model.Menu, err error) {
 	treeMap, err := ms.getRoleMenuTreeMap(roleIds)
 	// 顶级菜单
-	topMenuList, err = ms.geTopMenus()
+	topList, err := ms.geTopMenus()
 	if err != nil {
-		return topMenuList, err
+		return topList, err
 	}
-	for i := 0; i < len(topMenuList); i++ {
-		err = ms.getBaseChildrenList(&topMenuList[i], treeMap)
+	for i := 0; i < len(topList); i++ {
+		err = ms.getBaseChildrenList(&topList[i], treeMap)
 	}
+	// 真实的菜单
+	for i := 0; i < len(topList); i++ {
+		if len(topList[i].Children) != 0 {
+			topMenuList = append(topMenuList, topList[i])
+		}
+	}
+
 	return
 }