Пример #1
0
  private ExtractTask saveTaskRuleToContext(
      ExtractTask extractTask, String ruleRelationExp, String upperLimit, String[] ruleArrray) {

    // 根据groupId 获取客户分群对象容器类
    //	CustomGroup customGroup = context.get(groupId);
    if (StringUtils.isBlank(ruleRelationExp)) {
      extractTask.setRuleRelationExp("");
    } else {
      extractTask.setRuleRelationExp(ruleRelationExp);
    }

    if (HTMLFilter.isIntNumber(upperLimit)) {
      extractTask.setUpperLimit(Long.parseLong(upperLimit));
    } else {
      extractTask.setUpperLimit(0);
    }

    List<String[]> ruleList = new ArrayList<String[]>();
    for (int i = 0; i < ruleArrray.length; i++) {
      // [ruleCoce:120]
      // [ruleName:PROVINCE_USERINFO_D-LOGON_SOFTCLIENT_CNT]
      // [operator:<] [leftOperand:sdf][rightOperand: ]

      String ruleStr = ruleArrray[i];
      int beginIndex = ruleStr.indexOf("{");
      int endIndex = ruleStr.lastIndexOf("}");
      String[] jsonRuleArray = ruleStr.substring(beginIndex + 1, endIndex).split("',");
      ruleList.add(jsonRuleArray);
    }

    List<TaskRule> taskRuleList = new ArrayList<TaskRule>();
    // 客户群规则
    TaskRule taskRule = null;
    for (int i = 0; i < ruleList.size(); i++) {
      String[] rules = ruleList.get(i);
      taskRule = new TaskRule();
      taskRule.setId(UIDGenerator.generate().toString());
      taskRule.setExtractTask(extractTask);
      for (int j = 0; j < rules.length; j++) {
        String[] rule = rules[j].split(":'"); // ruleCode:'3265
        String key = rule[0].replaceAll("\"", "").replaceAll("'", "");
        String value = checkValue(rule);
        if ("ruleCode".equals(key)) {
          taskRule.setRuleCode(value);
        }
        if ("ruleName".equals(key)) {
          taskRule.setRuleName(value);
        }
        if ("operator".equals(key)) {
          taskRule.setOperator(value);
        }
        if ("leftOperand".equals(key)) {
          taskRule.setLeftOperand(value);
        }
        if ("rightOperand".equals(key)) {
          taskRule.setRightOperand(value);
        }
        if ("startDate".equals(key)) {
          taskRule.setStartDate(value.replaceAll("-", ""));
        }
        if ("endDate".equals(key)) {
          taskRule.setEndDate(value.replaceAll("-", ""));
        }
        if ("tableId".equals(key)) {
          taskRule.setTableId(value);
        }
        if ("clusterOpt".equals(key)) {
          taskRule.setClusterOperator(value);
        }
        if ("customTable".equals(key)) { // 存的是table的id
          CustomTable obj = new CustomTable();
          obj.setId(value);
          taskRule.setCustomTable(obj);
        }
        if ("ruleDesc".equals(key)) {
          taskRule.setRuleDesc(value);
        }
        //			logger.info("key = " + key + " value = " + value);
        System.out.println("key = " + key + " value = " + value);

        System.out.println("raskRule = " + taskRule);
      }
      CustomTable customTable =
          extractTableService.queryCustomTableAndField(
              taskRule.getCustomTable().getId(), taskRule.getRuleName());

      taskRule.setCustomTable(customTable);

      taskRuleList.add(taskRule);
    }

    extractTask.setTaskRules(taskRuleList);
    System.out.println("over json");
    // context.put(customGroup);将对象放入容器中
    return extractTask;
  }