如何访问同一类java中另一个函数内部的列表

uurv41yg  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(351)

我在java控制器层中做了一个post和getMap。postMap从前端收集数据,例如开始日期、结束日期和访客数。
在服务层中,第一个函数过滤可用的公寓。但是,我想做一个getMap,它可以访问可用公寓的列表,这样就可以显示在前端。我在服务层用第二个函数尝试了这个。不幸的是,这个函数只显示整个公寓列表。有人知道我如何得到一个函数,可以从第一个函数访问列表,这样我就可以显示过滤后的可用公寓吗?
公寓控制器层

@PostMapping(value = "api/availableapartments")
    public List<Apartment> getAvailableApartments(@RequestBody String request)throws JSONException, ParseException {
        JSONObject jsonObject = new JSONObject(request);
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date startDate = format.parse(String.valueOf(jsonObject.getString("startDate")));
        Date endDate = format.parse(String.valueOf(jsonObject.getString("endDate")));
        Integer numberOfBeds =  Integer.parseInt(String.valueOf(jsonObject.getString("numberOfBeds")));
        return apartmentService.getAvailableApartments(numberOfBeds, startDate, endDate);
    }

    @GetMapping(value = "api/availableapartments")
    public List<Apartment> getAvailableApartments(){
        return apartmentService.getAllAvailableApartments();
    }

公寓服务层

public class ApartmentService  {

 public List<Apartment> getAvailableApartments(Integer requestedBeds, Date startDate, Date endDate){

        List<Apartment> allApartments = apartmentRepository.findAll();

        List<Apartment> availableApartments = new ArrayList<>();
            //going through all apartments
            for(Apartment apartment : allApartments){

                if(apartment.getAvailableBeds() >= requestedBeds){
                    if(reservationService.checkAvailability(apartment, startDate, endDate)){
                        availableApartments.add(apartment);
                    }

                }

            }
            return availableApartments;
    }

    public List<Apartment> getAllAvailableApartments(){
        List<Apartment> allApartments = apartmentRepository.findAll();

        List<Apartment> allAvailableApartments = new ArrayList<>();

        for(Apartment apartments : allApartments){
            System.out.println(apartments.getApartmentId());
            allAvailableApartments.add(apartments);

        }

        return allAvailableApartments;

    }
}
xzabzqsa

xzabzqsa1#

我不确定我是否完全理解了这个问题,但是在这个场景中,最好不要仅仅使用post请求来发布包含一些搜索参数的对象。
应该使用带有参数的get来进行过滤,而不是post。这样,您就可以在get请求中进行过滤,而不需要“访问post”请求。
看看这里

相关问题