/*
     * 创建事件 业务部分写在pullEvent()方法中,这个方法会被定时调用。
     */
    @Override
    protected Event pullEvent() {
      Event event = Event.createDataEvent("/notify/message");

      int count = SessionManager.getInstance().getSessionCount();
      if (count >= 1) {
        Session[] sessions = SessionManager.getInstance().getSessions();
        String userId = sessions[0].getEvent().getField("user_id");

        WebApplicationContext context = SpringContextHolder.getContext();
        NotifyMessageService notifyService =
            (NotifyMessageService) context.getBean("notifyService");

        NotifyMessage entity = new NotifyMessage();
        entity.setIs_query(false);
        entity.setIs_read(false);
        entity.setReceiver_id(Integer.parseInt(userId));
        Map<Integer, List<NotifyMessage>> map = notifyService.modifyAndQueryMapList(entity);
        try {
          String data = buildText(map);
          event.setField("data", data);
        } catch (Exception ex) {
          LogHelper.getLogger().error("构建事务通知信息时出错", ex);
        }

        // 在线用户
        event.setField("userCount", OnlineUser.getInstance().gainUserCount());
      }

      return event;
    }
 /**
  * @Description 标记已读
  *
  * @param id
  * @return JsonResult
  */
 @RequestMapping("/read")
 public @ResponseBody JsonResult read(Integer id) {
   NotifyMessage entity = new NotifyMessage();
   entity.setId(id);
   entity.setIs_read(true);
   return notifyMessageService.modify(entity);
 }
 /**
  * @Description 获取列表数据
  *
  * @param model
  * @author davidwan
  */
 @RequestMapping("/homelist")
 public @ResponseBody Map<Integer, List<NotifyMessage>> homeList(
     Boolean is_init, HttpServletRequest request) {
   NotifyMessage entity = new NotifyMessage();
   entity.setIs_read(false);
   entity.setIs_query(!is_init);
   entity.setReceiver_id(getCurrentUserId());
   Map<Integer, List<NotifyMessage>> map = notifyMessageService.modifyAndQueryMapList(entity);
   return map;
 }
 /**
  * @Description 标记当前用户所有未读提醒为已读
  *
  * @param entity
  * @return JsonResult
  */
 @RequestMapping("/readall")
 public @ResponseBody JsonResult readAll(NotifyMessage entity) {
   entity.getMap().put("receiver_id", getCurrentUserId());
   entity.setIs_read(true);
   return notifyMessageService.modify(entity);
 }