溪鸭夏 2 лет назад
Родитель
Сommit
4490afdc31
1 измененных файлов с 67 добавлено и 65 удалено
  1. 67 65
      mhotel/src/com/happy/action/articleTweetAction.java

+ 67 - 65
mhotel/src/com/happy/action/articleTweetAction.java

@@ -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());