From 9325814c64f5743ddb2e1ad27d25d08f50469f11 Mon Sep 17 00:00:00 2001 From: maslow Date: Wed, 19 Apr 2023 23:44:59 +0800 Subject: [PATCH] fix(server): avoid acct-trans addition in free order --- .../laf-server/templates/deployment.yaml | 14 ++-------- deploy/build/charts/laf-server/values.yaml | 8 +----- deploy/build/start.sh | 1 + server/Dockerfile.alpine | 27 ------------------- server/package.json | 5 ++-- server/src/account/account.controller.ts | 3 ++- server/src/constants.ts | 6 ++++- .../src/gateway/apisix-custom-cert.service.ts | 2 +- .../src/subscription/renewal-task.service.ts | 23 +++++++++------- 9 files changed, 28 insertions(+), 61 deletions(-) delete mode 100644 server/Dockerfile.alpine diff --git a/deploy/build/charts/laf-server/templates/deployment.yaml b/deploy/build/charts/laf-server/templates/deployment.yaml index 92663a6f6f..963ac7fc85 100644 --- a/deploy/build/charts/laf-server/templates/deployment.yaml +++ b/deploy/build/charts/laf-server/templates/deployment.yaml @@ -81,18 +81,8 @@ spec: value: {{ .Values.default_region.apisix_api_url }} - name: DEFAULT_REGION_APISIX_API_KEY value: {{ .Values.default_region.apisix_api_key }} - - name: CASDOOR_ENDPOINT - value: {{ .Values.casdoor.endpoint }} - - name: CASDOOR_ORG_NAME - value: {{ .Values.casdoor.org_name | quote}} - - name: CASDOOR_APP_NAME - value: {{ .Values.casdoor.app_name | quote}} - - name: CASDOOR_CLIENT_ID - value: {{ .Values.casdoor.client_id | quote}} - - name: CASDOOR_CLIENT_SECRET - value: {{ .Values.casdoor.client_secret | quote}} - - name: CASDOOR_REDIRECT_URI - value : {{ .Values.casdoor.redirect_uri | quote}} + - name: SITE_NAME + value: {{ .Values.siteName | quote}} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} diff --git a/deploy/build/charts/laf-server/values.yaml b/deploy/build/charts/laf-server/values.yaml index e7ba92ac75..a06aa06fba 100644 --- a/deploy/build/charts/laf-server/values.yaml +++ b/deploy/build/charts/laf-server/values.yaml @@ -5,6 +5,7 @@ apiServerHost: "" databaseUrl: "" apiServerUrl: "" +siteName: "laf" # init default region conf default_region: # db conf @@ -25,13 +26,6 @@ default_region: jwt: secret: laf_server_abc123 expires_in: 7d -casdoor: - endpoint: "" - client_id: a71f65e93723c436027e - client_secret: 0d7e157be08055867b81456df3c222ea7c68a097 - org_name: laf - app_name: laf - redirect_uri: http://localhost:3001/login_callback replicaCount: 1 diff --git a/deploy/build/start.sh b/deploy/build/start.sh index 57d1b8b051..6a6e3b9d85 100644 --- a/deploy/build/start.sh +++ b/deploy/build/start.sh @@ -69,6 +69,7 @@ helm install server -n ${NAMESPACE} \ --set jwt.secret=${SERVER_JWT_SECRET} \ --set apiServerHost=api.${DOMAIN} \ --set apiServerUrl=${HTTP_SCHEMA}://api.${DOMAIN} \ + --set siteName=${DOMAIN} \ --set default_region.database_url=${DATABASE_URL} \ --set default_region.minio_domain=${MINIO_DOMAIN} \ --set default_region.minio_external_endpoint=${MINIO_EXTERNAL_ENDPOINT} \ diff --git a/server/Dockerfile.alpine b/server/Dockerfile.alpine deleted file mode 100644 index 0c4693819c..0000000000 --- a/server/Dockerfile.alpine +++ /dev/null @@ -1,27 +0,0 @@ -# @see https://github.com/prisma/prisma/issues/8478#issuecomment-1095544159 -FROM positivly/prisma-binaries:latest as prisma - -FROM node:18-slim - -RUN apt-get update -RUN apt-get install -y openssl - -## Your normal build steps here - -# Set prisma environment: -ENV PRISMA_QUERY_ENGINE_BINARY=/prisma-engines/query-engine \ - PRISMA_MIGRATION_ENGINE_BINARY=/prisma-engines/migration-engine \ - PRISMA_INTROSPECTION_ENGINE_BINARY=/prisma-engines/introspection-engine \ - PRISMA_FMT_BINARY=/prisma-engines/prisma-fmt \ - PRISMA_CLI_QUERY_ENGINE_TYPE=binary \ - PRISMA_CLIENT_ENGINE_TYPE=binary -COPY --from=prisma /prisma-engines/query-engine /prisma-engines/migration-engine /prisma-engines/introspection-engine /prisma-engines/prisma-fmt /prisma-engines/ - - -EXPOSE 3000 -WORKDIR /app -COPY . /app -RUN npm install -RUN npx prisma generate --schema ./prisma/schema.prisma -RUN npm run build -CMD [ "node", "dist/main" ] \ No newline at end of file diff --git a/server/package.json b/server/package.json index a7d6708a97..4bf81bf0e6 100644 --- a/server/package.json +++ b/server/package.json @@ -1,12 +1,13 @@ { "name": "laf-server", "version": "1.0.0-beta.6", - "description": "", + "description": "laf server", "author": "maslow(wangfugen@126.com)", "private": true, - "license": "UNLICENSED", + "license": "Apache-2.0", "scripts": { "intercept": "telepresence intercept laf-server -n laf-system -p 3000:3000 -e $(pwd)/.env", + "leave": "telepresence leave laf-server-laf-system", "prebuild": "npm run generate && rimraf dist", "generate": "prisma generate", "build": "nest build", diff --git a/server/src/account/account.controller.ts b/server/src/account/account.controller.ts index c8f00553ad..920de193b9 100644 --- a/server/src/account/account.controller.ts +++ b/server/src/account/account.controller.ts @@ -22,6 +22,7 @@ import { WeChatPayOrderResponse, WeChatPayTradeState } from './payment/types' import { WeChatPayService } from './payment/wechat-pay.service' import { Response } from 'express' import * as assert from 'assert' +import { ServerConfig } from 'src/constants' @ApiTags('Account') @Controller('accounts') @@ -84,7 +85,7 @@ export class AccountController { order.id, amount, currency, - 'laf account charge', + `${ServerConfig.SITE_NAME} recharge`, ) return ResponseUtil.ok({ diff --git a/server/src/constants.ts b/server/src/constants.ts index f769612125..ddde3de419 100644 --- a/server/src/constants.ts +++ b/server/src/constants.ts @@ -68,11 +68,15 @@ export class ServerConfig { } } + static get SITE_NAME() { + return process.env.SITE_NAME || 'laf' + } + static get API_SERVER_URL() { return process.env.API_SERVER_URL || 'http://localhost:3000' } - static get certManagerIssuerName() { + static get CertManagerIssuerName() { return process.env.CERT_MANAGER_ISSUER_NAME || 'laf-issuer' } diff --git a/server/src/gateway/apisix-custom-cert.service.ts b/server/src/gateway/apisix-custom-cert.service.ts index 7273cce6fb..cf067f4c11 100644 --- a/server/src/gateway/apisix-custom-cert.service.ts +++ b/server/src/gateway/apisix-custom-cert.service.ts @@ -63,7 +63,7 @@ export class ApisixCustomCertService { secretName: website.id, dnsNames: [website.domain], issuerRef: { - name: ServerConfig.certManagerIssuerName, + name: ServerConfig.CertManagerIssuerName, kind: 'ClusterIssuer', }, }, diff --git a/server/src/subscription/renewal-task.service.ts b/server/src/subscription/renewal-task.service.ts index 2047185df3..da7440c74c 100644 --- a/server/src/subscription/renewal-task.service.ts +++ b/server/src/subscription/renewal-task.service.ts @@ -91,17 +91,20 @@ export class SubscriptionRenewalTaskService { { $inc: { balance: -priceAmount } }, { session }, ) - } - // Create account transaction - await db.collection('AccountTransaction').insertOne({ - accountId: account._id, - amount: -priceAmount, - balance: account.balance - priceAmount, - message: `subscription renewal order ${renewal._id}`, - createdAt: new Date(), - updatedAt: new Date(), - }) + // Create account transaction + await db.collection('AccountTransaction').insertOne( + { + accountId: account._id, + amount: -priceAmount, + balance: account.balance - priceAmount, + message: `subscription renewal order ${renewal._id}`, + createdAt: new Date(), + updatedAt: new Date(), + }, + { session }, + ) + } // Update subscription 'expiredAt' time await db.collection('Subscription').updateOne(