Пример #1
0
  /*
   * jobConfig的格式为 :
   * 		sql @ datasource
   */
  protected void excuteJob(String jobConfig) {
    log.info("开始用户对角色信息同步......");

    String info[] = EasyUtils.split(jobConfig, "@");
    if (info.length < 2) {
      log.info("用户对角色信息同步的配置信息有误。" + jobConfig);
      return;
    }

    String sql = info[0];
    String dataSource = info[1];
    Date fromDay = DateUtil.subDays(DateUtil.today(), 3);

    List<Map<String, Object>> list = SQLExcutor.query(dataSource, sql, fromDay, fromDay);
    List<Object[]> addList = new ArrayList<Object[]>();
    List<Object[]> delList = new ArrayList<Object[]>();

    for (Map<String, Object> item : list) {
      Long user = EasyUtils.obj2Long(item.get("user"));
      String[] role1 = EasyUtils.obj2String(item.get("role1")).split(","); // 需要新增的用户角色关系
      String[] role2 = EasyUtils.obj2String(item.get("role2")).split(","); // 需要删除的用户角色关系

      for (String role : role1) {
        if (!EasyUtils.isNullOrEmpty(role)) {
          Long _role = EasyUtils.obj2Long(role);
          if (getCount(user, _role) == 0) {
            addList.add(new Object[] {user, _role});
          }
        }
      }

      for (String role : role2) {
        if (!EasyUtils.isNullOrEmpty(role)) {
          Long _role = EasyUtils.obj2Long(role);
          delList.add(new Object[] {user, _role});
        }
      }
    }

    SQLExcutor.excuteBatchII(insertSQL, addList, DMConstants.LOCAL_CONN_POOL);
    SQLExcutor.excuteBatchII(deleteSQL, delList, DMConstants.LOCAL_CONN_POOL);

    log.info("完成用户对角色信息同步。");
  }
Пример #2
0
  public TreeNode parse(Object data) {
    List<Group> mainAndAssistantGroups = (List<Group>) data;

    TreeNode root = new TreeNode();
    Map<Long, TreeNode> treeNodeMap = new HashMap<Long, TreeNode>();

    // 解析主用户组和辅助用户组
    if (!EasyUtils.isNullOrEmpty(mainAndAssistantGroups)) {
      for (Group group : mainAndAssistantGroups) {
        TreeNode item = new TreeNode(group);
        treeNodeMap.put(group.getId(), item);
      }

      parserGroup(root, (List<Group>) mainAndAssistantGroups, treeNodeMap);
    }

    return root;
  }