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 @@