This commit is contained in:
77
2024-05-19 00:45:31 +08:00
parent 32933c2840
commit 92134f6ed2
26 changed files with 67 additions and 45 deletions

View File

@@ -157,7 +157,7 @@ public class SysLoginController {
return R.ok(tenantList);
}else {
SysTenantBo sysTenantBo = new SysTenantBo();
sysTenantBo.setTenantId(TenantHelper.getTenantId());
sysTenantBo.setTenantId(LoginHelper.getTenantId());
List<SysTenantVo> tenantList = tenantService.queryList(sysTenantBo);
return R.ok(tenantList);
}

View File

@@ -123,7 +123,7 @@ public class SysUserController extends BaseController {
SysPost post = new SysPost();
post.setStatus(UserConstants.POST_NORMAL);
List<SysRole> roles = roleService.selectRoleList(role);
ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
ajax.put("roles", LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
ajax.put("posts", postService.selectPostList(post));
if (ObjectUtil.isNotNull(userId)) {
SysUser sysUser = userService.selectUserById(userId);
@@ -225,7 +225,7 @@ public class SysUserController extends BaseController {
List<SysRole> roles = roleService.selectRolesByUserId(userId);
Map<String, Object> ajax = new HashMap<>();
ajax.put("user", user);
ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
ajax.put("roles", LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
return R.ok(ajax);
}

View File

@@ -120,6 +120,6 @@ public class SysRole extends TenantEntity {
}
public boolean isAdmin() {
return UserConstants.ADMIN_ID.equals(this.roleId);
return UserConstants.SUPER_ADMIN_ID.equals(this.roleId);
}
}

View File

@@ -164,7 +164,7 @@ public class SysUser extends TenantEntity {
}
public boolean isAdmin() {
return UserConstants.ADMIN_ID.equals(this.userId);
return UserConstants.SUPER_ADMIN_ID.equals(this.userId);
}
}

View File

@@ -1,8 +1,10 @@
package com.ruoyi.system.service;
import com.ruoyi.component.log.event.LogininforEvent;
import com.ruoyi.component.mybatis.core.page.PageQuery;
import com.ruoyi.component.mybatis.core.page.TableDataInfo;
import com.ruoyi.system.domain.SysLogininfor;
import org.springframework.context.event.EventListener;
import java.util.List;
@@ -14,6 +16,9 @@ import java.util.List;
public interface ISysLogininforService {
@EventListener
void recordLogininfor(LogininforEvent logininforEvent);
TableDataInfo<SysLogininfor> selectPageLogininforList(SysLogininfor logininfor, PageQuery pageQuery);
/**

View File

@@ -10,6 +10,7 @@ import com.ruoyi.component.core.constant.CacheConstants;
import com.ruoyi.component.core.constant.Constants;
import com.ruoyi.component.core.constant.GlobalConstants;
import com.ruoyi.component.core.domain.dto.RoleDTO;
import com.ruoyi.component.core.executor.ExecutorConstant;
import com.ruoyi.component.log.event.LogininforEvent;
import com.ruoyi.component.redis.util.RedisUtils;
import com.ruoyi.component.tenant.core.TenantEntity;
@@ -33,6 +34,7 @@ import com.ruoyi.component.core.util.spring.SpringUtils;
import com.ruoyi.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -157,6 +159,9 @@ public class SysLoginService {
}
}
@Autowired
private ISysLogininforService sysLogininforService;
/**
* 记录登录信息
*
@@ -171,7 +176,9 @@ public class SysLoginService {
logininforEvent.setStatus(status);
logininforEvent.setMessage(message);
logininforEvent.setRequest(ServletUtils.getRequest());
SpringUtils.context().publishEvent(logininforEvent);
ExecutorConstant.COMMON_EXECUTOR.execute(() -> {
sysLogininforService.recordLogininfor(logininforEvent);
});
}
/**

View File

@@ -4,6 +4,7 @@ import cn.dev33.satoken.secure.BCrypt;
import com.ruoyi.component.core.constant.CacheConstants;
import com.ruoyi.component.core.constant.Constants;
import com.ruoyi.component.core.constant.GlobalConstants;
import com.ruoyi.component.core.executor.ExecutorConstant;
import com.ruoyi.component.log.event.LogininforEvent;
import com.ruoyi.component.redis.util.RedisUtils;
import com.ruoyi.system.domain.SysUser;
@@ -30,6 +31,7 @@ public class SysRegisterService {
private final ISysUserService userService;
private final ISysConfigService configService;
private final ISysLogininforService sysLogininforService;
/**
* 注册
@@ -96,7 +98,9 @@ public class SysRegisterService {
logininforEvent.setStatus(status);
logininforEvent.setMessage(message);
logininforEvent.setRequest(ServletUtils.getRequest());
SpringUtils.context().publishEvent(logininforEvent);
ExecutorConstant.COMMON_EXECUTOR.execute(() -> {
sysLogininforService.recordLogininfor(logininforEvent);
});
}
}

View File

@@ -204,7 +204,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
*/
@Override
public void checkDeptDataScope(Long deptId) {
if (!LoginHelper.isAdmin()) {
if (!LoginHelper.isSuperAdmin()) {
SysDept dept = new SysDept();
dept.setDeptId(deptId);
List<SysDept> depts = this.selectDeptList(dept);

View File

@@ -17,7 +17,6 @@ import com.ruoyi.system.service.ISysLogininforService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
@@ -43,8 +42,8 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
*
* @param logininforEvent 登录事件
*/
@Async
@EventListener
@Override
public void recordLogininfor(LogininforEvent logininforEvent) {
HttpServletRequest request = logininforEvent.getRequest();
final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));

View File

@@ -64,7 +64,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
List<SysMenu> menuList = null;
// 管理员显示所有菜单信息
if (LoginHelper.isAdmin(userId)) {
if (LoginHelper.isSuperAdmin(userId)) {
menuList = baseMapper.selectList(new LambdaQueryWrapper<SysMenu>()
.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName())
.eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible())
@@ -129,7 +129,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
@Override
public List<SysMenu> selectMenuTreeByUserId(Long userId) {
List<SysMenu> menus = null;
if (LoginHelper.isAdmin(userId)) {
if (LoginHelper.isSuperAdmin(userId)) {
menus = baseMapper.selectMenuTreeAll();
} else {
menus = baseMapper.selectMenuTreeByUserId(userId);

View File

@@ -214,7 +214,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/
@Override
public void checkRoleDataScope(Long roleId) {
if (!LoginHelper.isAdmin()) {
if (!LoginHelper.isSuperAdmin()) {
SysRole role = new SysRole();
role.setRoleId(roleId);
List<SysRole> roles = this.selectRoleList(role);

View File

@@ -27,7 +27,7 @@ public class SysSensitiveServiceImpl implements SensitiveService {
*/
@Override
public boolean isSensitive() {
if(LoginHelper.isAdmin()){
if(LoginHelper.isSuperAdmin()){
return false;
}
return SENSITIVE;

View File

@@ -251,7 +251,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
*/
@Override
public void checkUserDataScope(Long userId) {
if (!LoginHelper.isAdmin()) {
if (!LoginHelper.isSuperAdmin()) {
SysUser user = new SysUser();
user.setUserId(userId);
List<SysUser> users = this.selectUserList(user);