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 { Param, ValidationPipe, Query, HttpException, HttpStatus } from '@nestjs/common';
import {
Param,
ValidationPipe,
Query,
HttpException,
HttpStatus,
} from '@nestjs/common';
import { Transform } from 'class-transformer';
// 获取产品账户分页
@ -9,9 +15,9 @@ export class GetAccountPageDto {
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if(!val.value){
return undefined
}else {
} else if (!val.value) {
return undefined;
} else {
throw new HttpException('产品ID必须为数字', 400);
}
})
@ -22,8 +28,8 @@ export class GetAccountPageDto {
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if(!val.value){
return undefined
} else if (!val.value) {
return undefined;
} else {
throw new HttpException('pageNum必须为数字', 400);
}
@ -35,8 +41,8 @@ export class GetAccountPageDto {
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if(!val.value){
return undefined
} else if (!val.value) {
return undefined;
} else {
throw new HttpException('pageSize必须为数字', 400);
}
@ -45,36 +51,44 @@ export class GetAccountPageDto {
}
// 添加产品账户
export class CreateAccountDto{
export class CreateAccountDto {
// 产品ID
@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;
}
// 编辑产品账户
export class EditAccountDto{
export class EditAccountDto {
// 账户ID
@Transform((val) => {
if (Number(val.value)) {
@ -88,9 +102,9 @@ export class EditAccountDto{
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
} else if(!val.value){
return undefined
}else {
} else if (!val.value) {
return undefined;
} else {
throw new HttpException('产品ID必须为数字', 400);
}
})
@ -100,21 +114,21 @@ export class EditAccountDto{
@IsString({
message: '产品账户角色必须为字符串',
})
accountRoleName: string
accountRoleName: string;
@IsString({
message: '产品账户用户名必须为字符串',
})
accountUsername: string
accountUsername: string;
@IsString({
message: '产品账户密码必须为字符串',
})
accountPassword: string
accountPassword: string;
}
// 删除产品账户
export class DeleteAccountDto{
export class DeleteAccountDto {
@Transform((val) => {
if (Number(val.value)) {
return Number(val.value);
@ -122,5 +136,5 @@ export class DeleteAccountDto{
throw new HttpException('产品账户ID必须为数字', 400);
}
})
accountId: Number;
accountId: number;
}

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

@ -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