Exemplo n.º 1
0
  public List<?> copyParam(Long paramId, Long toParamId) {
    Param copyParam = paramDao.getEntity(paramId);
    Param toParam = paramDao.getEntity(toParamId);

    Long copyParamId = copyParam.getId();
    List<?> params = paramDao.getChildrenById(copyParamId);
    Map<Long, Long> paramMapping = new HashMap<Long, Long>(); // 复制出来的新节点 与 被复制源节点 建立一一对应关系(ID 对 ID)
    for (int i = 0; i < params.size(); i++) {
      Param param = (Param) params.get(i);
      Long sourceParamId = param.getId();

      paramDao.evict(param);
      param.setId(null);
      if (sourceParamId.compareTo(copyParamId) == 0) {
        param.setParentId(toParam.getId());
        param.setSeqNo(paramDao.getNextSeqNo(toParam.getId()));
      } else {
        param.setParentId(paramMapping.get(param.getParentId()));
      }

      // 如果目标根节点是停用状态,则所有新复制出来的节点也一律为停用状态
      param.setDisabled(toParam.getDisabled());

      judgeLegit(param, ParamConstants.EDIT_FLAG);

      paramDao.create(param);
      paramMapping.put(sourceParamId, param.getId());
    }
    return params;
  }
Exemplo n.º 2
0
  private List<?> copyParamLocal(Param copyParam) {
    List<?> params = paramDao.getChildrenById(copyParam.getId());
    Map<Long, Long> paramMapping = new HashMap<Long, Long>(); // 复制出来的新节点 与 被复制源节点 建立一一对应关系(ID 对 ID)
    for (int i = 0; i < params.size(); i++) {
      Param param = (Param) params.get(i);
      Long sourceParamId = param.getId();

      paramDao.evict(param);
      param.setId(null);
      if (sourceParamId.compareTo(copyParam.getId()) == 0) { // 复制指定节点
        if (ParamConstants.GROUP_PARAM_TYPE.equals(copyParam.getType())) {
          param.setName(ParamConstants.COPY_PREFIX_NAME + copyParam.getName());
        } else if (ParamConstants.NORMAL_PARAM_TYPE.equals(copyParam.getType())) {
          param.setCode(ParamConstants.COPY_PREFIX_CODE + copyParam.getCode());
          param.setName(ParamConstants.COPY_PREFIX_NAME + copyParam.getName());
        } else {
          param.setText(ParamConstants.COPY_PREFIX_NAME + copyParam.getText());
        }
        param.setSeqNo(paramDao.getNextSeqNo(copyParam.getParentId()));
      }
      // 复制指定节点的儿孙节点
      else {
        param.setParentId(paramMapping.get(param.getParentId()));
      }

      paramDao.create(param);
      paramMapping.put(sourceParamId, param.getId());
    }
    return params;
  }
Exemplo n.º 3
0
  public void delete(Long id) {
    // 一并删除子节点
    List<?> params = paramDao.getChildrenById(id);
    for (Object entity : params) {
      Param param = (Param) entity;
      paramDao.delete(param);

      // 刷新参数缓存,如果删除的是缓存项,则需要手动的刷新其所属的参数节点
      ParamManager.remove(param.getCode());
    }
  }
Exemplo n.º 4
0
 public void startOrStop(Long paramId, Integer disabled) {
   List<?> datas =
       ParamConstants.TRUE.equals(disabled)
           ? paramDao.getChildrenById(paramId)
           : paramDao.getParentsById(paramId);
   for (int i = 0; i < datas.size(); i++) {
     Param param = (Param) datas.get(i);
     param.setDisabled(disabled);
     paramDao.updateWithoutFlush(param);
   }
   paramDao.flush();
 }
Exemplo n.º 5
0
  public void delete(Long id) {
    checkPermission(id);

    // 一并删除子节点
    List<?> children = paramDao.getChildrenById(id);
    for (Object entity : children) {
      Param item = (Param) entity;
      if (id.equals(item.getId())) {
        fireListener(item); /* 在执行delete前触发触发器,否则执行如getParentsById等查询时,因o1已经删除,将查询不到数据 */
        item = paramDao.getEntity(id);
      }
      paramDao.delete(item);
    }
  }
Exemplo n.º 6
0
  public void move(Long paramId, Long toParamId) {
    List<?> params = paramDao.getChildrenById(paramId);
    for (int i = 0; i < params.size(); i++) {
      Param param = (Param) params.get(i);
      if (param.getId().equals(paramId)) { // 判断是否是移动节点(即被移动枝的根节点)
        param.setSeqNo(paramDao.getNextSeqNo(toParamId));
        param.setParentId(toParamId);
      }

      // 如果目标根节点是停用状态,则所有新复制出来的节点也一律为停用状态
      if (toParamId.longValue() > 0) { // 非_root
        Param toParam = paramDao.getEntity(toParamId);
        param.setDisabled(toParam.getDisabled());
      }

      paramDao.update(param);
    }
  }
Exemplo n.º 7
0
  public void move(Long paramId, Long toParamId) {
    List<?> params = paramDao.getChildrenById(paramId);
    Param toParam = paramDao.getEntity(toParamId);
    for (int i = 0; i < params.size(); i++) {
      Param param = (Param) params.get(i);
      if (param.getId().equals(paramId)) { // 判断是否是移动节点(即被移动枝的根节点)
        param.setSeqNo(paramDao.getNextSeqNo(toParamId));
        param.setParentId(toParamId);
      }

      if (ParamConstants.TRUE.equals(toParam.getDisabled())) {
        param.setDisabled(ParamConstants.TRUE); // 如果目标根节点是停用状态,则所有新复制出来的节点也一律为停用状态
      }

      judgeLegit(param, ParamConstants.EDIT_FLAG);
      paramDao.update(param);
    }
  }