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

chore: Update launch.json and device.service.ts files

x1ongzhu 1 год назад
Родитель
Сommit
2bd8e4877c
4 измененных файлов с 81 добавлено и 28 удалено
  1. 51 0
      .env.local
  2. 12 3
      .vscode/launch.json
  3. 2 5
      src/device/device.service.ts
  4. 16 20
      src/task/task.service.ts

+ 51 - 0
.env.local

@@ -0,0 +1,51 @@
+NODE_ENV=dev
+NODE_API_PORT=
+
+ENDPOINT_CORS=
+
+SWAGGER_USER=admin
+SWAGGER_PASSWORD=123456
+
+EMAIL_HOST="smtp.mailtrap.io"
+EMAIL_PORT=2525
+EMAIL_AUTH_USER="1"
+EMAIL_AUTH_PASSWORD="1"
+EMAIL_DEBUG=true
+EMAIL_LOGGER=true
+EMAIL_LAYOUT_DIR='/templates/emails/'
+EMAIL_PARTIAL_DIR='/templates/emails/'
+EMAIL_VIEW_PATH='/templates/emails/'
+EMAIL_DEFAULT_LAYOUT='index'
+
+JWT_SECRET_KEY="9n^z27*5%S7H%^TA"
+JWT_TOKEN_AUDIENCE="localhost:3000"
+JWT_TOKEN_ISSUER="localhost:3000"
+JWT_ACCESS_TOKEN_TTL=3600
+
+THROTTLE_TTL=60
+THROTTLE_LIMIT=20
+
+TYPEORM_CONNECTION="mysql"
+TYPEORM_HOST="127.0.0.1"
+TYPEORM_PORT=3306
+TYPEORM_USERNAME=root
+TYPEORM_PASSWORD="123456"
+TYPEORM_DATABASE=rcs
+TYPEORM_AUTO_SCHEMA_SYNC=true
+TYPEORM_ENTITIES="dist/**/*.entity.js"
+TYPEORM_SUBSCRIBERS="dist/subscriber/**/*.js"
+TYPEORM_MIGRATIONS="dist/migrations/**/*.js"
+TYPEORM_ENTITIES_DIR="src/entity"
+TYPEORM_MIGRATIONS_DIR="src/migrations"
+TYPEORM_SUBSCRIBERS_DIR="src/subscriber"
+
+ALIYUN_ACCESS_KEY_ID=PXzJyah5rZfWHIIH
+ALIYUN_ACCESS_KEY_SECRET=e1MS6j0wypXJrw8CM0hObZu8qKbfah
+ALIYUN_OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
+ALIYUN_OSS_BUCKET=nebuai
+ALIYUN_OSS_REGION=oss-cn-hangzhou
+ALIYUN_OSS_CDN=https://cdn.raex.vip
+ALIYUN_SMS_SIGN=走马信息
+ALIYUN_SMS_TEMPLATE_CODE=SMS_175485688
+
+ALLOW_ADMIN_LOGIN=true

+ 12 - 3
.vscode/launch.json

@@ -3,10 +3,19 @@
     "configurations": [
     "configurations": [
         {
         {
             "type": "node-terminal",
             "type": "node-terminal",
-            "name": "运行脚本: start:debug",
+            "name": "start:debug",
             "request": "launch",
             "request": "launch",
             "command": "npm run start:debug",
             "command": "npm run start:debug",
-            "cwd": "${workspaceFolder}"
+            "cwd": "${workspaceFolder}",
+            "envFile": "${workspaceFolder}/.env.dev"
+        },
+        {
+            "type": "node-terminal",
+            "name": "[local]start:debug",
+            "request": "launch",
+            "command": "npm run start:debug",
+            "cwd": "${workspaceFolder}",
+            "envFile": "${workspaceFolder}/.env.local"
         }
         }
     ]
     ]
-}
+}

+ 2 - 5
src/device/device.service.ts

