Bladeren bron

:recycle: 重构代码:为前端菜单级联选中提供支持

lishangbu 7 jaren geleden
bovenliggende
commit
c18544ece6

+ 2 - 2
pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java

@@ -118,12 +118,12 @@ public class RoleController {
 	 * 更新角色菜单
 	 *
 	 * @param roleId  角色ID
-	 * @param menuIds 菜单结合
+	 * @param menuIds 菜单ID拼成的字符串,每个id之间根据逗号分隔
 	 * @return success、false
 	 */
 	@PutMapping("/roleMenuUpd")
 	@PreAuthorize("@pms.hasPermission('sys_role_perm')")
-	public R<Boolean> roleMenuUpd(Integer roleId, @RequestParam("menuIds[]") Integer[] menuIds) {
+	public R<Boolean> roleMenuUpd(Integer roleId, @RequestParam(value = "menuIds",required = false) String menuIds) {
 		SysRole sysRole = sysRoleService.selectById(roleId);
 		return new R<>(sysRoleMenuService.insertRoleMenus(sysRole.getRoleCode(), roleId, menuIds));
 	}

+ 2 - 2
pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleMenuService.java

@@ -38,8 +38,8 @@ public interface SysRoleMenuService extends IService<SysRoleMenu> {
 	 *
 	 * @param role
 	 * @param roleId  角色
-	 * @param menuIds 菜单列表
+	 * @param menuIds 菜单ID拼成的字符串,每个id之间根据逗号分隔
 	 * @return
 	 */
-	Boolean insertRoleMenus(String role, Integer roleId, Integer[] menuIds);
+	Boolean insertRoleMenus(String role, Integer roleId, String menuIds);
 }

+ 16 - 4
pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java

@@ -19,6 +19,7 @@
 
 package com.pig4cloud.pigx.admin.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.pig4cloud.pigx.admin.api.entity.SysRoleMenu;
@@ -28,6 +29,7 @@ import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -40,18 +42,28 @@ import java.util.List;
  */
 @Service
 public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements SysRoleMenuService {
+	/**
+	 *
+	 * @param role
+	 * @param roleId  角色
+	 * @param menuIds 菜单ID拼成的字符串,每个id之间根据逗号分隔
+	 * @return
+	 */
 	@Override
 	@CacheEvict(value = "menu_details", key = "#role + '_menu'")
-	public Boolean insertRoleMenus(String role, Integer roleId, Integer[] menuIds) {
+	public Boolean insertRoleMenus(String role, Integer roleId, String menuIds) {
 		SysRoleMenu condition = new SysRoleMenu();
 		condition.setRoleId(roleId);
 		this.delete(new EntityWrapper<>(condition));
-
 		List<SysRoleMenu> roleMenuList = new ArrayList<>();
-		for (Integer menuId : menuIds) {
+		List<String> menuIdList = Arrays.asList(menuIds.split(","));
+		if(CollUtil.isEmpty(menuIdList)){
+			return Boolean.TRUE;
+		}
+		for (String menuId : menuIdList) {
 			SysRoleMenu roleMenu = new SysRoleMenu();
 			roleMenu.setRoleId(roleId);
-			roleMenu.setMenuId(menuId);
+			roleMenu.setMenuId(Integer.valueOf(menuId));
 			roleMenuList.add(roleMenu);
 		}
 		return this.insertBatch(roleMenuList);