com.dianping.lion.web.action.system.OperationLogAction.java Source code

Java tutorial

Introduction

Here is the source code for com.dianping.lion.web.action.system.OperationLogAction.java

Source

/**
 * Project: com.dianping.lion.lion-console-0.0.1
 * 
 * File Created at 2012-7-10
 * $Id$
 * 
 * Copyright 2010 dianping.com.
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * Dianping Company. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with dianping.com.
 */
package com.dianping.lion.web.action.system;

import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.springframework.beans.factory.annotation.Autowired;

import com.dianping.lion.entity.Environment;
import com.dianping.lion.entity.OperationLog;
import com.dianping.lion.entity.OperationTypeEnum;
import com.dianping.lion.entity.Project;
import com.dianping.lion.exception.NoPrivilegeException;
import com.dianping.lion.service.EnvironmentService;
import com.dianping.lion.service.OperationLogService;
import com.dianping.lion.service.ProjectService;
import com.dianping.lion.util.SecurityUtils;
import com.dianping.lion.vo.OperationLogCriteria;
import com.dianping.lion.vo.Paginater;
import com.dianping.lion.web.action.common.AbstractLionAction;

@SuppressWarnings("serial")
public class OperationLogAction extends AbstractLionAction implements ServletRequestAware {

    private List<Project> projects;
    private List<Environment> envs;
    private Map<String, String> opTypes = new LinkedHashMap<String, String>();

    private Integer projectId;
    private Project project;
    private int logid;
    private String keys;
    private Map<String, String> keyMap = new HashMap<String, String>();

    private OperationLogCriteria logCriteria = new OperationLogCriteria();
    private Paginater<OperationLog> paginater = new Paginater<OperationLog>();

    @Autowired
    private OperationLogService operationLogService;
    @Autowired
    private ProjectService projectService;
    @Autowired
    private EnvironmentService environmentService;

    public String getOpLogs() {
        initializePage();
        paginater.setMaxResults(20);
        paginater = operationLogService.getLogList(logCriteria, paginater);
        return SUCCESS;
    }

    public String getOpLogsByProject() {
        if (!privilegeDecider.hasReadApplogPrivilege(projectId, SecurityUtils.getCurrentUserId())) {
            throw NoPrivilegeException.INSTANCE;
        }
        initializePage();
        logCriteria.setProjectId(projectId);
        if (logCriteria.getOpType() == null) {
            logCriteria.setOpTypeStart(OperationTypeEnum.Config_All.getBegin());
            logCriteria.setOpTypeEnd(OperationTypeEnum.Config_All.getEnd());
        }
        paginater.setMaxResults(20);
        paginater = operationLogService.getLogList(logCriteria, paginater);
        return SUCCESS;
    }

    public String viewKeys() {
        String[] keyTokens = StringUtils.split(keys, ",");
        for (String keyToken : keyTokens) {
            String[] tokens = StringUtils.split(keyToken, ":");
            String keycontent = operationLogService.getLogKey(logid, tokens[1]);
            keyMap.put(tokens[0], keycontent);
        }
        return SUCCESS;
    }

    protected void initializePage() {
        List<OperationTypeEnum> typeEnumList;
        if (projectId != null) {
            project = projectService.getProject(projectId);
            typeEnumList = OperationTypeEnum.projectPageSelectTypes();
        } else {
            projects = projectService.getProjects();
            Collections.sort(projects, new Comparator<Project>() {
                @Override
                public int compare(Project p1, Project p2) {
                    return p1.getName().compareTo(p2.getName());
                }
            });
            typeEnumList = OperationTypeEnum.pageSelectTypes();
            opTypes.put("||false", "?");
        }
        envs = environmentService.findAll();
        for (OperationTypeEnum typeEnum : typeEnumList) {
            opTypes.put(typeEnum.getBegin() + "|" + typeEnum.getEnd() + "|" + typeEnum.isProjectRelated(),
                    typeEnum.getLabel());
        }
    }

    public Integer getPid() {
        return projectId;
    }

    public void setPid(Integer pid) {
        this.projectId = pid;
    }

    public Project getProject() {
        return project;
    }

    public void setProject(Project project) {
        this.project = project;
    }

    public OperationLogService getOperationLogService() {
        return operationLogService;
    }

    public List<Project> getProjects() {
        return projects;
    }

    public Map<String, String> getOpTypes() {
        return opTypes;
    }

    public List<Environment> getEnvs() {
        return envs;
    }

    public OperationLogCriteria getLogCriteria() {
        return logCriteria;
    }

    public void setLogCriteria(OperationLogCriteria logCriteria) {
        this.logCriteria = logCriteria;
    }

    public Paginater<OperationLog> getPaginater() {
        return paginater;
    }

    public void setPaginater(Paginater<OperationLog> paginater) {
        this.paginater = paginater;
    }

    public String getKeys() {
        return keys;
    }

    public void setKeys(String keys) {
        this.keys = keys;
    }

    public Map<String, String> getKeyMap() {
        return keyMap;
    }

    public void setKeyMap(Map<String, String> keyMap) {
        this.keyMap = keyMap;
    }

    public int getLogid() {
        return logid;
    }

    public void setLogid(int logid) {
        this.logid = logid;
    }

}