From a358eb77f76aab25196a489c641d1687f2756cef Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 19 十月 2023 16:15:30 +0800
Subject: [PATCH] 代码提交

---
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java
index a29ea7c..d596d8e 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/RoleMenuServiceImpl.java
@@ -16,11 +16,27 @@
  */
 package com.vci.ubcs.system.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.starter.util.MybatisParameterUtil;
 import com.vci.ubcs.system.entity.RoleMenu;
 import com.vci.ubcs.system.mapper.RoleMenuMapper;
 import com.vci.ubcs.system.service.IRoleMenuService;
+import com.vci.ubcs.system.service.IRoleService;
+import com.vci.ubcs.system.user.entity.User;
+import com.vci.ubcs.system.user.feign.IUserClient;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鏈嶅姟瀹炵幇绫�
@@ -30,4 +46,41 @@
 @Service
 public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> implements IRoleMenuService {
 
+	@Resource
+	private RoleMenuMapper roleMenuMapper;
+
+	@Resource
+	private IUserClient userClient;
+
+	/**
+	 * 鏍规嵁鐢ㄦ埛id鏌ヨ锛岃鎺堟潈鐨勮彍鍗昳d
+	 * @param userId
+	 * @return
+	 */
+	@Override
+	public List<Long> getMenuIdByUserId(Long userId) {
+		// 鏍规嵁鐢ㄦ埛id鏌ヨ鑿滃崟id
+		R<User> userR = userClient.userInfoById((Func.isEmpty(userId) ? AuthUtil.getUserId():userId));
+		if (!userR.isSuccess() || Func.isEmpty(userR.getData())) {
+			throw new ServiceException("鐢ㄦ埛淇℃伅鏌ヨ澶辫触,鍘熷洜锛�"+userR.getMsg());
+		}
+
+		// 褰撴煡璇㈡潯浠秈n澶т簬涓�鍗冩潯鏃�
+		List<String> roleIdList = Func.toStrList(userR.getData().getRoleId());
+		//鏋勫缓鏌ヨ鑿滃崟id鐨勬煡璇㈡潯浠�
+		LambdaQueryWrapper<RoleMenu> roleMenuWrapper = Wrappers.<RoleMenu>query()
+			.lambda().select(RoleMenu::getMenuId);
+		if(roleIdList.size()>=1000){
+			MybatisParameterUtil.cutInParameter(roleMenuWrapper,RoleMenu::getRoleId,roleIdList);
+		}else {
+			roleMenuWrapper.in(RoleMenu::getRoleId,roleIdList);
+		}
+		List<RoleMenu> roleMenus = roleMenuMapper.selectList(roleMenuWrapper);
+		if(roleMenus.isEmpty()){
+			return new ArrayList<>();
+		}
+		return roleMenus.stream().map(RoleMenu::getMenuId).collect(Collectors.toList());
+	}
+
+
 }

--
Gitblit v1.9.3