|
|
@@ -31,6 +31,7 @@ import { RedisService } from '@liaoliaots/nestjs-redis'
|
|
|
import Redis from 'ioredis'
|
|
|
import { Channel } from '../channel/entities/channel.entities'
|
|
|
import { durainus } from './impl/durainus.service'
|
|
|
+import { usapanel } from './impl/usapanel.service'
|
|
|
|
|
|
@Injectable()
|
|
|
export class RcsNumberService {
|
|
|
@@ -65,6 +66,7 @@ export class RcsNumberService {
|
|
|
private hwyzm: hwyzm,
|
|
|
private cowboy: cowboy,
|
|
|
private durainus: durainus,
|
|
|
+ private usapanel: usapanel,
|
|
|
private textverified: textverified,
|
|
|
private readonly redisService: RedisService
|
|
|
) {
|
|
|
@@ -157,6 +159,15 @@ export class RcsNumberService {
|
|
|
|
|
|
const channel = availableChannels[Math.floor(Math.random() * availableChannels.length)]
|
|
|
|
|
|
+ if (channel.source === RcsNumberSource.usapanel) {
|
|
|
+ const status = await this.redis.get('usapanel')
|
|
|
+ if (status) {
|
|
|
+ throw new ServiceUnavailableException('usapanel不可重复取码')
|
|
|
+ } else {
|
|
|
+ await this.redis.set('usapanel', '1')
|
|
|
+ await this.redis.expire('usapanel', 60 * 3)
|
|
|
+ }
|
|
|
+ }
|
|
|
const numberService = this.getNumberService(channel.source)
|
|
|
let res: GetNumberResponse
|
|
|
try {
|
|
|
@@ -295,6 +306,8 @@ export class RcsNumberService {
|
|
|
return this.durainus
|
|
|
case RcsNumberSource.textverified:
|
|
|
return this.textverified
|
|
|
+ case RcsNumberSource.usapanel:
|
|
|
+ return this.usapanel
|
|
|
default:
|
|
|
throw new ServiceUnavailableException('不支持的短信通道')
|
|
|
}
|
|
|
@@ -337,10 +350,14 @@ export class RcsNumberService {
|
|
|
} else if (number.orderId.slice(-4) === '0034') {
|
|
|
update.from = RcsNumberSource.cloud034
|
|
|
}
|
|
|
+ } else if (number.from === RcsNumberSource.usacode) {
|
|
|
+ await this.redis.del('usacode')
|
|
|
}
|
|
|
await this.rcsNumberRepository.update(number.id, update)
|
|
|
}
|
|
|
- } catch (e) {}
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e.message)
|
|
|
+ }
|
|
|
})
|
|
|
}
|
|
|
|