import org.joda.time.DateTime; //导入方法依赖的package包/类
private DailyMenu createOrderedDailyMenu(LocalDate currentDay, Long reqUserid) throws ApiException {
com.jrtechnologies.yum.data.entity.User user = getUserOfDailyOrder(reqUserid);
com.jrtechnologies.yum.data.entity.DailyMenu dailyMenuEntity = dailyMenuRepo.findByDate(currentDay);
DailyMenu dailyMenu = new DailyMenu();
if (dailyMenuEntity == null) {
return dailyMenu;
}
com.jrtechnologies.yum.data.entity.DailyOrder dailyOrderEntity = dailyOrderRepo.findByUserIdAndDailyMenuId(user.getId(), dailyMenuEntity.getId());
DateTime deadline = getDeadline(currentDay);
dailyMenu.setLastOrderDateTime(deadline);
if (dailyOrderEntity != null) {
dailyMenu.setId(dailyMenuEntity.getId());
dailyMenu.setDate(dailyMenuEntity.getDate());
dailyMenu.setOrderId(dailyOrderEntity.getDailyOrderId());
LastEdit lastEdit = new LastEdit();
lastEdit.setTimeStamp(dailyMenuEntity.getLastEdit());
lastEdit.setVersion(dailyMenuEntity.getVersion());
dailyMenu.setLastEdit(lastEdit);
//Boolean finalisedDailyOrder = deadline.compareTo(LocalDateTime.now())<0;
Boolean finalisedDailyOrder = deadline.compareTo(DateTime.now(DateTimeZone.UTC))<0;
dailyOrderEntity.setFinalised(finalisedDailyOrder);
dailyMenu.setIsFinal(finalisedDailyOrder);
for (com.jrtechnologies.yum.data.entity.Food foodEntity : dailyMenuEntity.getFoods()) {
FoodWithQuantity foodWithQuantity = new FoodWithQuantity();
foodWithQuantity.setFood(createFood(foodEntity)); //Create and add food in foodWithQuantity.
OrderItemId orderItemId = new OrderItemId();
orderItemId.setDailyOrderId(dailyOrderEntity.getDailyOrderId());
orderItemId.setFoodId(foodEntity.getId());
com.jrtechnologies.yum.data.entity.OrderItem orderItemEntity = orderItemRepo.findById(orderItemId);
if (orderItemEntity != null) { //Check the food how many times is ordered.
foodWithQuantity.setQuantity(orderItemEntity.getQuantity());
} else {
foodWithQuantity.setQuantity(0);
}
dailyMenu.addFoodsItem(foodWithQuantity); //Add the food in daily menu.
}
} else if (deadline.compareTo(DateTime.now(DateTimeZone.UTC))>0) {
dailyMenuEntity.setFinalised(false);
dailyMenu.setDate(dailyMenuEntity.getDate());
dailyMenu.setIsFinal(false);
}
return dailyMenu;
}