fix:app菜单导航问题

main
HuangHuiKang 3 days ago
parent 142d2b8b85
commit c1a770ef17

@ -29,6 +29,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@Tag(name = "管理后台 - App用户导航菜单配置")
@RestController
@RequestMapping("/system/user-nav-menu")
@ -56,8 +58,9 @@ public class UserNavMenuController {
@PutMapping("/update-list")
@Operation(summary = "批量更新")
// @PreAuthorize("@ss.hasPermission('system:user-nav-menu:update')")
public CommonResult<Boolean> updateUserNavMenuList(@Valid @RequestBody List<UserNavMenuSaveReqVO> updateReqVOList) {
userNavMenuService.updateUserNavMenuList(updateReqVOList);
public CommonResult<Boolean> updateUserNavMenuList(@RequestParam(value = "userId", required = false) Long userId,
@Valid @RequestBody(required = false) List<UserNavMenuSaveReqVO> updateReqVOList) {
userNavMenuService.updateUserNavMenuList(userId != null ? userId : getLoginUserId(), updateReqVOList);
return success(true);
}

@ -55,7 +55,7 @@ public interface UserNavMenuService {
List<UserNavMenuDO> getUserNavMenuList(@Valid UserNavMenuPageReqVO listReqVO);
void updateUserNavMenuList(@Valid List<UserNavMenuSaveReqVO> updateReqVOList);
void updateUserNavMenuList(Long userId, @Valid List<UserNavMenuSaveReqVO> updateReqVOList);
}

@ -47,17 +47,21 @@ public class UserNavMenuServiceImpl implements UserNavMenuService {
}
@Override
public void updateUserNavMenuList(List<UserNavMenuSaveReqVO> updateReqVOList) {
public void updateUserNavMenuList(Long userId, List<UserNavMenuSaveReqVO> updateReqVOList) {
if (updateReqVOList == null || updateReqVOList.isEmpty()) {
if (userId == null) {
throw new IllegalArgumentException("userId cannot be empty when update menu list is empty");
}
userNavMenuMapper.deleteByUserId(userId);
return;
}
Long userId = updateReqVOList.get(0).getUserId();
Long targetUserId = userId != null ? userId : updateReqVOList.get(0).getUserId();
for (UserNavMenuSaveReqVO updateReqVO : updateReqVOList) {
if (!Objects.equals(userId, updateReqVO.getUserId())) {
if (!Objects.equals(targetUserId, updateReqVO.getUserId())) {
throw exception(USER_NAV_MENU_NOT_EXISTS);
}
}
userNavMenuMapper.deleteByUserId(userId);
userNavMenuMapper.deleteByUserId(targetUserId);
List<UserNavMenuDO> insertList = BeanUtils.toBean(updateReqVOList, UserNavMenuDO.class);
insertList.forEach(userNavMenuMapper::insert);
}

Loading…
Cancel
Save