package com.ots.project.monitor.online.service;
|
import com.ots.common.utils.DateUtils;
|
import com.ots.common.utils.StringUtils;
|
import com.ots.framework.shiro.session.OnlineSessionDAO;
|
import com.ots.project.monitor.online.domain.UserOnline;
|
import com.ots.project.monitor.online.mapper.UserOnlineMapper;
|
import org.apache.shiro.session.Session;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class UserOnlineServiceImpl implements IUserOnlineService {
|
@Autowired
|
private UserOnlineMapper userOnlineDao;
|
@Autowired
|
private OnlineSessionDAO onlineSessionDAO;
|
|
@Override
|
public UserOnline selectOnlineById(String sessionId) {
|
return userOnlineDao.selectOnlineById(sessionId);
|
}
|
|
@Override
|
public void deleteOnlineById(String sessionId) {
|
UserOnline userOnline = selectOnlineById(sessionId);
|
if (StringUtils.isNotNull(userOnline)) {
|
userOnlineDao.deleteOnlineById(sessionId);
|
}
|
}
|
|
@Override
|
public void batchDeleteOnline(List<String> sessions) {
|
for (String sessionId : sessions) {
|
UserOnline userOnline = selectOnlineById(sessionId);
|
if (StringUtils.isNotNull(userOnline)) {
|
userOnlineDao.deleteOnlineById(sessionId);
|
}
|
}
|
}
|
|
@Override
|
public void saveOnline(UserOnline online) {
|
userOnlineDao.saveOnline(online);
|
}
|
|
@Override
|
public List<UserOnline> selectUserOnlineList(UserOnline userOnline) {
|
return userOnlineDao.selectUserOnlineList(userOnline);
|
}
|
|
@Override
|
public void forceLogout(String sessionId) {
|
Session session = onlineSessionDAO.readSession(sessionId);
|
if (session == null) {
|
return;
|
}
|
session.setTimeout(1000);
|
userOnlineDao.deleteOnlineById(sessionId);
|
}
|
|
@Override
|
public List<UserOnline> selectOnlineByExpired(Date expiredDate) {
|
String lastAccessTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, expiredDate);
|
return userOnlineDao.selectOnlineByExpired(lastAccessTime);
|
}
|
}
|