feat:修改档案归档信息

dev
wangxy 3 weeks ago
parent c6d7ab6d8f
commit 2317788ec1

@ -1,131 +1,131 @@
/* */ package com.archive.framework.shiro.session
package com.archive.framework.shiro.session
;
/* */
/* */ import com.archive.framework.manager.AsyncManager;
/* */ import com.archive.framework.manager.factory.AsyncFactory;
/* */ import com.archive.framework.shiro.session.OnlineSessionFactory;
/* */ import com.archive.project.monitor.online.domain.OnlineSession;
/* */ import com.archive.project.monitor.online.domain.UserOnline;
/* */ import com.archive.project.monitor.online.service.IUserOnlineService;
/* */ import java.io.Serializable;
/* */ import java.util.Date;
/* */ import org.apache.shiro.session.Session;
/* */ import org.apache.shiro.session.UnknownSessionException;
/* */ import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO;
/* */ import org.springframework.beans.factory.annotation.Autowired;
/* */ import org.springframework.beans.factory.annotation.Value;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ public class OnlineSessionDAO
/* */ extends EnterpriseCacheSessionDAO
/* */ {
/* */ @Value("${shiro.session.dbSyncPeriod}")
/* */ private int dbSyncPeriod;
/* 32 */ private static final String LAST_SYNC_DB_TIMESTAMP = com.archive.framework.shiro.session.OnlineSessionDAO.class.getName() + "LAST_SYNC_DB_TIMESTAMP";
/* */
/* */
/* */
/* */
/* */ @Autowired
/* */ private IUserOnlineService onlineService;
/* */
/* */
/* */
/* */ @Autowired
/* */ private OnlineSessionFactory onlineSessionFactory;
/* */
/* */
/* */
/* */
/* */ public OnlineSessionDAO() {}
/* */
/* */
/* */
/* */
/* */ public OnlineSessionDAO(long expireTime) {}
/* */
/* */
/* */
/* */
/* */ protected Session doReadSession(Serializable sessionId) {
/* 59 */ UserOnline userOnline = this.onlineService.selectOnlineById(String.valueOf(sessionId));
/* 60 */ if (userOnline == null)
/* */ {
/* 62 */ return null;
/* */ }
/* 64 */ return this.onlineSessionFactory.createSession(userOnline);
/* */ }
/* */
/* */
/* */
/* */ public void update(Session session) throws UnknownSessionException {
/* 70 */ super.update(session);
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */ public void syncToDb(OnlineSession onlineSession) {
/* 78 */ Date lastSyncTimestamp = (Date)onlineSession.getAttribute(LAST_SYNC_DB_TIMESTAMP);
/* 79 */ if (lastSyncTimestamp != null) {
/* */
/* 81 */ boolean needSync = true;
/* 82 */ long deltaTime = onlineSession.getLastAccessTime().getTime() - lastSyncTimestamp.getTime();
/* 83 */ if (deltaTime < (this.dbSyncPeriod * 60 * 1000))
/* */ {
/* */
/* 86 */ needSync = false;
/* */ }
/* */
/* 89 */ boolean isGuest = (onlineSession.getUserId() == null || onlineSession.getUserId().longValue() == 0L);
/* */
/* */
/* 92 */ if (!isGuest && onlineSession.isAttributeChanged())
/* */ {
/* 94 */ needSync = true;
/* */ }
/* */
/* 97 */ if (!needSync) {
/* */ return;
/* */ }
/* */ }
/* */
/* */
/* 103 */ onlineSession.setAttribute(LAST_SYNC_DB_TIMESTAMP, onlineSession.getLastAccessTime());
/* */
/* 105 */ if (onlineSession.isAttributeChanged())
/* */ {
/* 107 */ onlineSession.resetAttributeChanged();
/* */ }
/* 109 */ AsyncManager.me().execute(AsyncFactory.syncSessionToDb(onlineSession));
/* */ }
/* */
/* */
/* */
/* */
/* */
/* */
/* */ protected void doDelete(Session session) {
/* 118 */ OnlineSession onlineSession = (OnlineSession)session;
/* 119 */ if (null == onlineSession) {
/* */ return;
/* */ }
/* */
/* 123 */ onlineSession.setStatus(OnlineSession.OnlineStatus.off_line);
/* 124 */ this.onlineService.deleteOnlineById(String.valueOf(onlineSession.getId()));
/* */ }
/* */ }
import com.archive.framework.manager.AsyncManager;
import com.archive.framework.manager.factory.AsyncFactory;
import com.archive.framework.shiro.session.OnlineSessionFactory;
import com.archive.project.monitor.online.domain.OnlineSession;
import com.archive.project.monitor.online.domain.UserOnline;
import com.archive.project.monitor.online.service.IUserOnlineService;f
import java.io.Serializable;
import java.util.Date;
import org.apache.shiro.session.Session;
import org.apache.shiro.session.UnknownSessionException;
import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
public class OnlineSessionDAO
extends EnterpriseCacheSessionDAO
{
@Value("${shiro.session.dbSyncPeriod}")
private int dbSyncPeriod;
private static final String LAST_SYNC_DB_TIMESTAMP = com.archive.framework.shiro.session.OnlineSessionDAO.class.getName() + "LAST_SYNC_DB_TIMESTAMP";
@Autowired
private IUserOnlineService onlineService;
@Autowired
private OnlineSessionFactory onlineSessionFactory;
public OnlineSessionDAO() {}
public OnlineSessionDAO(long expireTime) {}
protected Session doReadSession(Serializable sessionId) {
UserOnline userOnline = this.onlineService.selectOnlineById(String.valueOf(sessionId));
if (userOnline == null)
{
return null;
}
return this.onlineSessionFactory.createSession(userOnline);
}
public void update(Session session) throws UnknownSessionException {
super.update(session);
}
public void syncToDb(OnlineSession onlineSession) {
Date lastSyncTimestamp = (Date)onlineSession.getAttribute(LAST_SYNC_DB_TIMESTAMP);
if (lastSyncTimestamp != null) {
boolean needSync = true;
long deltaTime = onlineSession.getLastAccessTime().getTime() - lastSyncTimestamp.getTime();
if (deltaTime < (this.dbSyncPeriod * 60 * 1000))
{
needSync = false;
}
boolean isGuest = (onlineSession.getUserId() == null || onlineSession.getUserId().longValue() == 0L);
if (!isGuest && onlineSession.isAttributeChanged())
{
needSync = true;
}
if (!needSync) {
return;
}
}
onlineSession.setAttribute(LAST_SYNC_DB_TIMESTAMP, onlineSession.getLastAccessTime());
if (onlineSession.isAttributeChanged())
{
onlineSession.resetAttributeChanged();
}
AsyncManager.me().execute(AsyncFactory.syncSessionToDb(onlineSession));
}
protected void doDelete(Session session) {
OnlineSession onlineSession = (OnlineSession)session;
if (null == onlineSession) {
return;
}
onlineSession.setStatus(OnlineSession.OnlineStatus.off_line);
this.onlineService.deleteOnlineById(String.valueOf(onlineSession.getId()));
}
}
/* Location: C:\Users\Administrator\Desktop\extracted.zip!\extracted\BOOT-INF\classes\com\archive\framework\shiro\session\OnlineSessionDAO.class

@ -1,61 +1,61 @@
/* */ package com.archive.framework.shiro.session
package com.archive.framework.shiro.session
;
/* */
/* */ import com.archive.common.utils.IpUtils;
/* */ import com.archive.common.utils.ServletUtils;
/* */ import com.archive.common.utils.StringUtils;
/* */ import com.archive.project.monitor.online.domain.OnlineSession;
/* */ import com.archive.project.monitor.online.domain.UserOnline;
/* */ import eu.bitwalker.useragentutils.UserAgent;
/* */ import javax.servlet.http.HttpServletRequest;
/* */ import org.apache.shiro.session.Session;
/* */ import org.apache.shiro.session.mgt.SessionContext;
/* */ import org.apache.shiro.session.mgt.SessionFactory;
/* */ import org.apache.shiro.web.session.mgt.WebSessionContext;
/* */ import org.springframework.stereotype.Component;
/* */
/* */
/* */
/* */
/* */
/* */
/* */ @Component
/* */ public class OnlineSessionFactory
/* */ implements SessionFactory
/* */ {
/* */ public Session createSession(UserOnline userOnline) {
/* 26 */ OnlineSession onlineSession = userOnline.getSession();
/* 27 */ if (StringUtils.isNotNull(onlineSession) && onlineSession.getId() == null)
/* */ {
/* 29 */ onlineSession.setId(userOnline.getSessionId());
/* */ }
/* 31 */ return (Session)userOnline.getSession();
/* */ }
/* */
/* */
/* */
/* */ public Session createSession(SessionContext initData) {
/* 37 */ OnlineSession session = new OnlineSession();
/* 38 */ if (initData != null && initData instanceof WebSessionContext) {
/* */
/* 40 */ WebSessionContext sessionContext = (WebSessionContext)initData;
/* 41 */ HttpServletRequest request = (HttpServletRequest)sessionContext.getServletRequest();
/* 42 */ if (request != null) {
/* */
/* 44 */ UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
/* */
/* 46 */ String os = userAgent.getOperatingSystem().getName();
/* */
/* 48 */ String browser = userAgent.getBrowser().getName();
/* 49 */ session.setHost(IpUtils.getIpAddr(request));
/* 50 */ session.setBrowser(browser);
/* 51 */ session.setOs(os);
/* */ }
/* */ }
/* 54 */ return (Session)session;
/* */ }
/* */ }
import com.archive.common.utils.IpUtils;
import com.archive.common.utils.ServletUtils;
import com.archive.common.utils.StringUtils;
import com.archive.project.monitor.online.domain.OnlineSession;
import com.archive.project.monitor.online.domain.UserOnline;
import eu.bitwalker.useragentutils.UserAgent;
import javax.servlet.http.HttpServletRequest;
import org.apache.shiro.session.Session;
import org.apache.shiro.session.mgt.SessionContext;
import org.apache.shiro.session.mgt.SessionFactory;
import org.apache.shiro.web.session.mgt.WebSessionContext;
import org.springframework.stereotype.Component;
@Component
public class OnlineSessionFactory
implements SessionFactory
{
public Session createSession(UserOnline userOnline) {
OnlineSession onlineSession = userOnline.getSession();
if (StringUtils.isNotNull(onlineSession) && onlineSession.getId() == null)
{
onlineSession.setId(userOnline.getSessionId());
}
return (Session)userOnline.getSession();
}
public Session createSession(SessionContext initData) {
OnlineSession session = new OnlineSession();
if (initData != null && initData instanceof WebSessionContext) {
WebSessionContext sessionContext = (WebSessionContext)initData;
HttpServletRequest request = (HttpServletRequest)sessionContext.getServletRequest();
if (request != null) {
UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
String os = userAgent.getOperatingSystem().getName();
String browser = userAgent.getBrowser().getName();
session.setHost(IpUtils.getIpAddr(request));
session.setBrowser(browser);
session.setOs(os);
}
}
return (Session)session;
}
}
/* Location: C:\Users\Administrator\Desktop\extracted.zip!\extracted\BOOT-INF\classes\com\archive\framework\shiro\session\OnlineSessionFactory.class

Loading…
Cancel
Save