Реализация OrdersAnalyzer # totalDailySales метод, который возвращает карту с DayOfWeek в качестве ключа и сумму заказанного количества для всех продуктов в качестве значения. Метод должен всегда возвращать карту. Если в течение нескольких дней нет заказов, пропустите запись этого дня на карте.
Ваша реализация должна вернуть следующие выходные данные, например, данные:
{
"DayOfWeek.MONDAY" : 17,
"DayOfWeek.SATURDAY" : 6,
"DayOfWeek.SUNDAY" : 9
}
Коллекция заказов:
[
{
orderId: 554,
creationDate: "2017-03-25T10:35:20", // Saturday
orderLines: [
{productId: 9872, name: 'Pencil', quantity: 3, unitPrice: 3.00}
]
},
{
orderId: 555,
creationDate: "2017-03-25T11:24:20", // Saturday
orderLines: [
{productId: 9872, name: 'Pencil', quantity: 2, unitPrice: 3.00},
{productId: 1746, name: 'Eraser', quantity: 1, unitPrice: 1.00}
]
},
{
orderId: 453,
creationDate: "2017-03-27T14:53:12", // Monday
orderLines: [
{productId: 5723, name: 'Pen', quantity: 4, unitPrice: 4.22},
{productId: 9872, name: 'Pencil', quantity: 3, unitPrice: 3.12},
{productId: 3433, name: 'Erasers Set', quantity: 1, unitPrice: 6.15}
]
},
{
orderId: 431,
creationDate: "2017-03-20T12:15:02", // Monday
orderLines: [
{productId: 5723, name: 'Pen', quantity: 7, unitPrice: 4.22},
{productId: 3433, name: 'Erasers Set', quantity: 2, unitPrice: 6.15}
]
},
{
orderId: 690,
creationDate: "2017-03-26T11:14:00", // Sunday
orderLines: [
{productId: 9872, name: 'Pencil', quantity: 4, unitPrice: 3.12},
{productId: 4098, name: 'Marker', quantity: 5, unitPrice: 4.50}
]
}
];
Вот код. Вам необходимо реализовать функцию totalDailySales:
class OrdersAnalyzer {
data class Order(val orderId: Int, val creationDate:
LocalDateTime, val orderLines: List<OrderLine>)
data class OrderLine(val productId: Int, val name: String, val
quantity: Int, val unitPrice: BigDecimal)
fun totalDailySales(orders: List<Order>): Map<DayOfWeek, Int> {
//TODO("implement the function")
}
}