From bfd0ef2ad4c32b6a19e7dc22a9d115ddf8d8f04c Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 20 十月 2025 09:45:38 +0800
Subject: [PATCH] yys 修改-首页-应收应付统计逻辑
---
src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java | 121 ++++++++++++++++++++++++++++++++++++++--
1 files changed, 115 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java
index 71f3c66..1fe2055 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java
@@ -9,13 +9,16 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.common.constant.UserConstants;
-import com.ruoyi.common.exception.CustomException;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
import com.ruoyi.project.system.domain.SysRole;
import com.ruoyi.project.system.domain.SysRoleDept;
import com.ruoyi.project.system.domain.SysRoleMenu;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.domain.SysUserRole;
import com.ruoyi.project.system.mapper.SysRoleDeptMapper;
import com.ruoyi.project.system.mapper.SysRoleMapper;
import com.ruoyi.project.system.mapper.SysRoleMenuMapper;
@@ -53,6 +56,31 @@
public List<SysRole> selectRoleList(SysRole role)
{
return roleMapper.selectRoleList(role);
+ }
+
+ /**
+ * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊
+ *
+ * @param userId 鐢ㄦ埛ID
+ * @return 瑙掕壊鍒楄〃
+ */
+ @Override
+ public List<SysRole> selectRolesByUserId(Long userId)
+ {
+ List<SysRole> userRoles = roleMapper.selectRolePermissionByUserId(userId);
+ List<SysRole> roles = selectRoleAll();
+ for (SysRole role : roles)
+ {
+ for (SysRole userRole : userRoles)
+ {
+ if (role.getRoleId().longValue() == userRole.getRoleId().longValue())
+ {
+ role.setFlag(true);
+ break;
+ }
+ }
+ }
+ return roles;
}
/**
@@ -94,7 +122,7 @@
* @return 閫変腑瑙掕壊ID鍒楄〃
*/
@Override
- public List<Integer> selectRoleListByUserId(Long userId)
+ public List<Long> selectRoleListByUserId(Long userId)
{
return roleMapper.selectRoleListByUserId(userId);
}
@@ -118,7 +146,7 @@
* @return 缁撴灉
*/
@Override
- public String checkRoleNameUnique(SysRole role)
+ public boolean checkRoleNameUnique(SysRole role)
{
Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId();
SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName());
@@ -136,7 +164,7 @@
* @return 缁撴灉
*/
@Override
- public String checkRoleKeyUnique(SysRole role)
+ public boolean checkRoleKeyUnique(SysRole role)
{
Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId();
SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey());
@@ -157,7 +185,30 @@
{
if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin())
{
- throw new CustomException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊");
+ throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊");
+ }
+ }
+
+ /**
+ * 鏍¢獙瑙掕壊鏄惁鏈夋暟鎹潈闄�
+ *
+ * @param roleIds 瑙掕壊id
+ */
+ @Override
+ public void checkRoleDataScope(Long... roleIds)
+ {
+ if (!SysUser.isAdmin(SecurityUtils.getUserId()))
+ {
+ for (Long roleId : roleIds)
+ {
+ SysRole role = new SysRole();
+ role.setRoleId(roleId);
+ List<SysRole> roles = SpringUtils.getAopProxy(this).selectRoleList(role);
+ if (StringUtils.isEmpty(roles))
+ {
+ throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鏁版嵁锛�");
+ }
+ }
}
}
@@ -290,8 +341,13 @@
* @return 缁撴灉
*/
@Override
+ @Transactional
public int deleteRoleById(Long roleId)
{
+ // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱�
+ roleMenuMapper.deleteRoleMenuByRoleId(roleId);
+ // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱�
+ roleDeptMapper.deleteRoleDeptByRoleId(roleId);
return roleMapper.deleteRoleById(roleId);
}
@@ -302,17 +358,70 @@
* @return 缁撴灉
*/
@Override
+ @Transactional
public int deleteRoleByIds(Long[] roleIds)
{
for (Long roleId : roleIds)
{
checkRoleAllowed(new SysRole(roleId));
+ checkRoleDataScope(roleId);
SysRole role = selectRoleById(roleId);
if (countUserRoleByRoleId(roleId) > 0)
{
- throw new CustomException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", role.getRoleName()));
+ throw new ServiceException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", role.getRoleName()));
}
}
+ // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱�
+ roleMenuMapper.deleteRoleMenu(roleIds);
+ // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱�
+ roleDeptMapper.deleteRoleDept(roleIds);
return roleMapper.deleteRoleByIds(roleIds);
}
+
+ /**
+ * 鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊
+ *
+ * @param userRole 鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭�
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteAuthUser(SysUserRole userRole)
+ {
+ return userRoleMapper.deleteUserRoleInfo(userRole);
+ }
+
+ /**
+ * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊
+ *
+ * @param roleId 瑙掕壊ID
+ * @param userIds 闇�瑕佸彇娑堟巿鏉冪殑鐢ㄦ埛鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int deleteAuthUsers(Long roleId, Long[] userIds)
+ {
+ return userRoleMapper.deleteUserRoleInfos(roleId, userIds);
+ }
+
+ /**
+ * 鎵归噺閫夋嫨鎺堟潈鐢ㄦ埛瑙掕壊
+ *
+ * @param roleId 瑙掕壊ID
+ * @param userIds 闇�瑕佹巿鏉冪殑鐢ㄦ埛鏁版嵁ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int insertAuthUsers(Long roleId, Long[] userIds)
+ {
+ // 鏂板鐢ㄦ埛涓庤鑹茬鐞�
+ List<SysUserRole> list = new ArrayList<SysUserRole>();
+ for (Long userId : userIds)
+ {
+ SysUserRole ur = new SysUserRole();
+ ur.setUserId(userId);
+ ur.setRoleId(roleId);
+ list.add(ur);
+ }
+ return userRoleMapper.batchUserRole(list);
+ }
}
--
Gitblit v1.9.3