oper

package main.java.com.zte.controller.ems;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import main.java.com.zte.controller.base.BaseController;
import main.java.com.zte.entity.Page;
import main.java.com.zte.service.ems.OperationService;
import main.java.com.zte.util.DateUtil;
import main.java.com.zte.util.PageData;
import main.java.com.zte.util.Tools;

/**
 * EMS上用户操作日志处理类
 *
 * @author 10183302
 *
 */
@Controller
@RequestMapping(value = "/ems/operation")
public class OperationController extends BaseController {
    private static final String FAILD = "Failed";
    private static final String OPERATION_RESULT = "operationResult";
    private static final String OPER_COUNT = "OPER_COUNT";
    private static final String EMS_USER_OPERATION_CHARTS = "ems/user_operation_charts";
    private static final String USER_OPERATION_FAILED_COUNT = "userOperationFailedCount";
    private static final String USER_OPERATION_NAME_COUNT = "userOperationNameCount";
    private static final String USER_COUNT = "userCount";
    private static final String OPERATION_NAME_LIST = "operationNameList";
    private static final String IP_LIST = "ipList";
    private static final String START_TIME = "START_TIME";
    private static final String TASK_ID_STR = "taskId";
    private static final String TASK_ID_NUM_STR = "1470880530369";
    private static final String HOST_STR_UPPER = "HOST";
    private static final String HOST_STR_LOWER = "ip";
    private static final String OPERATION_NAME_STR_LOWER = "operationName";
    private static final String LOG_NAME_STR_UPPER = "OPERATION_NAME";

    @Resource(name = "operationService")
    private OperationService operationService;

    @RequestMapping(value = "/to_user_operation_charts")
    public ModelAndView toUserOperationCharts(Page page,
            @RequestParam(value = TASK_ID_STR, required = false) String taskId)
            throws Exception {
        ModelAndView mv = this.getModelAndView();
        PageData pd = new PageData();
        List<PageData> ipList = null;
        List<PageData> operationNameList = null;
        List<PageData> userCount = null;
        List<PageData> userOperationNameCount = null;
        List<PageData> userOperationFailedCount = null;
        try {
            pd = this.getPageData();
            if (!Tools.notEmpty(taskId)) {
                taskId = TASK_ID_NUM_STR;
            }
            pd.put(TASK_ID_STR, taskId);
            ipList = operationService.getOperationIp(pd);
            if (null != ipList) {
                pd.put(HOST_STR_LOWER, ipList.get(0).get(HOST_STR_UPPER));
                operationNameList = operationService.getOperationName(pd);
                pd.put(OPERATION_NAME_STR_LOWER,
                        operationNameList.get(0).get(LOG_NAME_STR_UPPER));
                page.setPd(pd);
                userCount = operationService.userCount(pd);
                userOperationNameCount = operationService
                        .userOperationNameCount(pd);
                pd.put(OPERATION_RESULT, FAILD);
                userOperationFailedCount = operationService
                        .userOperationFailedCount(pd);
            }
        } catch (Exception e) {
            logger.error(e.toString(), e);
        }
        mv.addObject(IP_LIST, ipList);
        mv.addObject(OPERATION_NAME_LIST, operationNameList);
        mv.addObject(USER_COUNT, userCount);
        mv.addObject(USER_OPERATION_NAME_COUNT, userOperationNameCount);
        mv.addObject(USER_OPERATION_FAILED_COUNT, userOperationFailedCount);
        mv.setViewName(EMS_USER_OPERATION_CHARTS);
        return mv;
    }

    @RequestMapping(value = "/user_operation_charts")
    @ResponseBody
    public Map userOperationCharts(Page page,
            @RequestParam(value = TASK_ID_STR, required = false) String taskId) {
        PageData pd = new PageData();
        List<PageData> userOperDatas = null;
        JSONObject chartsUserOperJson = new JSONObject();
        Map<String, Double> userOperDataMap = new HashMap<String, Double>();
        try {
            pd = this.getPageData();
            if (!Tools.notEmpty(taskId)) {
                taskId = TASK_ID_NUM_STR;
            }
            pd.put(TASK_ID_STR, taskId);
            /*
             * pd.put(HOST_STR_LOWER, ip); pd.put(OPERATION_NAME_STR_LOWER,
             * operationName);
             */
            userOperDatas = operationService.userOperationCharts(pd);
            // 存放一个图表OPER_COUNT,START_TIME
            if (!userOperDatas.isEmpty()) {
                String time = "";
                double operCount = 0;
                for (PageData userOperData : userOperDatas) {
                    time = DateUtil.convertUTCTimeMillis(userOperData.get(
                            START_TIME).toString());
                    operCount = Double.valueOf(userOperData.get(OPER_COUNT)
                            .toString());
                    userOperDataMap.put(time, operCount);
                }
                chartsUserOperJson = JSONObject.fromObject(userOperDataMap);
            }
        } catch (Exception e) {
            logger.error(e.toString(), e);
        }

        Map<String, Double> map = new HashMap<String, Double>();
        map.put("1", 21.1);
        map.put("2", 33.3);
        map.put("3", 44.4);
        JSONObject jsonObject = JSONObject.fromObject(map);
        return userOperDataMap;
    }

