This commit is contained in:
parent
379bae20ae
commit
6f4f2e2049
36
pom.xml
36
pom.xml
|
|
@ -18,7 +18,6 @@
|
||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
<shiro.version>1.6.0</shiro.version>
|
<shiro.version>1.6.0</shiro.version>
|
||||||
<thymeleaf.extras.shiro.version>2.0.0</thymeleaf.extras.shiro.version>
|
<thymeleaf.extras.shiro.version>2.0.0</thymeleaf.extras.shiro.version>
|
||||||
<mybatis.boot.version>1.3.2</mybatis.boot.version>
|
|
||||||
<druid.version>1.1.22</druid.version>
|
<druid.version>1.1.22</druid.version>
|
||||||
<bitwalker.version>1.19</bitwalker.version>
|
<bitwalker.version>1.19</bitwalker.version>
|
||||||
<kaptcha.version>2.3.2</kaptcha.version>
|
<kaptcha.version>2.3.2</kaptcha.version>
|
||||||
|
|
@ -30,6 +29,7 @@
|
||||||
<commons.fileupload.version>1.3.3</commons.fileupload.version>
|
<commons.fileupload.version>1.3.3</commons.fileupload.version>
|
||||||
<poi.version>3.17</poi.version>
|
<poi.version>3.17</poi.version>
|
||||||
<velocity.version>1.7</velocity.version>
|
<velocity.version>1.7</velocity.version>
|
||||||
|
<querydsl.version>4.2.1</querydsl.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<!-- 依赖声明 -->
|
<!-- 依赖声明 -->
|
||||||
|
|
@ -202,6 +202,12 @@
|
||||||
<version>${ruoyi.version}</version>
|
<version>${ruoyi.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.querydsl</groupId>
|
||||||
|
<artifactId>querydsl-jpa</artifactId>
|
||||||
|
<version>${querydsl.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
|
@ -215,13 +221,31 @@
|
||||||
</modules>
|
</modules>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.mysema.maven</groupId>
|
||||||
|
<artifactId>apt-maven-plugin</artifactId>
|
||||||
|
<version>1.1.3</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>process</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>target/generated-sources/java</outputDirectory>
|
||||||
|
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.querydsl</groupId>
|
||||||
|
<artifactId>querydsl-apt</artifactId>
|
||||||
|
<version>${querydsl.version}</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,17 @@
|
||||||
<artifactId>ruoyi-generator</artifactId>
|
<artifactId>ruoyi-generator</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.flywaydb</groupId>
|
||||||
|
<artifactId>flyway-core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-hibernate5 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
|
<artifactId>jackson-datatype-hibernate5</artifactId>
|
||||||
|
<version>2.10.1</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
||||||
|
|
@ -49,11 +49,8 @@ public class SysUserOnlineController extends BaseController
|
||||||
@RequiresPermissions("monitor:online:list")
|
@RequiresPermissions("monitor:online:list")
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public TableDataInfo list(SysUserOnline userOnline)
|
public TableDataInfo list(SysUserOnline userOnline) {
|
||||||
{
|
return getDataTable(userOnlineService.selectUserOnlineList(userOnline, getPageRequest()));
|
||||||
startPage();
|
|
||||||
List<SysUserOnline> list = userOnlineService.selectUserOnlineList(userOnline);
|
|
||||||
return getDataTable(list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequiresPermissions(value = { "monitor:online:batchForceLogout", "monitor:online:forceLogout" }, logical = Logical.OR)
|
@RequiresPermissions(value = { "monitor:online:batchForceLogout", "monitor:online:forceLogout" }, logical = Logical.OR)
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,23 @@
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
<artifactId>javax.servlet-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- spring.data.jpa -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.querydsl</groupId>
|
||||||
|
<artifactId>querydsl-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
@ -46,34 +46,6 @@ public class BaseController {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置请求分页数据
|
|
||||||
*/
|
|
||||||
protected void startPage()
|
|
||||||
{
|
|
||||||
PageDomain pageDomain = TableSupport.buildPageRequest();
|
|
||||||
Integer pageNum = pageDomain.getPageNum();
|
|
||||||
Integer pageSize = pageDomain.getPageSize();
|
|
||||||
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
|
|
||||||
{
|
|
||||||
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
|
|
||||||
PageHelper.startPage(pageNum, pageSize, orderBy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置请求排序数据
|
|
||||||
*/
|
|
||||||
protected void startOrderBy()
|
|
||||||
{
|
|
||||||
PageDomain pageDomain = TableSupport.buildPageRequest();
|
|
||||||
if (StringUtils.isNotEmpty(pageDomain.getOrderBy()))
|
|
||||||
{
|
|
||||||
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
|
|
||||||
PageHelper.orderBy(orderBy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取request
|
* 获取request
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
package com.ruoyi.framework.config;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.core.env.Environment;
|
|
||||||
import org.springframework.core.io.Resource;
|
|
||||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
||||||
import org.springframework.core.io.support.ResourcePatternResolver;
|
|
||||||
import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
|
|
||||||
import org.springframework.core.type.classreading.MetadataReader;
|
|
||||||
import org.springframework.core.type.classreading.MetadataReaderFactory;
|
|
||||||
import org.springframework.util.ClassUtils;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mybatis支持*匹配扫描包
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class MyBatisConfig {
|
|
||||||
@Autowired
|
|
||||||
private Environment env;
|
|
||||||
|
|
||||||
static final String DEFAULT_RESOURCE_PATTERN = "**/*.class";
|
|
||||||
|
|
||||||
public static String setTypeAliasesPackage(String typeAliasesPackage) {
|
|
||||||
ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver();
|
|
||||||
MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver);
|
|
||||||
List<String> allResult = new ArrayList<String>();
|
|
||||||
try {
|
|
||||||
for (String aliasesPackage : typeAliasesPackage.split(",")) {
|
|
||||||
List<String> result = new ArrayList<String>();
|
|
||||||
aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
|
|
||||||
+ ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN;
|
|
||||||
Resource[] resources = resolver.getResources(aliasesPackage);
|
|
||||||
if (resources != null && resources.length > 0) {
|
|
||||||
MetadataReader metadataReader = null;
|
|
||||||
for (Resource resource : resources) {
|
|
||||||
if (resource.isReadable()) {
|
|
||||||
metadataReader = metadataReaderFactory.getMetadataReader(resource);
|
|
||||||
try {
|
|
||||||
result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName());
|
|
||||||
} catch (ClassNotFoundException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (result.size() > 0) {
|
|
||||||
HashSet<String> hashResult = new HashSet<String>(result);
|
|
||||||
allResult.addAll(hashResult);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (allResult.size() > 0) {
|
|
||||||
typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0]));
|
|
||||||
} else {
|
|
||||||
throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包");
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return typeAliasesPackage;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.ruoyi.system.service;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.system.domain.SysUserOnline;
|
import com.ruoyi.system.domain.SysUserOnline;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线用户 服务层
|
* 在线用户 服务层
|
||||||
|
|
@ -40,7 +42,7 @@ public interface ISysUserOnlineService
|
||||||
*
|
*
|
||||||
* @param online 会话信息
|
* @param online 会话信息
|
||||||
*/
|
*/
|
||||||
public void saveOnline(SysUserOnline online);
|
public SysUserOnline saveOnline(SysUserOnline online);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询会话集合
|
* 查询会话集合
|
||||||
|
|
@ -48,7 +50,7 @@ public interface ISysUserOnlineService
|
||||||
* @param userOnline 分页参数
|
* @param userOnline 分页参数
|
||||||
* @return 会话集合
|
* @return 会话集合
|
||||||
*/
|
*/
|
||||||
public List<SysUserOnline> selectUserOnlineList(SysUserOnline userOnline);
|
public Page<SysUserOnline> selectUserOnlineList(SysUserOnline userOnline, Pageable pageable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 强退用户
|
* 强退用户
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,28 @@
|
||||||
package com.ruoyi.system.service.impl;
|
package com.ruoyi.system.service.impl;
|
||||||
|
import com.ruoyi.common.base.BaseService;
|
||||||
import java.io.Serializable;
|
import com.ruoyi.common.constant.ShiroConstants;
|
||||||
import java.util.Date;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import java.util.Deque;
|
import com.ruoyi.system.domain.SysUserOnline;
|
||||||
import java.util.List;
|
import com.ruoyi.system.repository.SysUserOnlineRepository;
|
||||||
|
import com.ruoyi.system.service.ISysUserOnlineService;
|
||||||
import org.apache.shiro.cache.Cache;
|
import org.apache.shiro.cache.Cache;
|
||||||
import org.apache.shiro.cache.ehcache.EhCacheManager;
|
import org.apache.shiro.cache.ehcache.EhCacheManager;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ruoyi.common.constant.ShiroConstants;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import javax.persistence.criteria.CriteriaBuilder;
|
||||||
import com.ruoyi.system.domain.SysUserOnline;
|
import javax.persistence.criteria.CriteriaQuery;
|
||||||
import com.ruoyi.system.mapper.SysUserOnlineMapper;
|
import javax.persistence.criteria.Predicate;
|
||||||
import com.ruoyi.system.service.ISysUserOnlineService;
|
import javax.persistence.criteria.Root;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Deque;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线用户 服务层处理
|
* 在线用户 服务层处理
|
||||||
|
|
@ -21,11 +30,10 @@ import com.ruoyi.system.service.ISysUserOnlineService;
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
public class SysUserOnlineServiceImpl extends BaseService implements ISysUserOnlineService {
|
||||||
{
|
|
||||||
@Autowired
|
|
||||||
private SysUserOnlineMapper userOnlineDao;
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysUserOnlineRepository sysUserOnlineRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private EhCacheManager ehCacheManager;
|
private EhCacheManager ehCacheManager;
|
||||||
|
|
||||||
|
|
@ -36,9 +44,8 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||||
* @return 在线用户信息
|
* @return 在线用户信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SysUserOnline selectOnlineById(String sessionId)
|
public SysUserOnline selectOnlineById(String sessionId) {
|
||||||
{
|
return sysUserOnlineRepository.findById(sessionId).orElse(null);
|
||||||
return userOnlineDao.selectOnlineById(sessionId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -47,14 +54,10 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||||
* @param sessionId 会话ID
|
* @param sessionId 会话ID
|
||||||
* @return 在线用户信息
|
* @return 在线用户信息
|
||||||
*/
|
*/
|
||||||
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public void deleteOnlineById(String sessionId)
|
public void deleteOnlineById(String sessionId) {
|
||||||
{
|
sysUserOnlineRepository.deleteById(sessionId);
|
||||||
SysUserOnline userOnline = selectOnlineById(sessionId);
|
|
||||||
if (StringUtils.isNotNull(userOnline))
|
|
||||||
{
|
|
||||||
userOnlineDao.deleteOnlineById(sessionId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -63,16 +66,11 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||||
* @param sessions 会话ID集合
|
* @param sessions 会话ID集合
|
||||||
* @return 在线用户信息
|
* @return 在线用户信息
|
||||||
*/
|
*/
|
||||||
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public void batchDeleteOnline(List<String> sessions)
|
public void batchDeleteOnline(List<String> sessions) {
|
||||||
{
|
for (String sessionId : sessions) {
|
||||||
for (String sessionId : sessions)
|
deleteOnlineById(sessionId);
|
||||||
{
|
|
||||||
SysUserOnline userOnline = selectOnlineById(sessionId);
|
|
||||||
if (StringUtils.isNotNull(userOnline))
|
|
||||||
{
|
|
||||||
userOnlineDao.deleteOnlineById(sessionId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -82,9 +80,8 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||||
* @param online 会话信息
|
* @param online 会话信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void saveOnline(SysUserOnline online)
|
public SysUserOnline saveOnline(SysUserOnline online) {
|
||||||
{
|
return sysUserOnlineRepository.save(online);
|
||||||
userOnlineDao.saveOnline(online);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -93,9 +90,24 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||||
* @param userOnline 在线用户
|
* @param userOnline 在线用户
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SysUserOnline> selectUserOnlineList(SysUserOnline userOnline)
|
public Page<SysUserOnline> selectUserOnlineList(SysUserOnline userOnline, Pageable pageable) {
|
||||||
{
|
return sysUserOnlineRepository.findAll(getSpecification(userOnline), pageable);
|
||||||
return userOnlineDao.selectUserOnlineList(userOnline);
|
}
|
||||||
|
|
||||||
|
private Specification<SysUserOnline> getSpecification(SysUserOnline userOnline){
|
||||||
|
return new Specification<SysUserOnline>() {
|
||||||
|
@Override
|
||||||
|
public Predicate toPredicate(Root<SysUserOnline> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
|
||||||
|
List<Predicate> predicates = new ArrayList<>();
|
||||||
|
if(StringUtils.isNotEmpty(userOnline.getIpaddr())){
|
||||||
|
predicates.add(criteriaBuilder.like(root.get("ipaddr").as(String.class), "%" + userOnline.getIpaddr() + "%"));
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotEmpty(userOnline.getLoginName())){
|
||||||
|
predicates.add(criteriaBuilder.like(root.get("loginName").as(String.class), "%" + userOnline.getLoginName() + "%"));
|
||||||
|
}
|
||||||
|
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -103,21 +115,14 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||||
*
|
*
|
||||||
* @param sessionId 会话ID
|
* @param sessionId 会话ID
|
||||||
*/
|
*/
|
||||||
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public void forceLogout(String sessionId)
|
public void forceLogout(String sessionId) {
|
||||||
{
|
deleteOnlineById(sessionId);
|
||||||
userOnlineDao.deleteOnlineById(sessionId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 清理用户缓存
|
|
||||||
*
|
|
||||||
* @param loginName 登录名称
|
|
||||||
* @param sessionId 会话ID
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void removeUserCache(String loginName, String sessionId)
|
public void removeUserCache(String loginName, String sessionId) {
|
||||||
{
|
|
||||||
Cache<String, Deque<Serializable>> cache = ehCacheManager.getCache(ShiroConstants.SYS_USERCACHE);
|
Cache<String, Deque<Serializable>> cache = ehCacheManager.getCache(ShiroConstants.SYS_USERCACHE);
|
||||||
Deque<Serializable> deque = cache.get(loginName);
|
Deque<Serializable> deque = cache.get(loginName);
|
||||||
if (StringUtils.isEmpty(deque) || deque.size() == 0)
|
if (StringUtils.isEmpty(deque) || deque.size() == 0)
|
||||||
|
|
@ -133,9 +138,7 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||||
* @param expiredDate 失效日期
|
* @param expiredDate 失效日期
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SysUserOnline> selectOnlineByExpired(Date expiredDate)
|
public List<SysUserOnline> selectOnlineByExpired(Date expiredDate) {
|
||||||
{
|
return sysUserOnlineRepository.findByLastAccessTimeLessThanEqual(expiredDate);
|
||||||
String lastAccessTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, expiredDate);
|
|
||||||
return userOnlineDao.selectOnlineByExpired(lastAccessTime);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue