文档章节

ID01

萧小蚁
 萧小蚁
发布于 2016/09/20 19:55
字数 537
阅读 5
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

client项目

接受查询结果的实体:

public class TIvrDataCountGroupByPressKeyBo {

    private String pressKey;
    private int count;

Dao层

@ResultType(value =    com.xiaoju.kefu.jazz.base.entity.TIvrDataCountGroupByPressKeyBo.class )
    @Select("select presskey,count(presskey) count from T_Ivr_Data where inIvrTime between #{beginDate} and #{endDate} group by presskey")
    List<TIvrDataCountGroupByPressKeyBo> findTIvrDataCountByHour(@Param("beginDate")

Service层:

/**
     * 定时发送话务数据监控的业务线总数
     * 
     * @return
     */
    public void executeCountByPressKey(){
        try {
            logger.info("executeCountByPressKey");
            executeCountByPressKey.lock();
            Date date = DateUtils.addHour(new Date(), -1);
            String beginDate = DateUtils.format(date, "yyyy-MM-dd HH:00:00");
            String endDate = DateUtils.format(date, "yyyy-MM-dd HH:59:59");
            List<TIvrDataCountGroupByPressKeyBo> list = tIvrDataMapper.findTIvrDataCountByHour(beginDate, endDate);
            Map<String,String> dataMaps = Maps.newHashMap();
            dataMaps.put("type", Constants.GENESYS_PressKey_Count);
            dataMaps.put("Date", beginDate + " To "+endDate);
            dataMaps.put("list", JSON.toJSONString(list));
            dataHttpRemoteService.sendData(Constants.HTTP_PressKey_PerHour, dataMaps);
        } catch (Exception e) {
            logger.error("GenesysDataTask类executeCountByPressKey方法异常:", e);
        } finally {
            executeCountByPressKey.unlock();
        }
         logger.info("executeCountByPressKey() Online program starts normal");
    }

sendData添加代码:

else if(Constants.HTTP_PressKey_PerHour.equals(sendType)){
                url=propertiesLoader.getProperty(Constants.HTTP_PressKey_PerHour);

Contants:

//定时发送话务数据监控的业务线总数
    public static final String HTTP_PressKey_PerHour = "http.prehour.send.data";
    //定时发送话务数据监控的业务线总数常量
    public static final String GENESYS_PressKey_Count = "genesys_presskey_count";

application.properties

#定时发送话务数据监控的业务线总数
http.prehour.send.data=http://kefu-dc.xiaojukeji.com/genesys/acceptgenesysdatabypresskey

web项目:

/**
     * 接受Genesys定时发送的话务数据监控的业务线总数,放到redis中
     * 
     * @param data
     * @return
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @RequestMapping("/acceptgenesysdatabypresskey")
    @ResponseBody
    public KResponse acceptGenesysDataByPressKey(HttpServletRequest request) {
        Map<String, String[]> data = request.getParameterMap();
        KResponse result = new KResponse();
        try {
            Map<String, String> dataMaps = MapUtils.toMap(data);
            String type = dataMaps.get("type");
            String Date = dataMaps.get("Date");
            String list = dataMaps.get("list");
            
            setHRedis(type,Date,list,24*60*60);
               
        } catch (Exception ex) {
            result.setSysFail();
            logger.error("GenesysControl类的acceptGenesysDataByPressKey方法异常", ex);
        }
        return result;
    }
    
    /**
     * 获取上一个小时的话务数据监控的业务线总数
     * 
     * @return
     */
    public String getIvrDataByHour() {
        Date date = addHour(new Date(), -1);
          String beginDate = format(date, "yyyy-MM-dd HH:00:00");
        String endDate = format(date, "yyyy-MM-dd HH:59:59");
        String Date = beginDate + " To "+ endDate;
        String result = getHRedis(Constants.GENESYS_PressKey_Count,Date);
        
        if (result != null) {
            return result;
        } else {
            return "上一小时没有数据";
        }
        
    }
    
    /**
     * 将key,field和value对应的值存入redis
     * 
     * @param typeKey
     * @param typeValue
     */
    public void setHRedis(String typeKey, String typefield, String typeValue, Integer timeout) {
        RedisUtils jedis = RedisUtils.getInstance();
        try {
            jedis.hset(typeKey, typefield, typeValue);
            // 过期时间如果不为空,需要设置过期时间
            if (timeout != null) {
                jedis.expire(typeKey, timeout);
            }
        } catch (Exception ex) {
            logger.error("GenesysControl类的setHRedis失败");
        }
    }
    
    /**
     * 从redis中获取key,field对应的value值
     * 
     * @param typeKey
     * @param typeValue
     */
    public String getHRedis(String typeKey, String typefield) {
        RedisUtils jedis = RedisUtils.getInstance();
        String result = null;
        try {
            result = jedis.hget(typeKey, typefield);
        } catch (Exception ex) {
            logger.error("GenesysControl类的getHRedis失败");
        }
        return result;
    }
    
      public static final String format(Date date, String pattern){
          SimpleDateFormat sdf = new SimpleDateFormat(pattern);
          return sdf.format(date);
      }
        
        public static final Date addHour(Date date, int hour) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.HOUR_OF_DAY, hour);
            return cal.getTime();
        }

© 著作权归作者所有

萧小蚁

萧小蚁

粉丝 101
博文 279
码字总数 192339
作品 0
海淀
程序员
私信 提问
CSS样式表中的优先权

1、特殊性 首先来看一下这个例子将会发生的情形: 1 .grape { color:Blue; } 2 H1 { color: Red; } 3 < h1 class ="grape" >Meerkat < em >Central H1和.grape都匹配上面的H1元素,那么到底应......

长平狐
2012/09/06
48
0
请大神帮忙解决车辆排班问题

车辆排班表问题。头都想大了也不知道如何实现。 (1) 数据库原始数据 主键:不重复,派团编号:会重复(车是跟团走的),车牌号码:会重复(也可以看做车id值)。时间:在这个日期执行了运输任...

乞海
2016/11/14
325
6
以获客为目标 ,如何从0到1实现用户增长?

以获客为目标 ,如何从0到1实现用户增长? 周长清 2018-04-11 18:08 每个网站都有目标。如果网站以获客为目标,那么就需要尽可能地让客户留下自己的信息,即我们常说的销售线索。网站目标确定...

@dailidong@
2018/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

没有更多内容

一篇文章教你轻松使用fastjson

前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y JSON相信大家对他也不陌生了,前后端交互中常常就以JSON来进行数据交换。而有的...

Java3y
33分钟前
4
1
分组功能(tapply,by,aggregate)和* apply系列

每当我想在R中做“ map” py任务时,我通常都会尝试在apply系列中使用一个函数。 但是,我从未完全理解它们之间的区别-{ sapply , lapply等}如何将函数应用于输入/分组输入,输出将是什么样...

javail
33分钟前
4
0
PHP环境搭建之单独安装

还在使用PHP集成环境吗?教你自定义搭建配置PHP开发环境,按照需求进行安装,安装的版本可以自己选择,灵活性更大。 目录: 1. 安装Apache 2. 安装PHP 3. 安装MySQL 4. 安装Composer 观看:h...

不冷的大叔
45分钟前
4
0
为什么JavaScript变量会以美元符号开头?

我经常看到JavaScript带有以美元符号开头的变量。 您何时/为什么选择以这种方式为变量添加前缀? (我不是在问您在jQuery和其他语言中看到的$('p.foo')语法,而是普通变量,例如$name和$orde...

技术盛宴
49分钟前
4
0
TCP 三次握手

https://my.oschina.net/u/4198159/blog/3141874

奋斗的小牛
58分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部