【发布时间】:2020-12-24 17:01:33
【问题描述】:
我发了一个帖子并在我的 java 控制器层中获取映射。后映射从前端收集开始日期、结束日期和客人数量等数据。
在服务层内,第一个函数过滤可用的公寓。但是,我想制作一个可以访问可用公寓列表的获取映射,以便可以将其显示在前端。我在第二个功能的服务层尝试了这个。不幸的是,此功能仅显示整个公寓列表。有谁知道我如何获得一个可以从第一个函数访问列表的函数,以便我可以显示过滤后的可用公寓?
公寓控制器层
@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;
}
}
```
【问题讨论】: