/** * b2b取消优惠立减功能 * * @param hotelPageForWebBean * @return */ public HotelPageForWebBean setBenefitFlagAllFlase(HotelPageForWebBean hotelPageForWebBean) { List<QueryHotelForWebResult> resultList = hotelPageForWebBean.getList(); for (QueryHotelForWebResult queryHotelResult : resultList) { if (queryHotelResult.getHasBenefit() > 0) { queryHotelResult.setHasBenefit(0); } List<QueryHotelForWebRoomType> roomTypeList = queryHotelResult.getRoomTypes(); for (QueryHotelForWebRoomType roomTypes : roomTypeList) { if (roomTypes.getBenefitAmount() > 0) { roomTypes.setBenefitAmount(0); } } } return hotelPageForWebBean; }
/** * 判断是否是预付并且是底价支付 * * @param hotelPageForWebBean * @param inDate 入住的第一天 * @return */ public HotelPageForWebBean judgeB2BIncrease( HotelPageForWebBean hotelPageForWebBean, Date inDate, Date outDate) { List<QueryHotelForWebResult> resultList = hotelPageForWebBean.getList(); //// boolean flag = judgeFavourableFlag(resultList); 如果同时查询多家酒店 这里做判断就是错误的 //// if(flag) return hotelPageForWebBean; // // List<Long> minPriceParams=new ArrayList<Long>(); //判断是否是底价支付的查询参数 // // //如果是底价支付 根据 价格类型ID 入住日期 查询底价 // List<Long> hotelIdParams=new ArrayList<Long>(); //酒店ID // List<Long> priceTypeIdParams = new ArrayList<Long>(); //价格类型ID // // //封装查询参数 // for(QueryHotelForWebResult queryHotelForWebResult:resultList){ // for(QueryHotelForWebRoomType // queryHotelForWebRoomType:queryHotelForWebResult.getRoomTypes()){ // //判断优惠信息 // if(queryHotelForWebRoomType.getFk() == 1){ // if(judgeFavurable(queryHotelForWebRoomType.getItemsList())) continue; //如果有优惠信息 // }else if(queryHotelForWebRoomType.getFk() == 3){ // if(judgeFavurable(queryHotelForWebRoomType.getSaleItems())) continue; //如果有优惠信息 // } // //中旅房型,并且是预付的也适应该规则(低价+加幅) // if(queryHotelForWebRoomType.getRoomChannel() == // 8&&(queryHotelForWebRoomType.getFk()==1||queryHotelForWebRoomType.getFk()==3)){ // //封装查询参数(价格类型ID) // // if(!priceTypeIdParams.contains(Long.valueOf(queryHotelForWebRoomType.getChildRoomTypeId()))) // priceTypeIdParams.add(Long.valueOf(queryHotelForWebRoomType.getChildRoomTypeId())); // // if(!hotelIdParams.contains(queryHotelForWebResult.getHotelId())) // hotelIdParams.add(queryHotelForWebResult.getHotelId()); // }else{ // if(queryHotelForWebRoomType.getFk()==1||queryHotelForWebRoomType.getFk()==3){ //判断为预付的 // //step1 根据酒店ID和可售日期查询是否为底价支付 (为了提高效率将ID封装为集合一起查询) // long hotelId = queryHotelForWebResult.getHotelId(); // if(!minPriceParams.contains(hotelId)) minPriceParams.add(hotelId); // } // } // } // } // // if(minPriceParams.size() > 0){ // //step 根据查询参数得到哪些酒店的哪些价格类型是底价支付的 数组中Object[]{1:酒店ID 2:价格类型ID} // List<Object[]> isMinPriceList=htlB2bDao.queryMinPrice(minPriceParams,inDate); // if(isMinPriceList.size()>0){ // for(QueryHotelForWebResult queryHotelForWebResult:resultList){ // for(QueryHotelForWebRoomType // queryHotelForWebRoomType:queryHotelForWebResult.getRoomTypes()){ // //判断优惠信息 // if(queryHotelForWebRoomType.getFk() == 1){ // if(judgeFavurable(queryHotelForWebRoomType.getItemsList())) continue; //如果有优惠信息 // }else if(queryHotelForWebRoomType.getFk() == 3){ // if(judgeFavurable(queryHotelForWebRoomType.getSaleItems())) continue; //如果有优惠信息 // } // for(Object[] obj: isMinPriceList){ // if(queryHotelForWebRoomType.getChildRoomTypeId().equals(obj[1].toString())){ //价格类型相等 // //queryHotelForWebRoomType.setJudgeMinPrice(true); //设置为底价支付 // //封装查询参数(价格类型ID) // // if(!priceTypeIdParams.contains(Long.valueOf(queryHotelForWebRoomType.getChildRoomTypeId()))) // priceTypeIdParams.add(Long.valueOf(queryHotelForWebRoomType.getChildRoomTypeId())); // // if(!hotelIdParams.contains(queryHotelForWebResult.getHotelId())) // hotelIdParams.add(queryHotelForWebResult.getHotelId()); // } // } // } // } // } // } // // List<Date> listDate = (List<Date>)com.mangocity.util.DateUtil.getDates(inDate, outDate); // //根据住店日期和离店日期计算 // // if(hotelIdParams.size()>0&&priceTypeIdParams.size()>0){ // List<HtlB2bIncrease> htlB2bIncreases= htlB2bDao.queryIncreasePrice(hotelIdParams, // priceTypeIdParams, inDate, outDate); // if(htlB2bIncreases.size()>0){ // //酒店级别 // for(QueryHotelForWebResult queryHotelForWebResult:resultList){ // //价格类型的级别 // for(QueryHotelForWebRoomType // queryHotelForWebRoomType:queryHotelForWebResult.getRoomTypes()){ // //判断优惠信息 // if(queryHotelForWebRoomType.getFk() == 1){ // if(judgeFavurable(queryHotelForWebRoomType.getItemsList())) continue; //如果有优惠信息 // }else if(queryHotelForWebRoomType.getFk() == 3){ // if(judgeFavurable(queryHotelForWebRoomType.getSaleItems())) continue; //如果有优惠信息 // } // // for(HtlB2bIncrease htlB2bIncrease:htlB2bIncreases){ //遍历查询得到的结果集 // if(Long.valueOf(queryHotelForWebRoomType.getChildRoomTypeId()) == // htlB2bIncrease.getPriceTypeId()){ // // 设置为底价支付 加幅表中有值才设置为底价 不应当在上面设置(方便页面出现是低价但是加幅表中没有记录的情况,而页面还是显示的是底价) // queryHotelForWebRoomType.setJudgeMinPrice(true); // // //如果是只有预付的情况 只需要更改QueryHotelForWebRoomType中的itemsList结果集 // if(queryHotelForWebRoomType.getFk() == 1){ // //这里需要遍历itemsList设置每天的价格 // List<QueryHotelForWebSaleItems> itemsList = // fillIncreasePrice(queryHotelForWebRoomType.getItemsList(),htlB2bIncrease); // queryHotelForWebRoomType.setOneDayPrice(htlB2bIncrease.getIncreasePrice()); // queryHotelForWebRoomType.setItemsList(itemsList); // }else if(queryHotelForWebRoomType.getFk() == 3){ //面预付都有的情况 只需要更改saleItems // //这里需要遍历saleItems设置每天的价格 // List<QueryHotelForWebSaleItems> saleItemsList = // fillIncreasePrice(queryHotelForWebRoomType.getSaleItems(),htlB2bIncrease); // queryHotelForWebRoomType.setOneDayPrice(htlB2bIncrease.getIncreasePrice()); // queryHotelForWebRoomType.setSaleItems(saleItemsList); // } // } // } // if(queryHotelForWebRoomType.getJudgeMinPrice()){ // //计算均价,并写入 // double totalPrice = 0; // if(queryHotelForWebRoomType.getFk() == 1){ // totalPrice = calculateTotalPrice(queryHotelForWebRoomType.getItemsList()); // queryHotelForWebRoomType.setItemsPrice(totalPrice); // } // if(queryHotelForWebRoomType.getFk() == 3){ // totalPrice = calculateTotalPrice(queryHotelForWebRoomType.getSaleItems()); // queryHotelForWebRoomType.setPrepayPrice(totalPrice); // } // if(listDate.size()>2){ // queryHotelForWebRoomType.setAvlPrice(totalPrice/(listDate.size()-1)); // } // } // // } // } // } // } // return hotelPageForWebBean; return null; }