|
|
@@ -316,80 +316,82 @@ public class articleTweetAction extends BaseController implements ModelDriven<Ar
|
|
|
List<String> hotelIds = user.getCollect_hotel() == null ? new ArrayList<>() : Arrays.asList(user.getCollect_hotel().split(","));
|
|
|
String sql = "id in (" + data.getHotelId() + ")";
|
|
|
List<HotelVo> hotels = articleTweetService.queryHotels(sql);
|
|
|
- List<HotelListVo> hotelDatas = new ArrayList<>();
|
|
|
-
|
|
|
- //region 最低价
|
|
|
- List<Integer> managerIds = hotels.stream().map(HotelVo::getManagerId).collect(Collectors.toList());
|
|
|
- List<HotelPriceDataVo> prices = housePriceService.queryHotelPriceDatas(StringUtils.join(managerIds, ","), TimeExchange.getDateStr());
|
|
|
-
|
|
|
- List<HotelPriceOneDataVo> oneDatas = new ArrayList<>();
|
|
|
- //获取当天的
|
|
|
- for (HotelPriceDataVo hp : prices) {
|
|
|
- HotelPriceOneDataVo oneData = new HotelPriceOneDataVo();
|
|
|
- oneData.setSetDate(TimeExchange.getDateStr());
|
|
|
- oneData.setCreateDate(hp.getCreateDate());
|
|
|
- oneData.setPrice(hp.getPrice());
|
|
|
- oneData.setManagerId(hp.getManagerId());
|
|
|
- oneDatas.add(oneData);
|
|
|
- }
|
|
|
+ if(hotels != null){
|
|
|
+ List<HotelListVo> hotelDatas = new ArrayList<>();
|
|
|
+
|
|
|
+ //region 最低价
|
|
|
+ List<Integer> managerIds = hotels == null ? new ArrayList<>() : hotels.stream().map(HotelVo::getManagerId).collect(Collectors.toList());
|
|
|
+ List<HotelPriceDataVo> prices = housePriceService.queryHotelPriceDatas(StringUtils.join(managerIds, ","), TimeExchange.getDateStr());
|
|
|
+
|
|
|
+ List<HotelPriceOneDataVo> oneDatas = new ArrayList<>();
|
|
|
+ //获取当天的
|
|
|
+ for (HotelPriceDataVo hp : prices) {
|
|
|
+ HotelPriceOneDataVo oneData = new HotelPriceOneDataVo();
|
|
|
+ oneData.setSetDate(TimeExchange.getDateStr());
|
|
|
+ oneData.setCreateDate(hp.getCreateDate());
|
|
|
+ oneData.setPrice(hp.getPrice());
|
|
|
+ oneData.setManagerId(hp.getManagerId());
|
|
|
+ oneDatas.add(oneData);
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 根据房型ID处理重复的数据
|
|
|
- */
|
|
|
- List<HotelPriceOneDataVo> newOneDatas = new ArrayList<>();
|
|
|
- if (oneDatas.size() > 0) {
|
|
|
- for (Integer managerId : managerIds) {
|
|
|
- Optional<HotelPriceOneDataVo> one = oneDatas.stream().filter(e -> e.getManagerId().equals(managerId)).sorted(Comparator.comparing(HotelPriceOneDataVo::getCreateDate, Comparator.reverseOrder())).findFirst();
|
|
|
- if (one != null && one.isPresent()) {
|
|
|
- HotelPriceOneDataVo oneData = new HotelPriceOneDataVo();
|
|
|
- oneData.setSetDate(one.get().getSetDate());
|
|
|
- oneData.setCreateDate(one.get().getCreateDate());
|
|
|
- oneData.setPrice(one.get().getPrice());
|
|
|
- oneData.setManagerId(one.get().getManagerId());
|
|
|
- newOneDatas.add(oneData);
|
|
|
+ /**
|
|
|
+ * 根据房型ID处理重复的数据
|
|
|
+ */
|
|
|
+ List<HotelPriceOneDataVo> newOneDatas = new ArrayList<>();
|
|
|
+ if (oneDatas.size() > 0) {
|
|
|
+ for (Integer managerId : managerIds) {
|
|
|
+ Optional<HotelPriceOneDataVo> one = oneDatas.stream().filter(e -> e.getManagerId().equals(managerId)).sorted(Comparator.comparing(HotelPriceOneDataVo::getCreateDate, Comparator.reverseOrder())).findFirst();
|
|
|
+ if (one != null && one.isPresent()) {
|
|
|
+ HotelPriceOneDataVo oneData = new HotelPriceOneDataVo();
|
|
|
+ oneData.setSetDate(one.get().getSetDate());
|
|
|
+ oneData.setCreateDate(one.get().getCreateDate());
|
|
|
+ oneData.setPrice(one.get().getPrice());
|
|
|
+ oneData.setManagerId(one.get().getManagerId());
|
|
|
+ newOneDatas.add(oneData);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取商家集合中最低房型价格
|
|
|
- */
|
|
|
- List<PriceHotelDataVo> mins = houseService.gethotelMinPrice(StringUtils.join(managerIds, ","));
|
|
|
- DecimalFormat decimalFormat = new DecimalFormat("#####.##");
|
|
|
- //endregion
|
|
|
|
|
|
- for (HotelVo hotel : hotels) {
|
|
|
- HotelListVo hotelData = new HotelListVo();
|
|
|
- hotelData.setId(hotel.getId());
|
|
|
- hotelData.setName(hotel.getName());
|
|
|
- hotelData.setScore(hotel.getScore());
|
|
|
- hotelData.setCoverImg(hotel.getCoverImg());
|
|
|
- hotelData.setComment(hotel.getComment());
|
|
|
- //是否收藏
|
|
|
- Optional<String> hotelId = hotelIds.stream().filter(e -> e.equals(hotel.getId().toString())).findFirst();
|
|
|
- if (hotelId != null && hotelId.isPresent()) {
|
|
|
- hotelData.setIsCollect(1);
|
|
|
- } else {
|
|
|
- hotelData.setIsCollect(0);
|
|
|
- }
|
|
|
- hotelData.setType(hotel.getType());
|
|
|
- //价格
|
|
|
- Optional<HotelPriceOneDataVo> one = newOneDatas.stream().filter(e -> e.getManagerId().equals(hotel.getManagerId())).findFirst();
|
|
|
- Optional<PriceHotelDataVo> min = mins.stream().filter(e -> e.getManagerId().equals(hotel.getManagerId())).findFirst();
|
|
|
- if (one != null && one.isPresent() && min != null && min.isPresent()) {
|
|
|
- if (one.get().getPrice() > min.get().getPrice()) {
|
|
|
- hotelData.setPrice(decimalFormat.format(min.get().getPrice()));
|
|
|
+ /**
|
|
|
+ * 获取商家集合中最低房型价格
|
|
|
+ */
|
|
|
+ List<PriceHotelDataVo> mins = houseService.gethotelMinPrice(StringUtils.join(managerIds, ","));
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("#####.##");
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ for (HotelVo hotel : hotels) {
|
|
|
+ HotelListVo hotelData = new HotelListVo();
|
|
|
+ hotelData.setId(hotel.getId());
|
|
|
+ hotelData.setName(hotel.getName());
|
|
|
+ hotelData.setScore(hotel.getScore());
|
|
|
+ hotelData.setCoverImg(hotel.getCoverImg());
|
|
|
+ hotelData.setComment(hotel.getComment());
|
|
|
+ //是否收藏
|
|
|
+ Optional<String> hotelId = hotelIds.stream().filter(e -> e.equals(hotel.getId().toString())).findFirst();
|
|
|
+ if (hotelId != null && hotelId.isPresent()) {
|
|
|
+ hotelData.setIsCollect(1);
|
|
|
} else {
|
|
|
- hotelData.setPrice(decimalFormat.format(one.get().getPrice()));
|
|
|
+ hotelData.setIsCollect(0);
|
|
|
}
|
|
|
- } else {
|
|
|
- if (min != null && min.isPresent()) {
|
|
|
- hotelData.setPrice(decimalFormat.format(min.get().getPrice()));
|
|
|
+ hotelData.setType(hotel.getType());
|
|
|
+ //价格
|
|
|
+ Optional<HotelPriceOneDataVo> one = newOneDatas.stream().filter(e -> e.getManagerId().equals(hotel.getManagerId())).findFirst();
|
|
|
+ Optional<PriceHotelDataVo> min = mins.stream().filter(e -> e.getManagerId().equals(hotel.getManagerId())).findFirst();
|
|
|
+ if (one != null && one.isPresent() && min != null && min.isPresent()) {
|
|
|
+ if (one.get().getPrice() > min.get().getPrice()) {
|
|
|
+ hotelData.setPrice(decimalFormat.format(min.get().getPrice()));
|
|
|
+ } else {
|
|
|
+ hotelData.setPrice(decimalFormat.format(one.get().getPrice()));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (min != null && min.isPresent()) {
|
|
|
+ hotelData.setPrice(decimalFormat.format(min.get().getPrice()));
|
|
|
+ }
|
|
|
}
|
|
|
+ hotelDatas.add(hotelData);
|
|
|
}
|
|
|
- hotelDatas.add(hotelData);
|
|
|
+ result.setHotels(hotelDatas);
|
|
|
}
|
|
|
- result.setHotels(hotelDatas);
|
|
|
//endregion
|
|
|
|
|
|
List<LikeListVo> likes = articleTweetService.queryArticleLikes(articleTweetDto.getId());
|