HistoryLogsAdapter.java 2.8 KB
Newer Older
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
1 2 3 4
package org.maxkey.web.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
MaxKey单点登录官方's avatar
m-11/6  
MaxKey单点登录官方 已提交
5 6
import org.maxkey.dao.service.HistoryLogsService;
import org.maxkey.domain.HistoryLogs;
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
7 8 9 10 11 12 13 14 15
import org.maxkey.domain.UserInfo;
import org.maxkey.util.JsonUtils;
import org.maxkey.web.WebContext;
import org.maxkey.web.message.Message;
import org.maxkey.web.message.MessageScope;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
16
import org.springframework.stereotype.Component;
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
17 18 19 20 21 22 23 24 25 26
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

/**
 * Contorller调用完成后进行日志操作
 * 日志处理需在parasec-servlet.xml中配置
 * mvc:interceptors  log
 * @author Crystal.Sea
 *
 */
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
27
@Component
MaxKey单点登录官方's avatar
m-11/6  
MaxKey单点登录官方 已提交
28
public class HistoryLogsAdapter extends HandlerInterceptorAdapter {
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

    private static final Logger _logger = LoggerFactory.getLogger(HistoryLogsAdapter.class);

    @Autowired
    @Qualifier("historyLogsService")
    private HistoryLogsService historyLogsService;

    /**
     *  after the handler is executed.
     */
    public void postHandle(HttpServletRequest request,
            HttpServletResponse response, 
            Object handler,ModelAndView modelAndView) throws Exception {
        _logger.debug("postHandle");
        Message message = WebContext.getMessage();//读取session中message

        if (message != null) {
            //判断message类型
            if (message.getMessageScope() == MessageScope.DB
                    || message.getMessageScope() == MessageScope.DB_CLIENT) {
                UserInfo userInfo = WebContext.getUserInfo();//取得当前用户信息

                //创建日志记录
                HistoryLogs historyLogs = new HistoryLogs(
                        message.getServiceName(),
                        message.getCode(),
                        message.getMessage(),
                        JsonUtils.object2Json(message.getMessageObject()),
                        message.getMessageType().toString(),
                        message.getOperateType().toString(),
                        userInfo == null ? null : userInfo.getId(),
                                userInfo == null ? null : userInfo.getUsername(),
                                        ""
                        );
                _logger.debug("insert db historyLogs content : " + historyLogs);
                historyLogsService.insert(historyLogs);//日志插入数据库
                //message类型仅插入数据库
                if (message.getMessageScope() == MessageScope.DB) {
                    WebContext.clearMessage();//清除message
                }
            }
        }
    }
MaxKey单点登录官方's avatar
init  
MaxKey单点登录官方 已提交
72
}