На странице администрирования моего приложения play framework
мне нужно перечислить Product
продано между двумя датами и отобразить Product name
, quantity
продано и всего price
. Я смоделировал эту информацию вCustomerOrder
модель. Тем не менее у меня есть некоторые сомнения относительно того, какую структуру данных мне следует использовать для хранения этих вышеупомянутых данных.
Предполагается, что администратор сможет вывести данные о продажах в виде таблицы в видениже
Product Name | quantity | total amount received
===================================================
flwr vase#12 | 13 | 1250
---------------------------------------------------
lampshade#3 | 11 | 110
-----------------------------------------
Я думал о написании метода в классе Admin
, который получает CustomerOrder
s между двумя датами, и застрял при извлечении информации из CustomerOrder
.Я предполагаю, что каждое имя продукта должно быть первичным ключом таблицы. Так что я могу создать карту с именем продукта в качестве ключа. Тогда какое должно быть значение? По мере итерации по каждому CustomerOrder
я должен увеличивать количествокаждый проданный продукт и общая полученная сумма должны быть обновлены.
Общая сумма order.cartitem.qty*order.cartitem.product.price + order.tax+ order.shipping
... и я думаю, что это делает цикл немного сложным ... Может кто-нибудь посоветовать, как я могу это сделать?
public void allSalesData(Date start,Date end){
List<CustomerOrder> orders = CustomerOrder.find("select o from CustomerOrder o where o.orderDate between :startdate and :enddate").bind("startdate",start).bind("enddate",end).fetch();
//now how to extract? should I use a map ?
}
import play.db.jpa.Model;
class CustomerOrder extends Model{
...
public Customer customer;
public Date orderDate;
public Set<OrderItem> orderItems;
public BigDecimal tax;
public BigDecimal shipping;
...
}
class OrderItem extends Model {
public Product product;
public int quantity;
}
class Product extends Model{
public String name;
public BigDecimal price;
}