|
|
@@ -21,7 +21,8 @@ import { Phone } from '../phone-list/entities/phone.entity'
|
|
|
import { Interval } from '@nestjs/schedule'
|
|
|
import * as AsyncLock from 'async-lock'
|
|
|
import { UsersService } from 'src/users/users.service'
|
|
|
-import { addMinutes } from 'date-fns'
|
|
|
+import { addHours, addMinutes } from 'date-fns'
|
|
|
+import { SysConfig } from 'src/sys-config/entities/sys-config.entity'
|
|
|
|
|
|
@Injectable()
|
|
|
export class TaskService implements OnModuleInit {
|
|
|
@@ -646,4 +647,31 @@ export class TaskService implements OnModuleInit {
|
|
|
)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Interval(60000)
|
|
|
+ async changeCheckAvailabilityNumbers() {
|
|
|
+ let config: SysConfig
|
|
|
+ try {
|
|
|
+ config = await this.sysConfigService.findByName('check_availability_numbers')
|
|
|
+ } catch (e) {
|
|
|
+ Logger.error('Error getting rcs wait time', e.stack, this.TAG)
|
|
|
+ config = new SysConfig()
|
|
|
+ config.name = 'check_availability_numbers'
|
|
|
+ }
|
|
|
+ for (let i = 0; i < 10; i++) {
|
|
|
+ const items = await this.taskItemRepository
|
|
|
+ .createQueryBuilder()
|
|
|
+ .select()
|
|
|
+ .where('status = :status', { status: TaskItemStatus.SUCCESS })
|
|
|
+ .andWhere('sendAt > :sendAt', { sendAt: addHours(new Date(), 48) })
|
|
|
+ .orderBy('RAND()')
|
|
|
+ .limit(5)
|
|
|
+ .getMany()
|
|
|
+ if (5 == items.length) {
|
|
|
+ config.value = items.map((i) => i.number).join(',')
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ await this.sysConfigService.save(config)
|
|
|
+ }
|
|
|
}
|