Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * 判断是否是预付并且是底价支付
  *
  * @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;
 }