init
This commit is contained in:
@@ -137,6 +137,6 @@ public interface UserConstants {
|
||||
/**
|
||||
* 管理员ID
|
||||
*/
|
||||
Long ADMIN_ID = 1L;
|
||||
Long SUPER_ADMIN_ID = 1L;
|
||||
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public class PlusDataPermissionHandler {
|
||||
DataPermissionHelper.setVariable("user", currentUser);
|
||||
}
|
||||
// 如果是超级管理员,则不过滤数据
|
||||
if (LoginHelper.isAdmin()) {
|
||||
if (LoginHelper.isSuperAdmin()) {
|
||||
return where;
|
||||
}
|
||||
String dataFilterSql = buildDataFilter(dataColumns, isSelect);
|
||||
|
||||
@@ -185,12 +185,13 @@ public class LoginHelper {
|
||||
* @param userId 用户ID
|
||||
* @return 结果
|
||||
*/
|
||||
public static boolean isAdmin(Long userId) {
|
||||
return UserConstants.ADMIN_ID.equals(userId);
|
||||
public static boolean isSuperAdmin(Long userId) {
|
||||
return UserConstants.SUPER_ADMIN_ID.equals(userId);
|
||||
}
|
||||
|
||||
public static boolean isAdmin() {
|
||||
return isAdmin(getUserId());
|
||||
|
||||
public static boolean isSuperAdmin() {
|
||||
return isSuperAdmin(getUserId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -47,34 +47,26 @@ public class TenantFilter implements Filter {
|
||||
}
|
||||
String tenantHeader = request.getHeader(TENANT_ID_HEADER);
|
||||
boolean login = TenantHelper.isLogin();
|
||||
if(login){
|
||||
if(login){ // 已经登录
|
||||
String tenantId = LoginHelper.getTenantId();
|
||||
if("/getInfo".equals(requestURI)){ // 特殊放权接口
|
||||
TenantHelper.setTenantId(tenantId);
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
return;
|
||||
}
|
||||
Long userId = LoginHelper.getUserId();
|
||||
if(TenantConstants.SUPER_ADMIN_ID.equals(userId)){
|
||||
if(TenantConstants.SUPER_ADMIN_ID.equals(userId)){ // 超管前端给什么用什么
|
||||
TenantHelper.setTenantId(tenantHeader);
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(tenantHeader)){
|
||||
if(login){
|
||||
String tenantId = LoginHelper.getTenantId();
|
||||
if(tenantId == null || !tenantId.equals(tenantHeader)){
|
||||
ServletUtils.renderString(response, JSONUtil.toJsonStr(R.fail("平台错误")));
|
||||
return;
|
||||
}
|
||||
TenantHelper.setTenantId(tenantId);
|
||||
}else{
|
||||
TenantHelper.setTenantId(tenantHeader);
|
||||
}
|
||||
} else {
|
||||
if(login){
|
||||
String tenantId = LoginHelper.getTenantId();
|
||||
if(tenantId == null){
|
||||
ServletUtils.renderString(response, JSONUtil.toJsonStr(R.fail("平台错误")));
|
||||
return;
|
||||
}
|
||||
TenantHelper.setTenantId(tenantId);
|
||||
if(tenantId == null || !tenantId.equals(tenantHeader)){ // 非超管 如果当前用户和前端给的不支持 返回异常
|
||||
ServletUtils.renderString(response, JSONUtil.toJsonStr(R.fail("平台错误")));
|
||||
return;
|
||||
}
|
||||
TenantHelper.setTenantId(tenantId);
|
||||
}else{
|
||||
TenantHelper.setTenantId(tenantHeader);
|
||||
}
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
} finally {
|
||||
|
||||
@@ -49,6 +49,8 @@ public class AgreementSetting implements Serializable {
|
||||
|
||||
private String contractTemplate;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
||||
@@ -207,4 +207,6 @@ public class Borrow implements Serializable {
|
||||
@Schema(description = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
}
|
||||
|
||||
@@ -17,5 +17,5 @@ public class BorrowLog {
|
||||
private Long id;
|
||||
private Double withdrawAccount;
|
||||
private Long customerId;
|
||||
|
||||
private String tenantId;
|
||||
}
|
||||
|
||||
@@ -64,4 +64,6 @@ public class BorrowStatus implements Serializable {
|
||||
@Schema(description = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
}
|
||||
|
||||
@@ -95,6 +95,8 @@ public class Customer implements Serializable {
|
||||
@Schema(description = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
@@ -154,6 +154,8 @@ public class CustomerInfo implements Serializable {
|
||||
@Schema(description = "签名")
|
||||
private String signature;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
private Boolean allowSignature = true;
|
||||
|
||||
@TableField(exist = false)
|
||||
|
||||
@@ -43,6 +43,7 @@ public class HomeSetting implements Serializable {
|
||||
private Boolean openWithdrawCode;
|
||||
private String defaultCoinUnit;
|
||||
private String randomPhoneVersion;
|
||||
private String tenantId;
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
||||
@@ -56,6 +56,8 @@ public class LoansSetting implements Serializable {
|
||||
*/
|
||||
private String serviceRate;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.dk.kit;
|
||||
|
||||
import cn.dev33.satoken.secure.BCrypt;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.ruoyi.component.tenant.helper.TenantHelper;
|
||||
import com.ruoyi.dk.domain.Customer;
|
||||
import com.ruoyi.dk.executor.ExecutorConstant;
|
||||
import com.ruoyi.dk.service.CustomerService;
|
||||
@@ -67,7 +68,7 @@ public class DkLoginKit {
|
||||
loginUser.setRoleId(null);
|
||||
loginUser.setUserId(user.getId());
|
||||
loginUser.setUserType(UserType.APP_USER.getUserType());
|
||||
// loginUser.setTenantId(user);
|
||||
loginUser.setTenantId(user.getTenantId());
|
||||
LoginHelper.login(loginUser);
|
||||
sysLoginService.recordLogininfor(loginUser.getUsername(), UserType.APP_USER.getUserType(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||
return StpUtil.getTokenValue();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -27,7 +27,7 @@ public class SysSensitiveServiceImpl implements SensitiveService {
|
||||
*/
|
||||
@Override
|
||||
public boolean isSensitive() {
|
||||
if(LoginHelper.isAdmin()){
|
||||
if(LoginHelper.isSuperAdmin()){
|
||||
return false;
|
||||
}
|
||||
return SENSITIVE;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user