@@ -57,7 +57,7 @@ export class DeviceService {
         if (matchDevice) {
         if (matchDevice) {
             where.name = Like(`%${matchDevice}%`)
             where.name = Like(`%${matchDevice}%`)
         }
         }
-        return await this.deviceRepository.findOneBy(where)
+        return await this.deviceRepository.createQueryBuilder().where(where).orderBy('RAND()').getOne()
     }
     }
 
 
     async findAvailableDevices(num = 100, matchDevice?: string) {
     async findAvailableDevices(num = 100, matchDevice?: string) {
@@ -65,10 +65,7 @@ export class DeviceService {
         if (matchDevice) {
         if (matchDevice) {
             where.name = Like(`%${matchDevice}%`)
             where.name = Like(`%${matchDevice}%`)
         }
         }
-        return await this.deviceRepository.find({
-            where,
-            take: num
-        })
+        return await this.deviceRepository.createQueryBuilder().where(where).orderBy('RAND()').limit(num).getMany()
     }
     }
 
 
     async setBusy(id: string, busy: boolean) {
     async setBusy(id: string, busy: boolean) {

+ 16 - 20
src/task/task.service.ts

@@ -43,8 +43,7 @@ export class TaskService implements OnModuleInit {
         private readonly sysConfigService: SysConfigService,
         private readonly sysConfigService: SysConfigService,
         private readonly balanceService: BalanceService,
         private readonly balanceService: BalanceService,
         private readonly userService: UsersService
         private readonly userService: UsersService
-    ) {
-    }
+    ) {}
 
 
     onModuleInit() {
     onModuleInit() {
         this.lock.acquire('dispatchTask', async () => {
         this.lock.acquire('dispatchTask', async () => {
@@ -63,23 +62,16 @@ export class TaskService implements OnModuleInit {
     private taskControllers: { [key: number]: AbortController } = {}
     private taskControllers: { [key: number]: AbortController } = {}
 
 
     async findAllTask(req: PageRequest<Task>): Promise<Pagination<Task>> {
     async findAllTask(req: PageRequest<Task>): Promise<Pagination<Task>> {
-        console.log(
-            JSON.stringify({
-                where: {
-                    name: In(['asdf'])
-                }
-            })
-        )
         const page = await paginate<Task>(this.taskRepository, req.page, req.search)
         const page = await paginate<Task>(this.taskRepository, req.page, req.search)
         if (page.items.length !== 0) {
         if (page.items.length !== 0) {
             let items = page.items
             let items = page.items
-            const userIds = items.map(item => item.userId)
+            const userIds = items.map((item) => item.userId)
             const users = await this.userRepository.findBy({
             const users = await this.userRepository.findBy({
                 id: In(userIds)
                 id: In(userIds)
             })
             })
             for (let i = 0; i < items.length; i++) {
             for (let i = 0; i < items.length; i++) {
                 const item = items[i]
                 const item = items[i]
-                const user = users.find(user => user.id === item.userId)
+                const user = users.find((user) => user.id === item.userId)
                 if (user) {
                 if (user) {
                     item.userName = user.username
                     item.userName = user.username
                 }
                 }
@@ -145,7 +137,8 @@ export class TaskService implements OnModuleInit {
                 cleanCount: data.cleanCount,
                 cleanCount: data.cleanCount,
                 requestNumberInterval: data.requestNumberInterval,
                 requestNumberInterval: data.requestNumberInterval,
                 checkConnection: data.checkConnection,
                 checkConnection: data.checkConnection,
-                channels: data.channels
+                channels: data.channels,
+                matchDevice: data.matchDevice
             }
             }
         )
         )
     }
     }
@@ -197,10 +190,13 @@ export class TaskService implements OnModuleInit {
             }
             }
         })
         })
 
 
-        await this.taskRepository.update({ id }, {
-            status: num > 0 ? TaskStatus.QUEUED : TaskStatus.PENDING,
-            startedAt: new Date()
-        })
+        await this.taskRepository.update(
+            { id },
+            {
+                status: num > 0 ? TaskStatus.QUEUED : TaskStatus.PENDING,
+                startedAt: new Date()
+            }
+        )
     }
     }
 
 
     async pauseTask(id: number): Promise<void> {
     async pauseTask(id: number): Promise<void> {
@@ -452,7 +448,7 @@ export class TaskService implements OnModuleInit {
                         }
                         }
                     })
                     })
                     .catch(async (e) => {
                     .catch(async (e) => {
-                        Logger.error('Error running task', e.stack, this.TAG)
+                        Logger.error('Error running task 1', e.stack, this.TAG)
                         await this.updateTaskItemStatus(
                         await this.updateTaskItemStatus(
                             taskItems.map((i) => i.id),
                             taskItems.map((i) => i.id),
                             TaskItemStatus.IDLE
                             TaskItemStatus.IDLE
@@ -460,7 +456,7 @@ export class TaskService implements OnModuleInit {
                     })
                     })
             }
             }
         } catch (e) {
         } catch (e) {
-            Logger.error('Error running task', e.stack, this.TAG)
+            Logger.error('Error running task 2', e.stack, this.TAG)
             task.status = TaskStatus.ERROR
             task.status = TaskStatus.ERROR
             task.error = e.message
             task.error = e.message
             await this.taskRepository.save(task)
             await this.taskRepository.save(task)
@@ -564,7 +560,7 @@ export class TaskService implements OnModuleInit {
                             return Promise.reject(new Error('timeout waiting for response'))
                             return Promise.reject(new Error('timeout waiting for response'))
                         })
                         })
                     ])
                     ])
-                    Logger.log(
+                    Logger.log( 
                         `Task completed: ${res.success.length} success, ${res.fail.length} fail, ${
                         `Task completed: ${res.success.length} success, ${res.fail.length} fail, ${
                             res.retry?.length || 0
                             res.retry?.length || 0
                         } retry`,
                         } retry`,
@@ -580,7 +576,7 @@ export class TaskService implements OnModuleInit {
                         await this.updateTaskItemStatus(res.retry, TaskItemStatus.IDLE)
                         await this.updateTaskItemStatus(res.retry, TaskItemStatus.IDLE)
                     }
                     }
                 } catch (e) {
                 } catch (e) {
-                    Logger.error('Error running task', e.stack, this.TAG)
+                    Logger.error('Error running task 3', e.stack, this.TAG)
                     await this.updateTaskItemStatus(
                     await this.updateTaskItemStatus(
                         items.map((i) => i.id),
                         items.map((i) => i.id),
                         TaskItemStatus.IDLE
                         TaskItemStatus.IDLE