main
expressgy 1 year ago
parent cfc1e90ffc
commit 589b3ff745
  1. 56
      src/rgvsale/dto/account.dto.ts
  2. 104
      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 { 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'; import { Transform } from 'class-transformer';
// 获取产品账户分页 // 获取产品账户分页
@ -9,9 +15,9 @@ export class GetAccountPageDto {
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('产品ID必须为数字', 400); throw new HttpException('产品ID必须为数字', 400);
} }
}) })
@ -22,8 +28,8 @@ export class GetAccountPageDto {
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
} else { } else {
throw new HttpException('pageNum必须为数字', 400); throw new HttpException('pageNum必须为数字', 400);
} }
@ -35,8 +41,8 @@ export class GetAccountPageDto {
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
} else { } else {
throw new HttpException('pageSize必须为数字', 400); throw new HttpException('pageSize必须为数字', 400);
} }
@ -45,36 +51,44 @@ export class GetAccountPageDto {
} }
// 添加产品账户 // 添加产品账户
export class CreateAccountDto{ export class CreateAccountDto {
// 产品ID // 产品ID
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if (!val.value) {
return undefined;
} else { } else {
throw new HttpException('产品ID必须为数字', 400); throw new HttpException('产品ID必须为数字', 400);
} }
}) })
@IsNumber(
{},
{
message: '产品ID必须为数字',
},
)
productId: number; productId: number;
@IsOptional() @IsOptional()
@IsString({ @IsString({
message: '产品账户角色必须为字符串', message: '产品账户角色必须为字符串',
}) })
accountRoleName: string accountRoleName: string;
@IsString({ @IsString({
message: '产品账户用户名必须为字符串', message: '产品账户用户名必须为字符串',
}) })
accountUsername: string accountUsername: string;
@IsString({ @IsString({
message: '产品账户密码必须为字符串', message: '产品账户密码必须为字符串',
}) })
accountPassword: string accountPassword: string;
} }
// 编辑产品账户 // 编辑产品账户
export class EditAccountDto{ export class EditAccountDto {
// 账户ID // 账户ID
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
@ -88,9 +102,9 @@ export class EditAccountDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('产品ID必须为数字', 400); throw new HttpException('产品ID必须为数字', 400);
} }
}) })
@ -100,21 +114,21 @@ export class EditAccountDto{
@IsString({ @IsString({
message: '产品账户角色必须为字符串', message: '产品账户角色必须为字符串',
}) })
accountRoleName: string accountRoleName: string;
@IsString({ @IsString({
message: '产品账户用户名必须为字符串', message: '产品账户用户名必须为字符串',
}) })
accountUsername: string accountUsername: string;
@IsString({ @IsString({
message: '产品账户密码必须为字符串', message: '产品账户密码必须为字符串',
}) })
accountPassword: string accountPassword: string;
} }
// 删除产品账户 // 删除产品账户
export class DeleteAccountDto{ export class DeleteAccountDto {
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
@ -122,5 +136,5 @@ export class DeleteAccountDto{
throw new HttpException('产品账户ID必须为数字', 400); throw new HttpException('产品账户ID必须为数字', 400);
} }
}) })
accountId: Number; accountId: number;
} }

