system.controllers.OperateLogApp.java Source code

Java tutorial

Introduction

Here is the source code for system.controllers.OperateLogApp.java

Source

/*
 * Copyright (c) 2013, Helome and/or its affiliates. All rights reserved.
 * Helome PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 * Created on 2014-1-13
 */
package system.controllers;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.math.NumberUtils;
import org.apache.commons.lang3.StringUtils;

import play.db.jpa.Transactional;
import play.libs.Json;
import play.mvc.Controller;
import play.mvc.Result;
import system.models.OperateLog;
import utils.DateUtils;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

/**
 * ?APP
 *
 * @ClassName: OperateLogApp
 * @Description: TODO(????)
 * @date 2014-1-13 ?2:33:47
 * @author YangXuelin
 * 
 */
public class OperateLogApp extends Controller {

    @Transactional(readOnly = true)
    public static Result list() {
        ObjectNode result = Json.newObject();
        int start = NumberUtils.toInt(request().getQueryString("start"), 0);
        int pageSize = NumberUtils.toInt(request().getQueryString("limit"), 20);
        String searchText = StringUtils.defaultIfBlank(request().getQueryString("searchText"), "");
        String searchModule = StringUtils.defaultIfBlank(request().getQueryString("searchModule"), "-1");
        String optResult = StringUtils.defaultIfBlank(request().getQueryString("result"), "");
        searchText = "%" + searchText + "%";
        String sort = request().getQueryString("sort");
        String sortProperty = " ol.operateTime desc";
        if (StringUtils.isNotBlank(sort)) {
            try {
                JsonNode sortJsonArray = Json.parse(sort);
                if (sortJsonArray.isArray() && null != sortJsonArray.get(0)) {
                    JsonNode sortJsonNode = sortJsonArray.get(0);
                    if (sortJsonNode.hasNonNull("property") && sortJsonNode.hasNonNull("direction")) {
                        sortProperty = " ol.operateTime ";
                        boolean isDesc = "DESC".equals(sortJsonNode.get("direction").asText());
                        if (isDesc) {
                            sortProperty += " desc";
                        }
                    }
                }
            } catch (RuntimeException e) {
                play.Logger.error("failed to parse JSON. JSON: " + sort);
            }
        }
        int total = OperateLog.getOperateLogCount(searchText, optResult);
        result.put("total", total);
        if (total == 0) {
            result.putPOJO("data", null);
            return ok(result);
        }
        List<OperateLog> ols = OperateLog.getOperateLogs(start, pageSize, searchText, optResult, sortProperty);
        List<ObjectNode> data = null;
        if (ols != null) {
            data = new ArrayList<ObjectNode>(ols.size());
            for (OperateLog ol : ols) {
                ObjectNode node = Json.newObject();
                node.put("id", ol.id);
                node.put("operateTime", DateUtils.format(ol.operateTime));
                node.put("operator", ol.operator);
                node.put("operateIp", ol.operateIp);
                node.put("menuName", ol.menuName);
                node.put("paramters", ol.paramters);
                node.put("result", ol.result);
                node.put("describle", ol.describle);
                data.add(node);
            }
        }
        result.putPOJO("data", data);
        return ok(result);
    }

    /**
     * ??
     * @return
     */
    public static Result operateModules() {
        //      ObjectNode result = Json.newObject();
        //      List<ObjectNode> modules = new ArrayList<ObjectNode>();
        //      ObjectNode head = Json.newObject();
        //      head.put("name", "?");
        //      head.put("value", -1);
        //      modules.add(head);
        //      for(ModuleEnum module : ModuleEnum.values()) {
        //         ObjectNode node = Json.newObject();
        //         node.put("name", module.getName());
        //         node.put("value", module.ordinal());
        //         modules.add(node);
        //      }
        //      result.putPOJO("data", modules);
        //      return ok(result);
        return ok();
    }

}