public void checkMonitorPlugin() {
   // System.out.print("asdfasdfasd");
   if (!this.isMonitorPluginInstalled) {
     logger.debug("not install");
     throw new NDSRuntimeException("@monitor-not-installed@");
   }
   logger.debug("installed");
 }
  // 获取第三方平台accesstoken		//synchronized
  public JSONObject getAccessToken(WxPublicpartyControl wppc) {
    WePublicparty wpp = wppc.getWePublicparty();
    JSONObject accesstokeninfo = new JSONObject();
    JSONObject param = new JSONObject();
    if (wpp == null
        || nds.util.Validator.isNull(wpp.getAppid())
        || nds.util.Validator.isNull(wpp.getAppsecret())) {
      logger.debug("WePublicparty error->");
      return accesstokeninfo;
    }

    try {
      param.put("component_appid", wpp.getAppid());
      param.put("component_appsecret", wpp.getAppsecret());
      param.put("component_verify_ticket", wpp.getComponent_verify_ticket());
    } catch (Exception e) {

    }

    ValueHolder vh = null;
    logger.debug("get publicparty access token");

    try {
      vh = RestUtils.sendRequest_buff(weixingetpublicpartyaccesstoken, param.toString(), "POST");
      String result = (String) vh.get("message");
      logger.debug("get publicparty access token result->" + result);

      JSONObject tjo = new JSONObject(result);
      String returns = "获取授权码失败!";
      if (tjo != null && tjo.has("component_access_token")) {

        accesstokeninfo.put("code", 0);
        accesstokeninfo.put("message", "获取成功");
        accesstokeninfo.put("data", tjo);
      } else {
        accesstokeninfo.put("code", -1);
        accesstokeninfo.put("message", returns);
      }
    } catch (Exception e) {
      logger.debug("get publicparty access token error->" + e.getLocalizedMessage());
      e.printStackTrace();
      try {
        accesstokeninfo.put("code", -1);
        accesstokeninfo.put("message", "获取授权码失败!");
      } catch (JSONException e1) {

      }
    }

    return accesstokeninfo;
  }
 /**
  * MU_FAVORITE
  *
  * @throws Exception cyl
  * @param request
  * @return elements are Table or WebAction and menu list
  * @paqram includeAction if true?not now
  */
 public List getSubSystemsOfmufavorite(HttpServletRequest request) throws Exception {
   ArrayList mufavorite = new ArrayList();
   TableManager manager = TableManager.getInstance();
   // Table table;
   try {
     UserWebImpl userWeb =
         ((UserWebImpl)
             WebUtils.getSessionContextManager(request.getSession())
                 .getActor(nds.util.WebKeys.USER));
     int userid = userWeb.getUserId();
     List al =
         QueryEngine.getInstance()
             .doQueryList(
                 "select t.ad_table_id,t.fa_menu,t.menu_re,t.IS_REPORT from MU_FAVORITE t where t.ownerid="
                     + String.valueOf(userid)
                     + " group by t.ad_table_id,t.menu_no,t.fa_menu,t.menu_re,t.IS_REPORT,t.creationdate order by t.menu_no,t.creationdate asc");
     logger.debug("MU_FAVORITE size is " + String.valueOf(al.size()));
     if (al.size() > 0) {
       for (int i = 0; i < al.size(); i++) {
         // ArrayList catschild= new ArrayList();
         List als = (List) al.get(i);
         String fa_menu = (String) als.get(1);
         String menu_re = (String) als.get(2);
         String isreport = (String) als.get(3);
         int table_id = Tools.getInt(als.get(0), -1);
         Table table = manager.getTable(table_id);
         logger.debug(table.getName());
         /*
         if(!table.isMenuObject()){
                     	continue;
                     	//because many table is webaction not ismenuobject
                     }*/
         try {
           WebUtils.checkTableQueryPermission(table.getName(), request);
         } catch (NDSSecurityException e) {
           continue;
         }
         logger.debug("add_table    ->" + table.getName());
         ArrayList row = new ArrayList();
         row.add(fa_menu);
         row.add(menu_re);
         row.add(isreport);
         row.add(table);
         mufavorite.add(row);
       }
     }
   } catch (Throwable t) {
     logger.error("Fail to load mufavorite", t);
   }
   return mufavorite;
 }
  public List getModifiableMonitors(Table paramTable, UserWebImpl usr) throws Exception {
    // this = (this = TableManager.getInstance()).getTable("ad_monitor");
    Table mo_table = TableManager.getInstance().getTable("ad_monitor");
    QueryRequestImpl query;
    query = QueryEngine.getInstance().createRequest(usr.getSession());
    query.setMainTable(mo_table.getId());
    query.addSelection(mo_table.getColumn("id").getId());
    query.addSelection(mo_table.getColumn("name").getId());
    query.addSelection(mo_table.getColumn("monitor_type").getId());
    query.addSelection(mo_table.getColumn("check_type").getId());
    query.addSelection(mo_table.getColumn("isactive").getId());

    query.addOrderBy(new int[] {mo_table.getColumn("name").getId()}, true);

    Expression localExpression =
        (localExpression =
                (localExpression =
                        (localExpression =
                                new Expression(
                                    new ColumnLink("ad_monitor.monitor_type"), "=obj", null))
                            .combine(
                                new Expression(
                                    new ColumnLink("ad_monitor.monitor_type"), "=list", null),
                                2,
                                null))
                    .combine(usr.getSecurityFilter(mo_table.getName(), 3), 1, null))
            .combine(
                new Expression(
                    new ColumnLink("ad_monitor.ad_table_id"), "=" + paramTable.getId(), null),
                1,
                null);
    query.addParam(localExpression);
    logger.debug("getModifiableMonitors sql is:" + query.toSQL());
    return QueryEngine.getInstance().doQueryList(query.toSQL());
  }
 public synchronized void reloadObjectActionListeners() throws Exception {
   this.objActionListeners.clear();
   List localList;
   try {
     localList =
         QueryEngine.getInstance()
             .doQueryList(
                 "select id from ad_monitor m where m.check_type='action' and m.monitor_type='obj' and m.isactive='Y'");
   } catch (Throwable e) {
     throw new NDSException("Fail to read ad_monitor table from db", e);
   }
   if (localList != null)
     for (int i = 0; i < localList.size(); i++) {
       int j = Tools.getInt(localList.get(i), -1);
       ObjectActionListener localObjectActionListener = createListener(j);
       logger.debug("reloadObjectActionListeners complet!");
       if (localObjectActionListener == null) {
         throw new NDSException(
             "No implementation for ObjectActionListener, check your plugin configuration");
       }
       this.objActionListeners.add(
           localObjectActionListener.getAdClientId()
               + "."
               + localObjectActionListener.getTableId(),
           localObjectActionListener);
       this.objActionListenersIds.put(Integer.valueOf(j), localObjectActionListener);
     }
 }
 private ObjectActionListener createListener(int paramInt) throws Exception {
   ObjectActionListener v = (ObjectActionListener) this.oaLmanager.findPlugin("default");
   if (v != null) {
     try {
       ObjectActionListener localObjectActionListener = v.getClass().newInstance();
       logger.debug("monid :" + String.valueOf(paramInt));
       localObjectActionListener.init(paramInt);
       localObjectActionListener.setDebug(true);
       return localObjectActionListener;
     } catch (Throwable e) {
       logger.error("fail to new ObjectActionListener of " + e.getClass(), e);
     }
   }
   return null;
 }
  public void dispatchEvent(ObjectActionEvent paramObjectActionEvent) {
    if (!this.isMonitorPluginInstalled) return;
    try {
      logger.debug("dispatch " + paramObjectActionEvent.getClass().getName());
      Collection b =
          this.objActionListeners.get(
              paramObjectActionEvent.getAdClientId() + "." + paramObjectActionEvent.getTableId());
      if (b != null)
        for (Iterator it = b.iterator(); it.hasNext(); ) {
          ObjectActionListener localObjectActionListener;
          localObjectActionListener = (ObjectActionListener) it.next();
          localObjectActionListener.onAction(paramObjectActionEvent);
        }
      return;
    } catch (Exception e) {
      logger.error("Error dispatch " + paramObjectActionEvent.toString(), e);

      throw new NDSRuntimeException("@error-dispatch-monitor-event@:" + e.getMessage());
    }
  }
  /**
   * menu action
   *
   * @throws Exception cyl
   * @param request
   * @param tableCategoryId desgin menu list
   * @paqram includeAction if true, will load webactions also
   * @return elements are Table or WebAction and menu list
   */
  public List getChildrenOfTableCategorybymenu(
      HttpServletRequest request, int tableCategoryId, boolean includeAction) throws Exception {
    TableManager manager = TableManager.getInstance();

    WebAction action;
    ArrayList cats = new ArrayList();
    List children = new ArrayList();
    Connection conn = null;
    HashMap webActionEnv = null;
    Table table;
    List al =
        QueryEngine.getInstance()
            .doQueryList(
                "select e.id,e.name from ad_table g,AD_ACCORDION e where g.AD_ACCORDION_id=e.id and g.ad_tablecategory_id="
                    + tableCategoryId
                    + " group by e.id,e.name,e.orderno order by e.orderno asc");
    UserWebImpl userWeb =
        ((UserWebImpl)
            WebUtils.getSessionContextManager(request.getSession())
                .getActor(nds.util.WebKeys.USER));
    TableCategory tc = manager.getTableCategory(tableCategoryId);
    if (tc != null) children = tc.children();

    // ArrayList prow= new ArrayList();
    if (al.size() > 0) {
      for (int i = 0; i < al.size(); i++) {
        List als = (List) al.get(i);
        int ACCORDION = Tools.getInt(als.get(0), -1);
        logger.debug("ACCORDION~~~~~~~~~~" + String.valueOf(ACCORDION));
        ArrayList catschild = new ArrayList();
        String ACCORDION_name = (String) als.get(1);
        try {
          if (includeAction) {
            conn = QueryEngine.getInstance().getConnection();
            webActionEnv = new HashMap();
            webActionEnv.put("connection", conn);
            webActionEnv.put("httpservletrequest", request);
            webActionEnv.put("userweb", userWeb);
          }
          for (int j = 0; j < children.size(); j++) {
            if (children.get(j) instanceof Table) {
              table = (Table) children.get(j);
              // logger.debug("getAccordid~~~~~~~~~~"+String.valueOf(table.getAccordid()));
              if (!table.isMenuObject()) {
                continue;
              } else if (ACCORDION != table.getAccordid()) {
                // logger.debug(String.valueOf(ACCORDION)+"!="+String.valueOf(table.getAccordid()));
                continue;
              }
              try {
                WebUtils.checkTableQueryPermission(table.getName(), request);
              } catch (NDSSecurityException e) {
                continue;
              }
              // table is ok for current user to list
              logger.debug(String.valueOf(ACCORDION) + "&&" + String.valueOf(table.getAccordid()));
              catschild.add(table);
            } else if (children.get(j) instanceof WebAction) {
              if (includeAction) {
                action = (WebAction) children.get(j);
                if (action.canDisplay(webActionEnv) && (action.getAcordionId() == ACCORDION)) {
                  logger.debug("add action" + String.valueOf(ACCORDION));
                  //				        			System.out.print("add action"+String.valueOf(ACCORDION));
                  //				        			System.out.print("action name"+String.valueOf(action.getName()));
                  //				        			System.out.print("ACCORDION name"+String.valueOf(ACCORDION));
                  //				        			System.out.print("action
                  // name"+String.valueOf(action.getAcordionId()));
                  catschild.add(action);
                }
              }
            } else {
              throw new NDSRuntimeException(
                  "Unsupported element in TableCategory children:" + children.get(j).getClass());
            }
          }
        } catch (Throwable t) {
          logger.error("Fail to load subsystem tree", t);
        } finally {
          try {
            if (conn != null) conn.close();
          } catch (Throwable e) {
          }
        }
        if (catschild.size() > 0) {
          // show this category
          ArrayList row = new ArrayList();
          row.add(ACCORDION_name);
          row.add(catschild);
          cats.add(row);
        }
      }
      return cats;
    } else {
      ArrayList catschild1 = new ArrayList();
      try {
        if (includeAction) {
          conn = QueryEngine.getInstance().getConnection();
          webActionEnv = new HashMap();
          webActionEnv.put("connection", conn);
          webActionEnv.put("httpservletrequest", request);
          webActionEnv.put("userweb", userWeb);
        }
        for (int j = 0; j < children.size(); j++) {
          if (children.get(j) instanceof Table) {
            table = (Table) children.get(j);
            if (!table.isMenuObject()) {
              continue;
            }
            try {
              WebUtils.checkTableQueryPermission(table.getName(), request);
            } catch (NDSSecurityException e) {
              continue;
            }
            // table is ok for current user to list
            catschild1.add(table);
          } else if (children.get(j) instanceof WebAction) {
            if (includeAction) {
              action = (WebAction) children.get(j);
              if (action.canDisplay(webActionEnv)) catschild1.add(action);
            }
          } else {
            throw new NDSRuntimeException(
                "Unsupported element in TableCategory children:" + children.get(j).getClass());
          }
        }
      } catch (Throwable t) {
        logger.error("Fail to load subsystem tree", t);
      } finally {
        try {
          if (conn != null) conn.close();
        } catch (Throwable e) {
        }
      }
      if (catschild1.size() > 0) {
        // show this category
        ArrayList row = new ArrayList();
        row.add(tc.getName());
        row.add(catschild1);
        cats.add(row);
      }
    }
    return cats;
  }