forked from dyf/fys-Multi-tenant
修改用户状态-强制下线
This commit is contained in:
@ -5,6 +5,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.fuyuanshen.common.core.domain.model.LoginUser;
|
import com.fuyuanshen.common.core.domain.model.LoginUser;
|
||||||
|
import com.fuyuanshen.common.core.enums.UserType;
|
||||||
import com.fuyuanshen.common.core.utils.StringUtils;
|
import com.fuyuanshen.common.core.utils.StringUtils;
|
||||||
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
|
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
|
||||||
import com.fuyuanshen.common.satoken.utils.LoginHelper;
|
import com.fuyuanshen.common.satoken.utils.LoginHelper;
|
||||||
@ -95,7 +96,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
|
|||||||
customer.setUserLevel((byte) (loginUser.getUserLevel() + 1));
|
customer.setUserLevel((byte) (loginUser.getUserLevel() + 1));
|
||||||
customer.setPid(loginUser.getUserId());
|
customer.setPid(loginUser.getUserId());
|
||||||
customer.setStatus("0");
|
customer.setStatus("0");
|
||||||
|
customer.setUserType(UserType.SYS_USER.getUserType());
|
||||||
save(customer);
|
save(customer);
|
||||||
|
|
||||||
// 新增用户与角色管理
|
// 新增用户与角色管理
|
||||||
@ -117,6 +118,9 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateCustomer(Customer customer) throws Exception {
|
public void updateCustomer(Customer customer) throws Exception {
|
||||||
|
|
||||||
|
// 获取当前会话账号id, 如果未登录,则抛出异常:`NotLoginException`
|
||||||
|
Object loginId = StpUtil.getLoginId();
|
||||||
|
|
||||||
UserQueryCriteria userQueryCriteria = new UserQueryCriteria();
|
UserQueryCriteria userQueryCriteria = new UserQueryCriteria();
|
||||||
if (StringUtils.isNotEmpty(customer.getUserName())) {
|
if (StringUtils.isNotEmpty(customer.getUserName())) {
|
||||||
userQueryCriteria.setCustomerName(customer.getUserName());
|
userQueryCriteria.setCustomerName(customer.getUserName());
|
||||||
@ -130,17 +134,19 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
|
|||||||
customer.setStatus("0");
|
customer.setStatus("0");
|
||||||
} else {
|
} else {
|
||||||
// 强制下线
|
// 强制下线
|
||||||
// StpUtil.logout(customer.getCustomerId());
|
// String tokenId = customer.getUserType() + ":" + customer.getCustomerId();
|
||||||
|
String tokenId = UserType.SYS_USER.getUserType() + ":" + customer.getCustomerId();
|
||||||
|
StpUtil.logout(tokenId);
|
||||||
// StpUtil.kickout(customer.getCustomerId());
|
// StpUtil.kickout(customer.getCustomerId());
|
||||||
customer.setStatus("1");
|
customer.setStatus("1");
|
||||||
// 检查目标用户是否有有效的登录状态
|
// 检查目标用户是否有有效的登录状态
|
||||||
if (StpUtil.isLogin(customer.getCustomerId())) {
|
// if (StpUtil.isLogin(customer.getCustomerId())) {
|
||||||
// 用户已登录,可以执行踢出操作
|
// // 用户已登录,可以执行踢出操作
|
||||||
StpUtil.kickout(customer.getCustomerId());
|
// StpUtil.kickout(customer.getCustomerId());
|
||||||
} else {
|
// } else {
|
||||||
// 用户未登录,无法踢出
|
// // 用户未登录,无法踢出
|
||||||
System.out.println("目标用户未登录,无法执行踢出操作");
|
// System.out.println("目标用户未登录,无法执行踢出操作");
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
saveOrUpdate(customer);
|
saveOrUpdate(customer);
|
||||||
}
|
}
|
||||||
|
@ -6,17 +6,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.fuyuanshen.common.core.domain.PageResult;
|
|
||||||
import com.fuyuanshen.common.core.domain.model.LoginUser;
|
import com.fuyuanshen.common.core.domain.model.LoginUser;
|
||||||
import com.fuyuanshen.common.core.utils.PageUtil;
|
|
||||||
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
|
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo;
|
||||||
import com.fuyuanshen.common.satoken.utils.LoginHelper;
|
import com.fuyuanshen.common.satoken.utils.LoginHelper;
|
||||||
import com.fuyuanshen.equipment.domain.Device;
|
import com.fuyuanshen.equipment.domain.Device;
|
||||||
import com.fuyuanshen.equipment.domain.DeviceAssignments;
|
|
||||||
import com.fuyuanshen.equipment.domain.DeviceType;
|
import com.fuyuanshen.equipment.domain.DeviceType;
|
||||||
import com.fuyuanshen.equipment.domain.DeviceTypeGrants;
|
import com.fuyuanshen.equipment.domain.DeviceTypeGrants;
|
||||||
import com.fuyuanshen.equipment.domain.form.DeviceTypeForm;
|
import com.fuyuanshen.equipment.domain.form.DeviceTypeForm;
|
||||||
import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria;
|
|
||||||
import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria;
|
import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria;
|
||||||
import com.fuyuanshen.equipment.mapper.DeviceAssignmentsMapper;
|
import com.fuyuanshen.equipment.mapper.DeviceAssignmentsMapper;
|
||||||
import com.fuyuanshen.equipment.mapper.DeviceMapper;
|
import com.fuyuanshen.equipment.mapper.DeviceMapper;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.fuyuanshen.system.service.impl;
|
package com.fuyuanshen.system.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.fuyuanshen.common.core.enums.UserStatus;
|
||||||
|
import com.fuyuanshen.common.core.enums.UserType;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.fuyuanshen.common.core.constant.CacheNames;
|
import com.fuyuanshen.common.core.constant.CacheNames;
|
||||||
@ -359,6 +362,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
insertUserRole(userId, roleIds, true);
|
insertUserRole(userId, roleIds, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改用户状态
|
* 修改用户状态
|
||||||
*
|
*
|
||||||
@ -368,12 +372,19 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int updateUserStatus(Long userId, String status) {
|
public int updateUserStatus(Long userId, String status) {
|
||||||
|
if (UserStatus.DISABLE.getCode().equals(status)) {
|
||||||
|
// 强制下线
|
||||||
|
String tokenId = UserType.SYS_USER.getUserType() + ":" + userId;
|
||||||
|
StpUtil.logout(tokenId);
|
||||||
|
}
|
||||||
|
|
||||||
return baseMapper.update(null,
|
return baseMapper.update(null,
|
||||||
new LambdaUpdateWrapper<SysUser>()
|
new LambdaUpdateWrapper<SysUser>()
|
||||||
.set(SysUser::getStatus, status)
|
.set(SysUser::getStatus, status)
|
||||||
.eq(SysUser::getUserId, userId));
|
.eq(SysUser::getUserId, userId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改用户基本信息
|
* 修改用户基本信息
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user