|
|
@@ -127,6 +127,180 @@ public class AppHomePageAction extends ActionSupport implements ServletRequestAw
|
|
|
|
|
|
|
|
|
/**
|
|
|
+ * 进入首页,展示优选民宿数据列表
|
|
|
+ * 优选按总评分倒序排序
|
|
|
+ * queryValue 查询字段
|
|
|
+ * hotel_townshipId 所属乡镇
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String preferredPage() {
|
|
|
+ // 获取民宿列表
|
|
|
+ IPage<Hotel> iPage = appHomePageService.getPreferredHotelList(queryValue, hotel_township, type, page, rows);
|
|
|
+ if (iPage.getPageList() != null && iPage.getPageList().size() > 0) {
|
|
|
+ List<Integer> managerIds = iPage.getPageList().stream().map(Hotel::getManagerId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //2023-09-22 A-jax 获取最低价
|
|
|
+ if (managerIds.size() > 0) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取商家集合中最低房型价格
|
|
|
+ */
|
|
|
+ List<PriceHotelDataVo> mins = houseService.gethotelMinPrice(StringUtils.join(managerIds, ","));
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("#####.##");
|
|
|
+ for (Hotel hotel : iPage.getPageList()) {
|
|
|
+ //2023-11-09 A-jax 获取剩余房间数
|
|
|
+ List<OwnerHouseDto> result = adminManagerService.getTotalManageCount(hotel_township, type);
|
|
|
+ if(result != null && result.size() > 0){
|
|
|
+ Optional<OwnerHouseDto> mhd = result.stream().filter(e -> e.getManagerId().equals(hotel.getManagerId())).findFirst();
|
|
|
+ if(mhd != null && mhd.isPresent()){
|
|
|
+ hotel.setRoomNumber(mhd.get().getResidueHouseNum());
|
|
|
+ hotel.setRoom_number_calc(mhd.get().getTotalHouseNum().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 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()){
|
|
|
+ hotel.setMin_price(decimalFormat.format(min.get().getPrice()));
|
|
|
+ }else {
|
|
|
+ hotel.setMin_price(decimalFormat.format(one.get().getPrice()));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (min != null && min.isPresent()) {
|
|
|
+ hotel.setMin_price(decimalFormat.format(min.get().getPrice()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 用户访问量数据
|
|
|
+ userVisitsDao.add(userId);
|
|
|
+ ResponseUtil.writeJsonIPage(ServletActionContext.getResponse(), iPage);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 进入首页,展示精选民宿数据列表
|
|
|
+ * 精选按总销售量倒序排序
|
|
|
+ * queryValue 查询字段
|
|
|
+ * hotel_townshipId 所属乡镇
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String selectedPage() {
|
|
|
+ // 获取民宿列表
|
|
|
+ IPage<Hotel> iPage = appHomePageService.getSelectedHotelList(queryValue, hotel_township, type, page, rows);
|
|
|
+ if (iPage.getPageList() != null && iPage.getPageList().size() > 0) {
|
|
|
+ List<Integer> managerIds = iPage.getPageList().stream().map(Hotel::getManagerId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //2023-09-22 A-jax 获取最低价
|
|
|
+ if (managerIds.size() > 0) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取商家集合中最低房型价格
|
|
|
+ */
|
|
|
+ List<PriceHotelDataVo> mins = houseService.gethotelMinPrice(StringUtils.join(managerIds, ","));
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("#####.##");
|
|
|
+ for (Hotel hotel : iPage.getPageList()) {
|
|
|
+ //2023-11-09 A-jax 获取剩余房间数
|
|
|
+ List<OwnerHouseDto> result = adminManagerService.getTotalManageCount(hotel_township, type);
|
|
|
+ if(result != null && result.size() > 0){
|
|
|
+ Optional<OwnerHouseDto> mhd = result.stream().filter(e -> e.getManagerId().equals(hotel.getManagerId())).findFirst();
|
|
|
+ if(mhd != null && mhd.isPresent()){
|
|
|
+ hotel.setRoomNumber(mhd.get().getResidueHouseNum());
|
|
|
+ hotel.setRoom_number_calc(mhd.get().getTotalHouseNum().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 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()){
|
|
|
+ hotel.setMin_price(decimalFormat.format(min.get().getPrice()));
|
|
|
+ }else {
|
|
|
+ hotel.setMin_price(decimalFormat.format(one.get().getPrice()));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (min != null && min.isPresent()) {
|
|
|
+ hotel.setMin_price(decimalFormat.format(min.get().getPrice()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 用户访问量数据
|
|
|
+ userVisitsDao.add(userId);
|
|
|
+ ResponseUtil.writeJsonIPage(ServletActionContext.getResponse(), iPage);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 进入首页,展示民宿数据列表
|
|
|
* queryValue 查询字段
|
|
|
* hotel_townshipId 所属乡镇
|