main
expressgy 1 year ago
parent cfc1e90ffc
commit 589b3ff745
  1. 38
      src/rgvsale/dto/account.dto.ts
  2. 40
      src/rgvsale/dto/demoScenesProblem.dto.ts
  3. 17
      src/rgvsale/rgvsale.service.ts

@ -1,5 +1,11 @@
import { IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator';
import { Param, ValidationPipe, Query, HttpException, HttpStatus } from '@nestjs/common';
import {
Param,
ValidationPipe,
Query,
HttpException,
HttpStatus,
} from '@nestjs/common';
import { Transform } from 'class-transformer';
// 获取产品账户分页
@ -10,7 +16,7 @@ export class GetAccountPageDto {
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('产品ID必须为数字', 400);
}
@ -23,7 +29,7 @@ export class GetAccountPageDto {
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('pageNum必须为数字', 400);
}
@ -36,7 +42,7 @@ export class GetAccountPageDto {
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('pageSize必须为数字', 400);
}
@ -50,27 +56,35 @@ export class CreateAccountDto{
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined;
} else {
throw new HttpException('产品ID必须为数字', 400);
}
})
@IsNumber(
{},
{
message: '产品ID必须为数字',
},
)
productId: number;
@IsOptional()
@IsString({
message: '产品账户角色必须为字符串',
})
accountRoleName: string
accountRoleName: string;
@IsString({
message: '产品账户用户名必须为字符串',
})
accountUsername: string
accountUsername: string;
@IsString({
message: '产品账户密码必须为字符串',
})
accountPassword: string
accountPassword: string;
}
// 编辑产品账户
@ -89,7 +103,7 @@ export class EditAccountDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('产品ID必须为数字', 400);
}
@ -100,17 +114,17 @@ export class EditAccountDto{
@IsString({
message: '产品账户角色必须为字符串',
})
accountRoleName: string
accountRoleName: string;
@IsString({
message: '产品账户用户名必须为字符串',
})
accountUsername: string
accountUsername: string;
@IsString({
message: '产品账户密码必须为字符串',
})
accountPassword: string
accountPassword: string;
}
// 删除产品账户
@ -122,5 +136,5 @@ export class DeleteAccountDto{
throw new HttpException('产品账户ID必须为数字', 400);
}
})
accountId: Number;
accountId: number;
}

@ -1,5 +1,11 @@
import { IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator';
import { Param, ValidationPipe, Query, HttpException, HttpStatus } from '@nestjs/common';
import {
Param,
ValidationPipe,
Query,
HttpException,
HttpStatus,
} from '@nestjs/common';
import { Transform } from 'class-transformer';
// 获取演示问题分页
@ -9,46 +15,43 @@ export class GetScenesProblemPageDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('产品ID必须为数字', 400);
}
})
productId: number;
// 行业ID
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('行业ID必须为数字', 400);
}
})
industryId: number;
// 方案ID
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('方案ID必须为数字', 400);
}
})
programmeId: number;
// 现场ID
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('现场ID必须为数字', 400);
}
@ -68,21 +71,20 @@ export class GetScenesProblemPageDto{
if (Number(val.value) || Number(val.value) === 0) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else if (Number(val.value) !== 0) {
throw new HttpException('利用状态必须为数字', 400);
}
})
isUse: number;
// 页码
@IsOptional()
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('pageNum必须为数字', 400);
}
@ -95,7 +97,7 @@ export class GetScenesProblemPageDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('pageSize必须为数字', 400);
}
@ -119,7 +121,7 @@ export class CreateScenesProblemDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('演示现场ID必须为数字', 400);
}
@ -134,7 +136,7 @@ export class CreateScenesProblemDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('演示项ID必须为数字', 400);
}
@ -171,7 +173,7 @@ export class EditScenesProblemDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('演示现场ID必须为数字', 400);
}
@ -199,7 +201,7 @@ export class EditScenesProblemDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('演示现场ID必须为数字', 400);
}
@ -214,7 +216,7 @@ export class EditScenesProblemDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('演示项ID必须为数字', 400);
}
@ -232,7 +234,7 @@ export class DeleteScenesProblemDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('问题ID必须为数字', 400);
}
@ -250,7 +252,7 @@ export class ChangeUseStateDto{
if (Number(val.value)) {
return Number(val.value);
} else if (!val.value) {
return undefined
return undefined;
} else {
throw new HttpException('问题ID必须为数字', 400);
}

@ -27,7 +27,7 @@ import {
DeleteDemoItemDto,
GetDemoItemListDto,
} from '@/rgvsale/dto/demoItem.dto';
import { createWriteStream, createReadStream } from 'fs';
import { createWriteStream, createReadStream, exists, stat } from 'fs';
import { join } from 'path';
import {
CreateIndustryDto,
@ -331,6 +331,7 @@ export class RgvsaleService {
// 创建账户
public async createAccount(body: CreateAccountDto, userInfo: UserInfoDto) {
console.log(body)
const { productId, accountPassword, accountUsername, accountRoleName } =
body;
try {
@ -348,6 +349,7 @@ export class RgvsaleService {
};
}
} catch (e) {
console.log(e)
return {
data: e,
message: '新增产品账户失败,账户名称查重失败!',
@ -739,12 +741,23 @@ export class RgvsaleService {
// 下载文件
public async download(id, res) {
console.log(id);
let filename;
try {
filename = await this.getFilePath(id);
} catch (e) {
throw new HttpException(e, HttpStatus.SERVICE_UNAVAILABLE);
}
const state = await new Promise((res, rej) => {
exists(join('./file', filename), (e) => {
e ? res(e) : rej(e);
});
}).catch((e) => {
throw new HttpException(
'未找到文件',
HttpStatus.SERVICE_UNAVAILABLE,
);
});
const readerStream = createReadStream(join('./file', filename));
res.header('Content-Type', 'application/octet-stream');
res.header(
@ -752,7 +765,7 @@ export class RgvsaleService {
'attachment; filename=' + encodeURIComponent(filename),
);
// readerStream.pipe(res)
readerStream.on('error', () => {
readerStream.on('error', (err) => {
throw new HttpException(
'下载失败,请重试',
HttpStatus.SERVICE_UNAVAILABLE,

Loading…
Cancel
Save