Просмотр исходного кода

feat(rcs-number): 添加 smspva02 并优化号码释放逻辑

- 在 rcs-number.entity.ts 中添加 smspva02 枚举值
- 在 rcs-number.service.ts 中新增 smspva 和 smspva02 实例
- 修改号码释放逻辑,
wui 10 месяцев назад
Родитель
Сommit
45887543aa

+ 1 - 0
src/rcs-number/entities/rcs-number.entity.ts

@@ -36,6 +36,7 @@ export enum RcsNumberSource {
     usapanel = 'usapanel',
     dashboard = 'dashboard',
     smspva = 'smspva',
+    smspva02 = 'smspva02',
     sms7979 = 'sms7979',
     sms797902 = 'sms797902',
     sms4verify01 = 'sms4verify01',

+ 14 - 5
src/rcs-number/impl/smspva.service.ts

@@ -3,7 +3,8 @@ import { RcsNumberSource } from '../entities/rcs-number.entity'
 import axios from 'axios'
 import { InternalServerErrorException, Logger } from '@nestjs/common'
 
-const API_KEY = 'uNW56fGr0zstfs87Xn0e1l2gCYVnb1'
+const API_KEY01 = 'uNW56fGr0zstfs87Xn0e1l2gCYVnb1'
+const API_KEY02 = 'rTTL8pZtKkQ60zjU82bvbMEP7G6XGU'
 const SERVICE = 'opt259'
 
 const axiosInstance = axios.create({
@@ -19,7 +20,15 @@ const countryMap = {
 }
 
 export class smspva extends GetNumberService {
-    source: RcsNumberSource = RcsNumberSource.smspva
+    source: RcsNumberSource
+
+    apikey: string
+
+    constructor(key: string, source: RcsNumberSource) {
+        super()
+        this.apikey = key
+        this.source = source
+    }
 
     async getNumber(country: string, num?: number): Promise<GetNumberResponse> {
         let countryCode = countryMap[country]
@@ -28,7 +37,7 @@ export class smspva extends GetNumberService {
         }
         const res = await axiosInstance.get(`number/${countryCode}/${SERVICE}`, {
             headers: {
-                apikey: API_KEY
+                apikey: this.apikey
             }
         })
 
@@ -51,7 +60,7 @@ export class smspva extends GetNumberService {
             {},
             {
                 headers: {
-                    apikey: API_KEY
+                    apikey: this.apikey
                 }
             }
         )
@@ -65,7 +74,7 @@ export class smspva extends GetNumberService {
     async retriveMessage(orderId: string, num?: number): Promise<string> {
         const res = await axiosInstance.get(`sms/${Number(orderId)}`, {
             headers: {
-                apikey: API_KEY
+                apikey: this.apikey
             }
         })
 

+ 19 - 7
src/rcs-number/rcs-number.service.ts

@@ -50,6 +50,8 @@ export class RcsNumberService {
     private sms797902: sms7979
     private sms4verify01: sms4verify
     private sms4verify02: sms4verify
+    private smspva: smspva
+    private smspva02: smspva
 
     private readonly redis: Redis | null
 
@@ -78,7 +80,6 @@ export class RcsNumberService {
         private usapanel: usapanel,
         private textverified: textverified,
         private dashboard: dashboard,
-        private smspva: smspva,
         private sms23256: sms23256,
         private svenkvint: svenkvint,
         private readonly redisService: RedisService
@@ -92,6 +93,8 @@ export class RcsNumberService {
         this.sms4verify02 = new sms4verify('402qwEj44JiaWMOOBPIxMnWaqeyIuV', RcsNumberSource.sms4verify02)
         this.sms7979 = new sms7979('BbrlHwT4IWrfxR1tbSP6O8RkzW7Gdh', 45, RcsNumberSource.sms7979)
         this.sms797902 = new sms7979('BbrlHwT4IWrfxR1tbSP6O8RkzW7Gdh', 45, RcsNumberSource.sms797902)
+        this.smspva = new smspva('uNW56fGr0zstfs87Xn0e1l2gCYVnb1', RcsNumberSource.smspva)
+        this.smspva02 = new smspva('rTTL8pZtKkQ60zjU82bvbMEP7G6XGU', RcsNumberSource.smspva02)
         this.redis = this.redisService.getOrThrow()
     }
 
@@ -337,6 +340,8 @@ export class RcsNumberService {
                 return this.dashboard
             case RcsNumberSource.smspva:
                 return this.smspva
+            case RcsNumberSource.smspva02:
+                return this.smspva02
             case RcsNumberSource.sms7979:
                 return this.sms7979
             case RcsNumberSource.sms797902:
@@ -424,12 +429,19 @@ export class RcsNumberService {
         }
 
         const results = await Promise.allSettled(
-            rcsNumbers.map((rcsNumber) =>
-                this.smspva.releaseNumber(rcsNumber.orderId).catch((e) => {
-                    Logger.error(`Failed to release orderId ${rcsNumber.orderId}: ${e.message}`)
-                    throw e
-                })
-            )
+            rcsNumbers.map((rcsNumber) => {
+                if (rcsNumber.from === RcsNumberSource.smspva) {
+                    this.smspva.releaseNumber(rcsNumber.orderId).catch((e) => {
+                        Logger.error(`Failed to release orderId ${rcsNumber.orderId}: ${e.message}`)
+                        throw e
+                    })
+                } else if (rcsNumber.from === RcsNumberSource.smspva02) {
+                    this.smspva02.releaseNumber(rcsNumber.orderId).catch((e) => {
+                        Logger.error(`Failed to release orderId ${rcsNumber.orderId}: ${e.message}`)
+                        throw e
+                    })
+                }
+            })
         )
 
         results.forEach((result, index) => {