public String viewAdjustLstByB2bCd() {
    priceLst = b2bService.getAllCommAdjustByHotelId(hotelId);
    List<CommisionAdjust> adjustList = b2bService.getDistinctCommAdjustByHotelId(hotelId); // 去重复的
    request.setAttribute("adjustList", adjustList);

    hotel = hotelManage.findHotel(hotelId); // 酒店
    roomTypePriceTypeLis = hotelManage.findRoomTypePriceTypeLis(hotelId); // 价格类型
    return "view";
  }
  /**
   * 保存佣金调整
   *
   * @return
   */
  public String saveAdjust() {
    // 防止重复提交
    if (isRepeatSubmit()) {
      return forwardError("请不要重复提交,谢谢!");
    }
    String opLogonID = CookieUtils.getCookieValue(request, "operaterId");
    opLogonID = opLogonID == null ? "" : opLogonID;
    String agentCode = CookieUtils.getCookieValue(request, "agentCode");
    agentCode = agentCode == null ? "" : agentCode;

    Map params = super.getParams();
    float hotelStar = Float.valueOf(params.get("hotelStar").toString());
    int intStar = Math.round(hotelStar);
    if (hotelStar > 10) {
      String strHotelStar =
          resourceManager.getDescription("res_hotelStarToNum", Math.round(hotelStar));
      hotelStar = Float.parseFloat(strHotelStar);
    }
    // save to db
    priceLst = MyBeanUtil.getBatchObjectFromParam(params, CommisionAdjust.class, priceRowNum);
    List<CommisionAdjust> newLst = new ArrayList();
    for (CommisionAdjust ca : priceLst) {
      // 对ca进行数据补充
      ca.setB2BCd("0");
      ca.setHotelId(hotelId);
      ca.setHotelStar(String.valueOf(intStar));
      String temp = ca.getRoomAndPricetypeTemp();
      if (null != ca && !"".equals(ca)) {
        String arr[] = temp.split("&&");
        ca.setRoomTypeId(Long.parseLong(arr[0]));
        ca.setChildRoomId(Long.parseLong(arr[1]));
      }
      ca.setCreateById(opLogonID);
      ca.setCreateBy(agentCode);
      ca.setCreateDate(new Date());
      CommisionAdjust newRecord = new CommisionAdjust();
      try {
        BeanUtils.copyProperties(newRecord, ca);
        newLst.add(newRecord);
      } catch (Exception ex) {
        log.error(ex.getMessage(), ex);
        return super.forwardError("B2bAgentCommissionAdjustAction保存错误" + ex.getMessage());
      }
    }
    b2bService.batchUpdate(newLst);
    return super.SUCCESS;
  }
  /**
   * 得到DB中已存在的日期区间
   *
   * @param ca
   * @param b2BCD
   * @return
   */
  private List<CommisionAdjust> getDateCops(CommisionAdjust ca) {
    List<CommisionAdjust> resultLst = null;
    if (null != ca) {
      String hsql =
          "select b from CommisionAdjust b where b.b2BCd='"
              + ca.getB2BCd()
              + "' and b.hotelId="
              + ca.getHotelId()
              + " and b.roomTypeId="
              + ca.getRoomTypeId()
              + " and b.childRoomId="
              + ca.getChildRoomId()
              + " and b.payType='"
              + ca.getPayType()
              + "'";

      resultLst = b2bService.getCommAdjustLst(hsql);
    }

    return resultLst;
  }
  private void adjustUtil(CommisionAdjust addComm, List<CommisionAdjust> oldComms)
      throws IllegalAccessException, InvocationTargetException {

    DateComponent dateComponent = new DateComponent();
    dateComponent.setBeginDate(addComm.getStartDate());
    dateComponent.setEndDate(addComm.getEndDate());
    List dateCops = new ArrayList();
    Map resultMap = new HashMap();
    for (int ii = 0; ii < oldComms.size(); ii++) {
      CommisionAdjust curcomm = oldComms.get(ii);
      DateComponent aComponent = new DateComponent();
      aComponent.setId(curcomm.getAdjustID());
      aComponent.setBeginDate(curcomm.getStartDate());
      aComponent.setEndDate(curcomm.getEndDate());
      dateCops.add(aComponent);
    }
    resultMap = CutDate.cut(dateComponent, CutDate.sort(dateCops));
    List removeList = (List) resultMap.get("remove");
    List updateList = (List) resultMap.get("update");
    List results = new ArrayList();
    for (int jj = 0; jj < removeList.size(); jj++) {
      DateComponent bb = (DateComponent) removeList.get(jj);
      b2bService.remove(CommisionAdjust.class, bb.getId());
    }
    // 根据拆分的时间段重新组装数据
    boolean nullFlag = false;
    for (int i = 0; i < oldComms.size(); i++) {
      CommisionAdjust aRecord = oldComms.get(i);
      int doubleFlag = 0;
      for (int j = 0; j < updateList.size(); j++) {
        DateComponent dateCop = (DateComponent) updateList.get(j);
        if (dateCop.getId() != null) {
          if (dateCop.getId().equals(aRecord.getAdjustID())) {
            doubleFlag++;
            // 如果存在多个相同的id则只有第一个id保留,其他的id都赋值为null
            if (doubleFlag > 1) {
              CommisionAdjust newRecord = new CommisionAdjust();
              BeanUtils.copyProperties(newRecord, aRecord);
              newRecord.setAdjustID(null);
              newRecord.setStartDate(dateCop.getBeginDate());
              newRecord.setEndDate(dateCop.getEndDate());
              results.add(newRecord);
            } else {
              aRecord.setStartDate(dateCop.getBeginDate());
              aRecord.setEndDate(dateCop.getEndDate());
              results.add(aRecord);
            }
          }
        } else if (nullFlag == false) {
          if (addComm.getAdjustID() != null) { // 处理修改情况				
            CommisionAdjust record = new CommisionAdjust();
            BeanUtils.copyProperties(record, addComm);
            record.setAdjustID(null);
            results.add(record);
          } else { // 处理新增情况
            results.add(addComm);
          }
          nullFlag = true;
        }
      }
    }
    b2bService.batchUpdate(results);
  }