feat: 更新AI提示并增强后端功能
更新AI提示字符串包含海南地区 添加CrawlInfoAdd实体到Bids模块 优化爬虫信息统计查询 增加请求体大小限制和启用CORS 修正前端部署路径
This commit is contained in:
@@ -1 +1 @@
|
|||||||
export const PromptString: string = `先给我说你统计了多少个项目。我只对辽宁、山东、江苏、浙江、福建、广东、广西、河北这些地方的海上风电、海上光伏、漂浮式光伏、滩涂光伏、滩涂风电、渔光互补项目感兴趣。从我提供的这些工程里面找到我感兴趣的工程,无论如何至少推荐10个工程。如果没有推荐的,也要给出思考过程。`;
|
export const PromptString: string = `先给我说你统计了多少个项目。我只对辽宁、山东、江苏、浙江、福建、广东、广西、海南、河北这些地方的海上风电、海上光伏、漂浮式光伏、滩涂光伏、滩涂风电、渔光互补项目感兴趣。从我提供的这些工程里面找到我感兴趣的工程,无论如何至少推荐10个工程。如果没有推荐的,也要给出思考过程。`;
|
||||||
|
|||||||
@@ -3,9 +3,10 @@ import { TypeOrmModule } from '@nestjs/typeorm';
|
|||||||
import { BidItem } from './entities/bid-item.entity';
|
import { BidItem } from './entities/bid-item.entity';
|
||||||
import { BidsService } from './services/bid.service';
|
import { BidsService } from './services/bid.service';
|
||||||
import { BidsController } from './controllers/bid.controller';
|
import { BidsController } from './controllers/bid.controller';
|
||||||
|
import { CrawlInfoAdd } from '../crawler/entities/crawl-info-add.entity';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forFeature([BidItem])],
|
imports: [TypeOrmModule.forFeature([BidItem, CrawlInfoAdd])],
|
||||||
providers: [BidsService],
|
providers: [BidsService],
|
||||||
controllers: [BidsController],
|
controllers: [BidsController],
|
||||||
exports: [BidsService],
|
exports: [BidsService],
|
||||||
|
|||||||
@@ -2,12 +2,15 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { Repository, LessThan, MoreThanOrEqual } from 'typeorm';
|
import { Repository, LessThan, MoreThanOrEqual } from 'typeorm';
|
||||||
import { BidItem } from '../entities/bid-item.entity';
|
import { BidItem } from '../entities/bid-item.entity';
|
||||||
|
import { CrawlInfoAdd } from '../../crawler/entities/crawl-info-add.entity';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class BidsService {
|
export class BidsService {
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(BidItem)
|
@InjectRepository(BidItem)
|
||||||
private bidRepository: Repository<BidItem>,
|
private bidRepository: Repository<BidItem>,
|
||||||
|
@InjectRepository(CrawlInfoAdd)
|
||||||
|
private crawlInfoRepository: Repository<CrawlInfoAdd>,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async findAll(query?: any) {
|
async findAll(query?: any) {
|
||||||
@@ -117,11 +120,7 @@ export class BidsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getCrawlInfoAddStats() {
|
async getCrawlInfoAddStats() {
|
||||||
const { InjectRepository } = require('@nestjs/typeorm');
|
// 获取每个来源的最新一次爬虫记录(按 createdAt 降序)
|
||||||
const { Repository } = require('typeorm');
|
|
||||||
const { CrawlInfoAdd } = require('../../crawler/entities/crawl-info-add.entity');
|
|
||||||
|
|
||||||
// 获取每个来源的最新一次爬虫记录
|
|
||||||
const query = `
|
const query = `
|
||||||
SELECT
|
SELECT
|
||||||
source,
|
source,
|
||||||
@@ -130,15 +129,15 @@ export class BidsService {
|
|||||||
error,
|
error,
|
||||||
createdAt as latestUpdate
|
createdAt as latestUpdate
|
||||||
FROM crawl_info_add
|
FROM crawl_info_add
|
||||||
WHERE id IN (
|
WHERE (source, createdAt) IN (
|
||||||
SELECT MAX(id)
|
SELECT source, MAX(createdAt)
|
||||||
FROM crawl_info_add
|
FROM crawl_info_add
|
||||||
GROUP BY source
|
GROUP BY source
|
||||||
)
|
)
|
||||||
ORDER BY source ASC
|
ORDER BY source ASC
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const results = await this.bidRepository.query(query);
|
const results = await this.crawlInfoRepository.query(query);
|
||||||
|
|
||||||
return results.map((item: any) => ({
|
return results.map((item: any) => ({
|
||||||
source: item.source,
|
source: item.source,
|
||||||
|
|||||||
12
src/main.ts
12
src/main.ts
@@ -3,12 +3,22 @@ import { AppModule } from './app.module';
|
|||||||
import { CustomLogger } from './common/logger/logger.service';
|
import { CustomLogger } from './common/logger/logger.service';
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
const app = await NestFactory.create(AppModule);
|
const app = await NestFactory.create(AppModule, {
|
||||||
|
bodyParser: true,
|
||||||
|
});
|
||||||
|
|
||||||
// 使用自定义日志服务
|
// 使用自定义日志服务
|
||||||
const logger = await app.resolve(CustomLogger);
|
const logger = await app.resolve(CustomLogger);
|
||||||
app.useLogger(logger);
|
app.useLogger(logger);
|
||||||
|
|
||||||
|
// 增加请求体大小限制(默认 100kb,增加到 50mb)
|
||||||
|
const express = require('express');
|
||||||
|
app.use(express.json({ limit: '50mb' }));
|
||||||
|
app.use(express.urlencoded({ limit: '50mb', extended: true }));
|
||||||
|
|
||||||
|
// 启用 CORS
|
||||||
|
app.enableCors();
|
||||||
|
|
||||||
await app.listen(process.env.PORT ?? 3000);
|
await app.listen(process.env.PORT ?? 3000);
|
||||||
}
|
}
|
||||||
bootstrap();
|
bootstrap();
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ $remotePort = "1122"
|
|||||||
$remoteUser = "cubie"
|
$remoteUser = "cubie"
|
||||||
$keyPath = "d:\163"
|
$keyPath = "d:\163"
|
||||||
$serverDest = "/home/cubie/down/document/bidding/publish/server"
|
$serverDest = "/home/cubie/down/document/bidding/publish/server"
|
||||||
$frontendDest = "/home/cubie/down/document/bidding/publish/"
|
$frontendDest = "/home/cubie/down/document/bidding/publish/frontend"
|
||||||
$srcDest = "/home/cubie/down/document/bidding/"
|
$srcDest = "/home/cubie/down/document/bidding/"
|
||||||
|
|
||||||
# Check if key file exists
|
# Check if key file exists
|
||||||
@@ -50,7 +50,7 @@ Write-Host "dist directory uploaded successfully" -ForegroundColor Green
|
|||||||
|
|
||||||
# Upload entire frontend directory to publish directory
|
# Upload entire frontend directory to publish directory
|
||||||
Write-Host "`nUploading frontend directory to ${frontendDest}..." -ForegroundColor Yellow
|
Write-Host "`nUploading frontend directory to ${frontendDest}..." -ForegroundColor Yellow
|
||||||
scp -i $keyPath -P $remotePort -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r frontend "${remoteUser}@${remoteHost}:${frontendDest}"
|
scp -i $keyPath -P $remotePort -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r frontend/dist "${remoteUser}@${remoteHost}:${frontendDest}"
|
||||||
|
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
Write-Error "Failed to upload frontend directory"
|
Write-Error "Failed to upload frontend directory"
|
||||||
|
|||||||
Reference in New Issue
Block a user