@ -1,55 +1,58 @@
import { IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator'; 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'; import { Transform } from 'class-transformer';
// 获取演示问题分页 // 获取演示问题分页
export class GetScenesProblemPageDto{ export class GetScenesProblemPageDto {
// 产品ID // 产品ID
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('产品ID必须为数字', 400); throw new HttpException('产品ID必须为数字', 400);
} }
}) })
productId: number; productId: number;
// 行业ID // 行业ID
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('行业ID必须为数字', 400); throw new HttpException('行业ID必须为数字', 400);
} }
}) })
industryId: number; industryId: number;
// 方案ID // 方案ID
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('方案ID必须为数字', 400); throw new HttpException('方案ID必须为数字', 400);
} }
}) })
programmeId: number; programmeId: number;
// 现场ID // 现场ID
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('现场ID必须为数字', 400); throw new HttpException('现场ID必须为数字', 400);
} }
}) })
@ -67,22 +70,21 @@ export class GetScenesProblemPageDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value) || Number(val.value) === 0) { if (Number(val.value) || Number(val.value) === 0) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else if(Number(val.value) !== 0){ } else if (Number(val.value) !== 0) {
throw new HttpException('利用状态必须为数字', 400); throw new HttpException('利用状态必须为数字', 400);
} }
}) })
isUse: number; isUse: number;
// 页码 // 页码
@IsOptional() @IsOptional()
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
} else { } else {
throw new HttpException('pageNum必须为数字', 400); throw new HttpException('pageNum必须为数字', 400);
} }
@ -94,8 +96,8 @@ export class GetScenesProblemPageDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
} else { } else {
throw new HttpException('pageSize必须为数字', 400); throw new HttpException('pageSize必须为数字', 400);
} }
@ -104,7 +106,7 @@ export class GetScenesProblemPageDto{
} }
// 新增演示问题 // 新增演示问题
export class CreateScenesProblemDto{ export class CreateScenesProblemDto {
// 问题内容 // 问题内容
@IsString({ @IsString({
message: '问题内容必须为字符串', message: '问题内容必须为字符串',
@ -118,9 +120,9 @@ export class CreateScenesProblemDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('演示现场ID必须为数字', 400); throw new HttpException('演示现场ID必须为数字', 400);
} }
}) })
@ -133,9 +135,9 @@ export class CreateScenesProblemDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('演示项ID必须为数字', 400); throw new HttpException('演示项ID必须为数字', 400);
} }
}) })
@ -156,7 +158,7 @@ export class CreateScenesProblemDto{
} }
// 编辑演示问题 // 编辑演示问题
export class EditScenesProblemDto{ export class EditScenesProblemDto {
// 问题内容 // 问题内容
@IsString({ @IsString({
message: '问题内容必须为字符串', message: '问题内容必须为字符串',
@ -170,9 +172,9 @@ export class EditScenesProblemDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('演示现场ID必须为数字', 400); throw new HttpException('演示现场ID必须为数字', 400);
} }
}) })
@ -198,9 +200,9 @@ export class EditScenesProblemDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('演示现场ID必须为数字', 400); throw new HttpException('演示现场ID必须为数字', 400);
} }
}) })
@ -213,9 +215,9 @@ export class EditScenesProblemDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('演示项ID必须为数字', 400); throw new HttpException('演示项ID必须为数字', 400);
} }
}) })
@ -223,7 +225,7 @@ export class EditScenesProblemDto{
} }
// 删除演示问题 // 删除演示问题
export class DeleteScenesProblemDto{ export class DeleteScenesProblemDto {
// 问题ID // 问题ID
@IsNotEmpty({ @IsNotEmpty({
message: '问题ID不能为空', message: '问题ID不能为空',
@ -231,9 +233,9 @@ export class DeleteScenesProblemDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('问题ID必须为数字', 400); throw new HttpException('问题ID必须为数字', 400);
} }
}) })
@ -241,7 +243,7 @@ export class DeleteScenesProblemDto{
} }
// 修改问题利用状态 // 修改问题利用状态
export class ChangeUseStateDto{ export class ChangeUseStateDto {
// 问题ID // 问题ID
@IsNotEmpty({ @IsNotEmpty({
message: '问题ID不能为空', message: '问题ID不能为空',
@ -249,11 +251,11 @@ export class ChangeUseStateDto{
@Transform((val) => { @Transform((val) => {
if (Number(val.value)) { if (Number(val.value)) {
return Number(val.value); return Number(val.value);
} else if(!val.value){ } else if (!val.value) {
return undefined return undefined;
}else { } else {
throw new HttpException('问题ID必须为数字', 400); throw new HttpException('问题ID必须为数字', 400);
} }
}) })
problemId: number; problemId: number;
} }

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

Loading…
Cancel
Save