From fa44bf6052ee49f1c9f48522097e9ecd075061a4 Mon Sep 17 00:00:00 2001 From: TakahashiNg <83152264+TakahashiNguyen@users.noreply.github.com> Date: Tue, 12 May 2026 02:15:45 +0000 Subject: [PATCH] chore: update --- .../com/drinkool/entities/ManagerEntity.java | 2 +- .../com/drinkool/services/ManagerService.java | 39 +++++++++++++++++-- .../controllers/ManagerController.java | 23 +++++++++++ .../src/main/resources/application.properties | 1 + .../com/drinkool/services/EateryService.java | 16 ++++---- 5 files changed, 68 insertions(+), 13 deletions(-) create mode 100644 cart-service/src/main/java/com/drinkool/controllers/ManagerController.java diff --git a/account-service/src/main/java/com/drinkool/entities/ManagerEntity.java b/account-service/src/main/java/com/drinkool/entities/ManagerEntity.java index f7bf0f3..8649b9c 100644 --- a/account-service/src/main/java/com/drinkool/entities/ManagerEntity.java +++ b/account-service/src/main/java/com/drinkool/entities/ManagerEntity.java @@ -19,7 +19,7 @@ public class ManagerEntity extends UserModel { public List staffs = new ArrayList<>(); @Column(nullable = true) - String bankAccount; + public String bankAccount; public ManagerEntity() { super(Role.Manager); diff --git a/account-service/src/main/java/com/drinkool/services/ManagerService.java b/account-service/src/main/java/com/drinkool/services/ManagerService.java index 37caedc..e22f021 100644 --- a/account-service/src/main/java/com/drinkool/services/ManagerService.java +++ b/account-service/src/main/java/com/drinkool/services/ManagerService.java @@ -28,7 +28,12 @@ public class ManagerService extends BaseService { public Response signup(ManagerSignup input) { ManagerEntity newManager = new ManagerEntity(); - newManager.signup(input.name, input.phone, input.bankAccount, input.password); + newManager.signup( + input.name, + input.phone, + input.bankAccount, + input.password + ); ManagerCreate message = new ManagerCreate(); message.id = newManager.id; @@ -68,8 +73,34 @@ public class ManagerService extends BaseService { } @GET - @Path("/{id}") - public Response getManagerById(@PathParam("id") UUID id) { - return Response.ok(ManagerEntity.findById(id)).build(); + @Path("/{id}/payment-qr") + public Response getManagerPaymentQr( + @PathParam("id") UUID id, + @QueryParam("amount") Long amount, + @QueryParam("cartId") String cartId + ) { + ManagerEntity manager = ManagerEntity.findById(id); + if (manager == null) { + return Response.status(Response.Status.NOT_FOUND) + .entity("ManagerNotFound") + .build(); + } + + if (manager.bankAccount == null || manager.bankAccount.isEmpty()) { + return Response.status(Response.Status.BAD_REQUEST) + .entity("ManagerHasNotConfiguredBankInfo") + .build(); + } + + String description = cartId; + + return Response.ok( + String.format( + "https://img.vietqr.io/image/%s-compact.png?amount=%d&addInfo=%s", + manager.bankAccount, + amount, + description + ) + ).build(); } } diff --git a/cart-service/src/main/java/com/drinkool/controllers/ManagerController.java b/cart-service/src/main/java/com/drinkool/controllers/ManagerController.java new file mode 100644 index 0000000..968bcb4 --- /dev/null +++ b/cart-service/src/main/java/com/drinkool/controllers/ManagerController.java @@ -0,0 +1,23 @@ +package com.drinkool.controllers; + +import com.drinkool.Role; +import io.smallrye.mutiny.Uni; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Response; +import java.util.UUID; +import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; + +@RegisterRestClient(configKey = "eatery") +@Path(Role.Manager) +public interface ManagerController { + @GET + @Path(Role.Manager + "/{id}/payment-qr") + public Uni getManagerPaymentQr( + @PathParam("id") UUID id, + @QueryParam("amount") Long amount, + @QueryParam("cartId") String cartId + ); +} diff --git a/cart-service/src/main/resources/application.properties b/cart-service/src/main/resources/application.properties index 71ca8f2..78018a6 100644 --- a/cart-service/src/main/resources/application.properties +++ b/cart-service/src/main/resources/application.properties @@ -21,3 +21,4 @@ quarkus.redis.hosts=redis://${REDIS_SERVICE_SERVICE_HOST:localhost}:${REDIS_SERV # Rest Client quarkus.rest-client.eatery.url=http://eatery-service +quarkus.rest-client.account.url=http://account-service diff --git a/eatery-service/src/main/java/com/drinkool/services/EateryService.java b/eatery-service/src/main/java/com/drinkool/services/EateryService.java index c35f727..c81c9cb 100644 --- a/eatery-service/src/main/java/com/drinkool/services/EateryService.java +++ b/eatery-service/src/main/java/com/drinkool/services/EateryService.java @@ -63,23 +63,23 @@ public class EateryService { @GET @Path("/{eateryId}/{menuItemId}") - public Response checkMenuItemExists( + public Response getMenuItemPrice( @PathParam("eateryId") UUID eateryId, @PathParam("menuItemId") UUID menuItemId ) { - long count = MenuItemEntity.find( - "id = ?2 and eatery.id = ?1", - eateryId, - menuItemId - ).count(); + MenuItemEntity menuItem = MenuItemEntity.find( + "id = ?1 and eatery.id = ?2", + menuItemId, + eateryId + ).firstResult(); - if (count == 0) { + if (menuItem == null) { return Response.status(Response.Status.NOT_FOUND) .entity("NotFoundMenuItem") .build(); } - return Response.ok().build(); + return Response.ok(menuItem.price).build(); } @Incoming("manager-in")