diff --git a/backend/__debug_bin3277441022 b/backend/__debug_bin3277441022
new file mode 100755
index 0000000..26d1c22
Binary files /dev/null and b/backend/__debug_bin3277441022 differ
diff --git a/backend/__debug_bin746813113 b/backend/__debug_bin746813113
deleted file mode 100644
index e69de29..0000000
diff --git a/backend/modules/users/controller.go b/backend/modules/users/controller.go
index 5517b03..c9eea0f 100644
--- a/backend/modules/users/controller.go
+++ b/backend/modules/users/controller.go
@@ -2,6 +2,7 @@ package users
import (
"backend/pkg/consts"
+ "backend/pkg/errorx"
"backend/providers/jwt"
"github.com/gofiber/fiber/v3"
@@ -56,3 +57,38 @@ func (c *Controller) Info(ctx fiber.Ctx) error {
return ctx.JSON(info)
}
+
+func (c *Controller) GetChargeCodes(ctx fiber.Ctx) error {
+ claim := fiber.Locals[*jwt.Claims](ctx, consts.CtxKeyClaim)
+ log.Debug(claim)
+
+ tenant, err := c.svc.GetTenantByID(ctx.Context(), claim.TenantID)
+ if err != nil {
+ return errors.Wrapf(err, "get tenant: %d", claim.TenantID)
+ }
+
+ if tenant.BindUserID != claim.UserID {
+ return errorx.RequestParseError
+ }
+
+ type generateCode struct {
+ Amount int64 `json:"amount"`
+ Code string `json:"code"`
+ }
+
+ amount := []int64{1, 5, 10, 20, 50, 100}
+ codes := []generateCode{}
+ for _, a := range amount {
+ code, err := c.svc.GenerateChargeCode(ctx.Context(), claim.TenantID, a*100)
+ if err != nil {
+ log.WithError(err).Errorf("generate charge code")
+ return errorx.InternalError
+ }
+ codes = append(codes, generateCode{
+ Amount: a * 100,
+ Code: code,
+ })
+ }
+
+ return ctx.JSON(codes)
+}
diff --git a/backend/modules/users/router.go b/backend/modules/users/router.go
index 8a7c808..80f33bf 100755
--- a/backend/modules/users/router.go
+++ b/backend/modules/users/router.go
@@ -28,4 +28,5 @@ func (r *Router) Register(router fiber.Router) {
group := router.Group(r.Name())
group.Get("info", r.controller.Info)
group.Patch("charge/:code", r.controller.Charge)
+ group.Get("codes", r.controller.GetChargeCodes)
}
diff --git a/frontend/src/views/tabs/UserView.vue b/frontend/src/views/tabs/UserView.vue
index 9521bd1..ea72ab1 100644
--- a/frontend/src/views/tabs/UserView.vue
+++ b/frontend/src/views/tabs/UserView.vue
@@ -11,6 +11,9 @@
+
+
+
@@ -19,12 +22,17 @@