x1ongzhu hai 1 ano
pai
achega
724edb6047

+ 12 - 20
src/sys-config/sys-config.service.ts

@@ -14,36 +14,28 @@ export class SysConfigService implements OnModuleInit {
         ;(async function init() {})()
     }
     async onModuleInit() {
-        if (!(await this.sysConfigRepository.findOneBy({ name: 'vote_delay' }))) {
+        if (!(await this.sysConfigRepository.findOneBy({ name: 'rcs_wait' }))) {
             await this.sysConfigRepository.save({
-                name: 'vote_delay',
-                value: '0',
+                name: 'rcs_wait',
+                value: '3000',
                 type: SysConfigType.Number,
-                remark: '投票延迟时间'
+                remark: 'RCS等待时间'
             })
         }
-        if (!(await this.sysConfigRepository.findOneBy({ name: 'vote_wait_time' }))) {
+        if (!(await this.sysConfigRepository.findOneBy({ name: 'rcs_interval' }))) {
             await this.sysConfigRepository.save({
-                name: 'vote_wait_time',
-                value: '30',
+                name: 'rcs_interval',
+                value: '3000',
                 type: SysConfigType.Number,
-                remark: '投票等待时间'
+                remark: 'RCS发送间隔'
             })
         }
-        if (!(await this.sysConfigRepository.findOneBy({ name: 'join_game_danmu' }))) {
+        if (!(await this.sysConfigRepository.findOneBy({ name: 'clean_count' }))) {
             await this.sysConfigRepository.save({
-                name: 'join_game_danmu',
-                value: '我是%',
-                type: SysConfigType.String,
-                remark: '加入游戏弹幕规则'
-            })
-        }
-        if (!(await this.sysConfigRepository.findOneBy({ name: 'reset_delay' }))) {
-            await this.sysConfigRepository.save({
-                name: 'reset_delay',
-                value: '60',
+                name: 'clean_count',
+                value: '20',
                 type: SysConfigType.Number,
-                remark: '重置延迟'
+                remark: '清理数量'
             })
         }
     }

+ 6 - 0
src/task/entities/task.entity.ts

@@ -37,6 +37,12 @@ export class Task {
     @Column({ default: 0 })
     rcsWait: number
 
+    @Column({ default: 0 })
+    rcsInterval: number
+
+    @Column({ default: 0 })
+    cleanCount: number
+
     @Column()
     successRate: string
 }

+ 22 - 6
src/task/task.service.ts

@@ -30,8 +30,7 @@ export class TaskService implements OnModuleInit {
         private readonly phoneListService: PhoneListService,
         private readonly deviceService: DeviceService,
         private readonly sysConfigService: SysConfigService
-    ) {
-    }
+    ) {}
 
     onModuleInit() {
         this.taskRepository.update({ status: TaskStatus.PENDING }, { status: TaskStatus.IDLE })
@@ -114,12 +113,9 @@ export class TaskService implements OnModuleInit {
 
                 await this.balanceRepository.save(balance)
                 await this.userRepository.save(user)
-
-
             } catch (e) {
                 Logger.error('Error startTask ', e, 'RcsService')
             }
-
         }
     }
 
@@ -148,6 +144,8 @@ export class TaskService implements OnModuleInit {
 
                 task = await this.taskRepository.findOneBy({ id: task.id })
                 let rcsWait = 2000
+                let rcsInterval = 3000
+                let cleanCount = 20
                 if (task.rcsWait > 0) {
                     rcsWait = task.rcsWait
                 } else {
@@ -157,6 +155,24 @@ export class TaskService implements OnModuleInit {
                         Logger.error('Error getting rcs wait time', error, 'RcsService')
                     }
                 }
+                if (task.rcsInterval > 0) {
+                    rcsInterval = task.rcsInterval
+                } else {
+                    try {
+                        rcsInterval = await this.sysConfigService.getNumber('rcs_interval', 3000)
+                    } catch (error) {
+                        Logger.error('Error getting rcs interval time', error, 'RcsService')
+                    }
+                }
+                if (task.cleanCount > 0) {
+                    cleanCount = task.cleanCount
+                } else {
+                    try {
+                        cleanCount = await this.sysConfigService.getNumber('clean_count', 20)
+                    } catch (error) {
+                        Logger.error('Error getting clean count', error, 'RcsService')
+                    }
+                }
 
                 let taskItems = await this.taskItemRepository.find({
                     where: { taskId: task.id, status: TaskItemStatus.IDLE },
@@ -194,7 +210,7 @@ export class TaskService implements OnModuleInit {
                         {
                             id: randomUUID(),
                             action: 'task',
-                            data: { config: { rcsWait }, tasks: taskItems }
+                            data: { config: { rcsWait, rcsInterval, cleanCount }, tasks: taskItems }
                         },
                         device.socketId
                     ),