Procházet zdrojové kódy

chore: Remove redundant code and update check_availability_numbers in SysConfigService and TaskService

x1ongzhu před 1 rokem
rodič
revize
b9903ec3e9
2 změnil soubory, kde provedl 29 přidání a 9 odebrání
  1. 0 8
      src/sys-config/sys-config.service.ts
  2. 29 1
      src/task/task.service.ts

+ 0 - 8
src/sys-config/sys-config.service.ts

@@ -54,14 +54,6 @@ export class SysConfigService implements OnModuleInit {
                 remark: 'RCS检查号码'
             })
         }
-        if (!(await this.sysConfigRepository.findOneBy({ name: 'check_availability_numbers' }))) {
-            await this.sysConfigRepository.save({
-                name: 'check_availability_numbers',
-                value: '+18583199738',
-                type: SysConfigType.String,
-                remark: 'RCS检查号码'
-            })
-        }
         if (!(await this.sysConfigRepository.findOneBy({ name: 'message_apk' }))) {
             await this.sysConfigRepository.save({
                 name: 'message_apk',

+ 29 - 1
src/task/task.service.ts

@@ -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)
+    }
 }