chore: update
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
package com.drinkool.dtos;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.eclipse.microprofile.graphql.NonNull;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderBill {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public List<OrderItem> items;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public Double totalAmount;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public String payQr;
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.drinkool.dtos;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.eclipse.microprofile.graphql.NonNull;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderItem {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public UUID menuItemId;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public Integer quantity;
|
||||||
|
|
||||||
|
public Double price;
|
||||||
|
public Double subTotal;
|
||||||
|
}
|
||||||
@@ -4,6 +4,8 @@ import com.drinkool.InternalValue;
|
|||||||
import com.drinkool.Role;
|
import com.drinkool.Role;
|
||||||
import com.drinkool.dtos.AddMenuItem;
|
import com.drinkool.dtos.AddMenuItem;
|
||||||
import com.drinkool.dtos.DtoMapper;
|
import com.drinkool.dtos.DtoMapper;
|
||||||
|
import com.drinkool.dtos.OrderBill;
|
||||||
|
import com.drinkool.dtos.OrderItem;
|
||||||
import com.drinkool.dtos.UpdateMenuItem;
|
import com.drinkool.dtos.UpdateMenuItem;
|
||||||
import com.drinkool.entities.EateryEntity;
|
import com.drinkool.entities.EateryEntity;
|
||||||
import com.drinkool.entities.MenuItemEntity;
|
import com.drinkool.entities.MenuItemEntity;
|
||||||
@@ -17,6 +19,7 @@ import jakarta.ws.rs.GET;
|
|||||||
import jakarta.ws.rs.Path;
|
import jakarta.ws.rs.Path;
|
||||||
import jakarta.ws.rs.PathParam;
|
import jakarta.ws.rs.PathParam;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import org.eclipse.microprofile.graphql.GraphQLApi;
|
import org.eclipse.microprofile.graphql.GraphQLApi;
|
||||||
@@ -153,4 +156,35 @@ public class EateryService {
|
|||||||
|
|
||||||
return MenuItemEntity.list("eatery", eatery);
|
return MenuItemEntity.list("eatery", eatery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Query("calculateOrderSummary")
|
||||||
|
public OrderBill calculateOrderSummary(
|
||||||
|
@Name("eateryId") UUID eateryId,
|
||||||
|
@Name("items") List<OrderItem> inputItems
|
||||||
|
) {
|
||||||
|
List<OrderItem> details = new ArrayList<>();
|
||||||
|
double grandTotal = 0;
|
||||||
|
|
||||||
|
for (OrderItem input : inputItems) {
|
||||||
|
MenuItemEntity itemEntity = MenuItemEntity.find(
|
||||||
|
"id = ?1 and eatery.id = ?2",
|
||||||
|
input.menuItemId,
|
||||||
|
eateryId
|
||||||
|
).firstResult();
|
||||||
|
|
||||||
|
if (itemEntity != null) {
|
||||||
|
OrderItem detail = new OrderItem(
|
||||||
|
itemEntity.id,
|
||||||
|
input.quantity,
|
||||||
|
itemEntity.price,
|
||||||
|
itemEntity.price * input.quantity
|
||||||
|
);
|
||||||
|
|
||||||
|
details.add(detail);
|
||||||
|
grandTotal += detail.subTotal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new OrderBill(details, grandTotal, "");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,4 +3,6 @@ package com.drinkool.lib.dtos;
|
|||||||
public class ManagerSignup extends Signup {
|
public class ManagerSignup extends Signup {
|
||||||
|
|
||||||
public String eateryName;
|
public String eateryName;
|
||||||
|
|
||||||
|
public String bankAccount;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user