完善
continuous-integration/drone/push Build is failing Details

main
rustdreamer 3 years ago
parent 12618112a4
commit 8da64b2dfa

@ -7,9 +7,11 @@ REDIS_DB=0
DOC=true DOC=true
CLIENT_URI=https://liulinlin.test.qunsense.com/ CLIENT_URI=https://liulinlin.test.qunsense.com/
RUST_URI=http://visitor-park-api:8004
MYSQL_HOST=127.0.0.1 MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306 MYSQL_PORT=3306
MYSQL_USERNAME=api-visitor MYSQL_USERNAME=api-visitor
MYSQL_PASSWORD=api-visitor MYSQL_PASSWORD=api-visitor
MYSQL_DATABASE=api-visitor MYSQL_DATABASE=api-visitor

@ -1,13 +1,16 @@
import { BadRequestException, Body, Controller, Get, Post } from '@nestjs/common'; import { BadRequestException, Body, Controller, Get, Post, Query, Req } from '@nestjs/common';
import { AppService } from './app.service'; import { AppService } from './app.service';
import * as fs from 'fs'; import * as fs from 'fs';
import { ApiProperty } from '@nestjs/swagger'; import { ApiBearerAuth, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IsArray, IsBoolean, IsDateString, IsNotEmpty, IsString } from 'class-validator'; import { IsArray, IsBoolean, IsDateString, IsNotEmpty, IsOptional, IsString } from 'class-validator';
import { NodeVisitorEntity } from './node-visitor.entity'; import { NodeVisitorEntity } from './node-visitor.entity';
import { DataSource } from 'typeorm'; import { DataSource, Repository } from 'typeorm';
import * as bluebird from 'bluebird'; import * as bluebird from 'bluebird';
import { NodeOtherVisitorEntity } from './node-other-visitor.entity'; import { NodeOtherVisitorEntity } from './node-other-visitor.entity';
import * as moment from 'moment'; import * as moment from 'moment';
import { CommonPageArgs } from './common';
import { InjectRepository } from '@nestjs/typeorm';
import axios from 'axios';
export class Electronics { export class Electronics {
@ApiProperty({ description: "电子产品名称" }) @ApiProperty({ description: "电子产品名称" })
@ -133,12 +136,27 @@ export class CreateVisitor {
public may_access_sensitive_info: boolean; public may_access_sensitive_info: boolean;
} }
export class QueryVisitorDto extends CommonPageArgs {
// @ApiPropertyOptional({ description: '真实姓名' })
// @IsString()
// @IsOptional()
// true_name: string
@ApiPropertyOptional({ description: "根据名称模糊搜索", required: false })
@IsString()
@IsOptional()
search?: string
}
@Controller() @Controller()
export class AppController { export class AppController {
constructor( constructor(
private readonly appService: AppService, private readonly appService: AppService,
private readonly dataSource: DataSource, private readonly dataSource: DataSource,
@InjectRepository(NodeVisitorEntity)
private readonly nodeVisitorRepository: Repository<NodeVisitorEntity>,
@InjectRepository(NodeOtherVisitorEntity)
private readonly nodeOtherVisitorRepository: Repository<NodeOtherVisitorEntity>,
) { } ) { }
@Get() @Get()
@ -166,6 +184,44 @@ export class AppController {
// return "n9zX2u8E9ShFgYmx"; // return "n9zX2u8E9ShFgYmx";
// } // }
@Get("/visitors")
@ApiBearerAuth()
async get(@Query() query: QueryVisitorDto, @Req() req: any) {
console.log("req", req.headers)
if (!req.headers.authorization) {
throw new BadRequestException("无权限")
}
try {
// console.log(`${process.env.RUST_URI}/api/viewer`)
const result = await axios.get(`${process.env.RUST_URI}/api/viewer`, {
headers: {
authorization: req.headers.authorization
}
})
// console.log("result", result)
} catch (e) {
// console.log(e)
throw new BadRequestException("无权限, 请联系管理员")
}
const [list, count] = await this.nodeVisitorRepository.findAndCount({
skip: query.skip,
take: query.take,
order: {
created_date: "DESC"
}
})
const new_list = await bluebird.map(list, async (item) => {
const visitor_list = await this.nodeOtherVisitorRepository.find({
where: { node_visitor_id: item.id }
})
return {
...item,
visitor_list
}
})
return { list: new_list, count }
}
@Post("/visitor") @Post("/visitor")
async create(@Body() data: CreateVisitor) { async create(@Body() data: CreateVisitor) {
if (new Date(data.apply_date).toString() == "Invalid Date") { if (new Date(data.apply_date).toString() == "Invalid Date") {
@ -210,6 +266,7 @@ export class AppController {
new_node_other_visitor.identity_card_no = item.identity_card_no; new_node_other_visitor.identity_card_no = item.identity_card_no;
new_node_other_visitor.nationality_type = item.nationality_type; new_node_other_visitor.nationality_type = item.nationality_type;
new_node_other_visitor.nationality = item.nationality; new_node_other_visitor.nationality = item.nationality;
new_node_other_visitor.node_visitor_id = result.id;
await transactionalEntityManager.save(new_node_other_visitor); await transactionalEntityManager.save(new_node_other_visitor);
}) })

@ -11,6 +11,7 @@ import { RoleModule } from './role/role.module';
import { FileModule } from './file/file.module'; import { FileModule } from './file/file.module';
import { VisitorEntity } from './visitor.entity'; import { VisitorEntity } from './visitor.entity';
import { NodeVisitorEntity } from './node-visitor.entity'; import { NodeVisitorEntity } from './node-visitor.entity';
import { NodeOtherVisitorEntity } from './node-other-visitor.entity';
@Module({ @Module({
imports: [ imports: [
@ -21,6 +22,7 @@ import { NodeVisitorEntity } from './node-visitor.entity';
TypeOrmModule.forFeature([ TypeOrmModule.forFeature([
VisitorEntity, VisitorEntity,
NodeVisitorEntity, NodeVisitorEntity,
NodeOtherVisitorEntity
]), ]),
ScheduleModule.forRoot(), ScheduleModule.forRoot(),
RoleModule, RoleModule,

Loading…
Cancel
Save