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 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 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 selectOnlineByExpired(Date expiredDate) { String lastAccessTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, expiredDate); return userOnlineDao.selectOnlineByExpired(lastAccessTime); } }