    @RequestMapping(value = "/get_operation_name")
    @ResponseBody
    public String getOperationName(
            @RequestParam(value = HOST_STR_LOWER, required = false) String ip) {
        PageData pd = new PageData();
        List<PageData> operationNameList = null;
        try {
            pd = this.getPageData();
            pd.put(HOST_STR_LOWER, ip);
            operationNameList = operationService.getOperationName(pd);
        } catch (Exception e) {
            logger.error(e.toString(), e);
        }
        return JSONArray.fromObject(operationNameList).toString();
    }
}
时间: 2024-10-12 18:47:16

oper的相关文章

函数指针 如:void (*oper)(ChainBinTreee *p)

在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址.我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数.然后通过指针变量就可以找到并调用这个函数.我们把这种指向函数的指针变量称为"函数指针变量".函数指针变量定义的一般形式为:类型说明符 (*指针变量名)();其中"类型说明符"表示被指函数的返回值的类型."(* 指针变量名)"表示"*"后面的变量是定义的指针变量.

四则运算题目生成程序

a.需求分析 看了大家对于本课程的目标和规划,很多同学都希望能提高自己的实践能力,没有捷径可走,就是练习.练习再练习!那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 =

Oracle数据库——触发器的创建与应用

一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作.(第1题中,user是系统函数,返回当前用户.字符串中使用两个单引号表示一个单引号.) 要求:分别以system用户和scott用户对emp 表执行DML操作,试验触发器的运行效果. (1)在scott用户下创建触发器 语句: create or replace t

简单工厂模式

目前正在看<大话设计模式>,写此系列的文章记录下学习的经过. 简单工厂模式 先看如下代码,使用面向对象的原理实现计算器功能 Operation运算类 1 public class Operation 2 { 3 private double numberA = 0; 4 private double numberB = 0; 5 6 public double NumberA 7 { 8 get { return numberA; } 9 set { numberA = value; } 10

工厂方法模式

开放-封闭原则: 在设计模式中,对于不能修改,但可以扩展的思想也是一种重要的设计原则.比如国家对于香港的一国两制.大陆的社会主义是不可以更改的,但由于香港长期处于资本主义下,强制执行社会主义难免有些牵强,所以邓小平同志就用了开放-封闭原则,完美的解决了这一问题.在前期进行软件设计的时候,应该做好后期新增需求的准备.尽量做到新增需求时,不需要更改已有代码,而是新增代码,进行需求的扩展. 工厂方法模式: 问题抛出:在上一篇文章中,通过一个简单的两位数计算介绍了简单工厂模式.在这基础上,试想如果我们需

c指针-专题

六---指针 内存和地址怎么理解呢? 机器中有一些位置,每一个位置被称为[字节]/byte,许多现代机器上,每个字节包含8个位.更大内存单位[字],通常包含2个或4个字节组成. 一个字包含4个字节,它的地址是什么? 他仍然只有一个地址,是最左边还是最右边的那个字节的位置,取决于机器. 机器事实-关于整型的起始位置: 在要求边界对齐(boundaryalignment)的机器上,整型存储的起始位置只能是某些特定的字节,通常是2或4的倍数. 变量名和地址关系? 所有高级语言的特性之一,就是通过名字而

Oracle Linux 6.5安装Oracle 11gr2

终于开始安装ASM和RAC的行程了. Linux下准备工作 vi /etc/selinux/config-------永久关闭selinux SELINUX=disabled--------然后重启服务器   chkconfig iptables off 重启永久关闭防火墙 安装包 mount /dev/cdrom /mnt cd /mnt/cdrom/Server/Packages rpm -Uvh binutils-2*x86_64*   rpm -Uvh glibc-2*x86_64* n

centos 6 oracle 11G DB install

因业务迁移,需重新部署oracle DB,此文仅作部署记录,部署文档主要参考官方文档http://docs.oracle.com/cd/E11882_01/install.112/e47689/toc.htm 概要: 主机:OpenStack 云主机 系统:Completing a Minimal Linux centos 6.8 x86_64 DB:Oracle Database 11g Release 2(11.2) 内存:2Gb 硬盘:/dev/vda 20Gb /dev/vdb 30Gb

大话设计模式:简单工厂模式

由于面向过程编程造成的代码膨胀问题越来越严重,使其维护的代价高,灵活性很低.为了使代码易维护.易扩展.易复用和灵活性好,所以我们在采用面向对象编程的时候,防止采用面向对象的语言实际上却做着面向过程的事儿,更需要采用某种设计模式,核心就是使程序变得高内聚,低耦合,这样的程序才能达到上面的四个优点.而简单工厂模式的出现也正是为了达到这样一种效果,将工厂和产品分块,具体解决了实例化那个对象(具体产品)的需求.从而实现了高内聚,低耦合.使程序易维护.易扩展.易复用和灵活性好.同时也用到了面向对象编程的三