From 546ccad21ab9dccebd2f827b1f4ff9214e9be89d Mon Sep 17 00:00:00 2001 From: imeepos Date: Thu, 4 Sep 2025 17:28:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E9=80=82=E9=85=8D=E5=99=A8=E4=BE=9D=E8=B5=96=E6=B3=A8=E5=85=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 为 WechatAdapter 和 BytedanceAdapter 添加完整的构造函数 - 正确注入 Repository, HttpService, ConfigService, JwtService 依赖 - 修复 UnknownDependenciesException 错误 - 确保适配器可以正常实例化和使用 --- src/app.module.ts | 2 ++ src/platform/adapters/bytedance.adapter.ts | 26 +++++++++++++++++++++- src/platform/adapters/wechat.adapter.ts | 26 +++++++++++++++++++++- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/app.module.ts b/src/app.module.ts index 6a2a996..208b125 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -16,9 +16,11 @@ import { AdWatchEntity } from './entities/ad-watch.entity'; import { N8nTemplateFactoryService } from './services/n8n-template-factory.service'; import { TemplateController } from './controllers/template.controller'; import { PlatformModule } from './platform/platform.module'; +import { HttpModule } from '@nestjs/axios'; @Module({ imports: [ + HttpModule, ConfigModule.forRoot({ isGlobal: true, envFilePath: ['.env.local', '.env'], diff --git a/src/platform/adapters/bytedance.adapter.ts b/src/platform/adapters/bytedance.adapter.ts index 8203d46..9c40ab9 100644 --- a/src/platform/adapters/bytedance.adapter.ts +++ b/src/platform/adapters/bytedance.adapter.ts @@ -1,6 +1,12 @@ import { Injectable, BadRequestException } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { HttpService } from '@nestjs/axios'; +import { ConfigService } from '@nestjs/config'; +import { JwtService } from '@nestjs/jwt'; import { BaseAdapter } from './base.adapter'; -import { PlatformType } from '../../entities/platform-user.entity'; +import { UserEntity } from '../../entities/user.entity'; +import { PlatformUserEntity, PlatformType } from '../../entities/platform-user.entity'; import { PlatformLoginData, PlatformRegisterData, @@ -25,6 +31,24 @@ interface BytedanceAuthResponse { export class BytedanceAdapter extends BaseAdapter { platform = PlatformType.BYTEDANCE; + constructor( + httpService: HttpService, + configService: ConfigService, + @InjectRepository(UserEntity) + userRepository: Repository, + @InjectRepository(PlatformUserEntity) + platformUserRepository: Repository, + jwtService: JwtService, + ) { + super( + httpService, + configService, + userRepository, + platformUserRepository, + jwtService, + ); + } + private readonly bytedanceConfig = { appId: this.configService.get('BYTEDANCE_APP_ID'), appSecret: this.configService.get('BYTEDANCE_APP_SECRET'), diff --git a/src/platform/adapters/wechat.adapter.ts b/src/platform/adapters/wechat.adapter.ts index 207eeb7..771cfbc 100644 --- a/src/platform/adapters/wechat.adapter.ts +++ b/src/platform/adapters/wechat.adapter.ts @@ -1,6 +1,12 @@ import { Injectable, BadRequestException } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { HttpService } from '@nestjs/axios'; +import { ConfigService } from '@nestjs/config'; +import { JwtService } from '@nestjs/jwt'; import { BaseAdapter } from './base.adapter'; -import { PlatformType } from '../../entities/platform-user.entity'; +import { UserEntity } from '../../entities/user.entity'; +import { PlatformUserEntity, PlatformType } from '../../entities/platform-user.entity'; import { PlatformLoginData, PlatformRegisterData, @@ -32,6 +38,24 @@ interface WechatUserInfo { export class WechatAdapter extends BaseAdapter { platform = PlatformType.WECHAT; + constructor( + httpService: HttpService, + configService: ConfigService, + @InjectRepository(UserEntity) + userRepository: Repository, + @InjectRepository(PlatformUserEntity) + platformUserRepository: Repository, + jwtService: JwtService, + ) { + super( + httpService, + configService, + userRepository, + platformUserRepository, + jwtService, + ); + } + private readonly wechatConfig = { appId: this.configService.get('WECHAT_APP_ID'), appSecret: this.configService.get('WECHAT_APP_SECRET'),