434 lines
19 KiB
JavaScript
434 lines
19 KiB
JavaScript
"use strict";
|
||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||
};
|
||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||
};
|
||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||
return function (target, key) { decorator(target, key, paramIndex); }
|
||
};
|
||
Object.defineProperty(exports, "__esModule", { value: true });
|
||
exports.GeneratedFinancial_productController = void 0;
|
||
const openapi = require("@nestjs/swagger");
|
||
const common_1 = require("@nestjs/common");
|
||
const swagger_1 = require("@nestjs/swagger");
|
||
const api_1 = require("../../app/common/api");
|
||
const typeorm_1 = require("@nestjs/typeorm");
|
||
const typeorm_2 = require("typeorm");
|
||
const api_optional_decorator_1 = require("../../app/common/decorator/api_optional.decorator");
|
||
const class_validator_1 = require("class-validator");
|
||
const order_by_enum_1 = require("../../app/common/enum/order_by.enum");
|
||
const expression_enum_1 = require("../../app/common/enum/expression.enum");
|
||
const class_transformer_1 = require("class-transformer");
|
||
const financial_product_model_1 = require("../../model/financial_product.model");
|
||
const ExtraExp = {
|
||
eq: (k, v) => {
|
||
return (0, typeorm_2.Equal)(v);
|
||
},
|
||
neq: (k, v) => {
|
||
return (0, typeorm_2.Not)(v);
|
||
},
|
||
gt: (k, v) => {
|
||
return (0, typeorm_2.MoreThan)(v);
|
||
},
|
||
egt: (k, v) => {
|
||
return (0, typeorm_2.MoreThanOrEqual)(v);
|
||
},
|
||
lt: (k, v) => {
|
||
return (0, typeorm_2.LessThan)(v);
|
||
},
|
||
elt: (k, v) => {
|
||
return (0, typeorm_2.LessThanOrEqual)(v);
|
||
},
|
||
between: (k, v) => {
|
||
const p = Array.isArray(v) ? v : `${v}`.split(',');
|
||
if (p.length < 2) {
|
||
return undefined;
|
||
}
|
||
if (typeof p[1] == 'undefined') {
|
||
throw new common_1.BadRequestException({
|
||
message: k + '字段,between查询参数错误需要用逗号分割',
|
||
});
|
||
}
|
||
return (0, typeorm_2.Between)(p[0], p[1]);
|
||
},
|
||
'not between': (k, v) => {
|
||
const p = Array.isArray(v) ? v : `${v}`.split(',');
|
||
if (p.length < 2) {
|
||
return undefined;
|
||
}
|
||
if (typeof p[1] == 'undefined') {
|
||
throw new common_1.BadRequestException({
|
||
message: k + '字段,between查询参数错误需要用逗号分割',
|
||
});
|
||
}
|
||
return (0, typeorm_2.Not)((0, typeorm_2.Between)(p[0], p[1]));
|
||
},
|
||
in: (k, v) => {
|
||
if (!Array.isArray(v)) {
|
||
v = `${v}`.split(',');
|
||
}
|
||
return (0, typeorm_2.In)(v);
|
||
},
|
||
'not in': (k, v) => {
|
||
if (!Array.isArray(v)) {
|
||
v = `${v}`.split(',');
|
||
}
|
||
return (0, typeorm_2.Not)((0, typeorm_2.In)(v));
|
||
},
|
||
like: (k, v) => {
|
||
return (0, typeorm_2.Like)(`%${v}%`);
|
||
},
|
||
slike: (k, v) => {
|
||
return (0, typeorm_2.Like)(`${v}%`);
|
||
},
|
||
elike: (k, v) => {
|
||
return (0, typeorm_2.Like)(`${v}%`);
|
||
},
|
||
};
|
||
class GeneratedFinancial_productFindOrderDto {
|
||
id;
|
||
createTime;
|
||
updateTime;
|
||
deleteTime;
|
||
name;
|
||
period;
|
||
principal;
|
||
yieldRate;
|
||
}
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: 'ID', enum: order_by_enum_1.OrderBy }),
|
||
(0, class_validator_1.IsEnum)(order_by_enum_1.OrderBy),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindOrderDto.prototype, "id", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '创建时间', enum: order_by_enum_1.OrderBy }),
|
||
(0, class_validator_1.IsEnum)(order_by_enum_1.OrderBy),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindOrderDto.prototype, "createTime", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '更新时间', enum: order_by_enum_1.OrderBy }),
|
||
(0, class_validator_1.IsEnum)(order_by_enum_1.OrderBy),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindOrderDto.prototype, "updateTime", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '删除时间', enum: order_by_enum_1.OrderBy }),
|
||
(0, class_validator_1.IsEnum)(order_by_enum_1.OrderBy),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindOrderDto.prototype, "deleteTime", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '名称', enum: order_by_enum_1.OrderBy }),
|
||
(0, class_validator_1.IsEnum)(order_by_enum_1.OrderBy),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindOrderDto.prototype, "name", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '周期(单位:天)', enum: order_by_enum_1.OrderBy }),
|
||
(0, class_validator_1.IsEnum)(order_by_enum_1.OrderBy),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindOrderDto.prototype, "period", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '本金', enum: order_by_enum_1.OrderBy }),
|
||
(0, class_validator_1.IsEnum)(order_by_enum_1.OrderBy),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindOrderDto.prototype, "principal", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '收益率(%)', enum: order_by_enum_1.OrderBy }),
|
||
(0, class_validator_1.IsEnum)(order_by_enum_1.OrderBy),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindOrderDto.prototype, "yieldRate", void 0);
|
||
class GeneratedFinancial_productFindRelationDto {
|
||
}
|
||
class GeneratedFinancial_productFindExpressionDto {
|
||
id;
|
||
createTime;
|
||
updateTime;
|
||
deleteTime;
|
||
name;
|
||
period;
|
||
principal;
|
||
yieldRate;
|
||
}
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: 'ID', enum: expression_enum_1.Expression }),
|
||
(0, class_validator_1.IsEnum)(expression_enum_1.Expression),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindExpressionDto.prototype, "id", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '创建时间', enum: expression_enum_1.Expression }),
|
||
(0, class_validator_1.IsEnum)(expression_enum_1.Expression),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindExpressionDto.prototype, "createTime", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '更新时间', enum: expression_enum_1.Expression }),
|
||
(0, class_validator_1.IsEnum)(expression_enum_1.Expression),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindExpressionDto.prototype, "updateTime", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '删除时间', enum: expression_enum_1.Expression }),
|
||
(0, class_validator_1.IsEnum)(expression_enum_1.Expression),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindExpressionDto.prototype, "deleteTime", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '名称', enum: expression_enum_1.Expression }),
|
||
(0, class_validator_1.IsEnum)(expression_enum_1.Expression),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindExpressionDto.prototype, "name", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '周期(单位:天)', enum: expression_enum_1.Expression }),
|
||
(0, class_validator_1.IsEnum)(expression_enum_1.Expression),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindExpressionDto.prototype, "period", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '本金', enum: expression_enum_1.Expression }),
|
||
(0, class_validator_1.IsEnum)(expression_enum_1.Expression),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindExpressionDto.prototype, "principal", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({ description: '收益率(%)', enum: expression_enum_1.Expression }),
|
||
(0, class_validator_1.IsEnum)(expression_enum_1.Expression),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindExpressionDto.prototype, "yieldRate", void 0);
|
||
class GeneratedFinancial_productFindExtraDto {
|
||
expression;
|
||
order;
|
||
relations;
|
||
}
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({
|
||
description: '查询表达式',
|
||
example: { "id": "gt" },
|
||
type: GeneratedFinancial_productFindExpressionDto
|
||
}),
|
||
(0, class_transformer_1.Type)(() => GeneratedFinancial_productFindExpressionDto),
|
||
(0, class_validator_1.ValidateNested)(),
|
||
__metadata("design:type", GeneratedFinancial_productFindExpressionDto)
|
||
], GeneratedFinancial_productFindExtraDto.prototype, "expression", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({
|
||
description: '指定字段排序',
|
||
example: { "id": "desc" },
|
||
type: [GeneratedFinancial_productFindOrderDto],
|
||
}),
|
||
(0, class_validator_1.IsArray)(),
|
||
(0, class_transformer_1.Type)(() => GeneratedFinancial_productFindOrderDto),
|
||
(0, class_validator_1.ValidateNested)({ each: true }),
|
||
__metadata("design:type", Array)
|
||
], GeneratedFinancial_productFindExtraDto.prototype, "order", void 0);
|
||
__decorate([
|
||
(0, api_optional_decorator_1.ApiOptional)({
|
||
description: '查询关联数据',
|
||
type: GeneratedFinancial_productFindRelationDto,
|
||
}),
|
||
(0, class_transformer_1.Type)(() => GeneratedFinancial_productFindRelationDto),
|
||
(0, class_validator_1.ValidateNested)(),
|
||
__metadata("design:type", GeneratedFinancial_productFindRelationDto)
|
||
], GeneratedFinancial_productFindExtraDto.prototype, "relations", void 0);
|
||
class GeneratedFinancial_productFindWhereDto {
|
||
id;
|
||
createTime;
|
||
updateTime;
|
||
deleteTime;
|
||
name;
|
||
period;
|
||
principal;
|
||
yieldRate;
|
||
}
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: 'ID' }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", Number)
|
||
], GeneratedFinancial_productFindWhereDto.prototype, "id", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '创建时间' }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindWhereDto.prototype, "createTime", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '更新时间' }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindWhereDto.prototype, "updateTime", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '删除时间' }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindWhereDto.prototype, "deleteTime", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '名称' }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindWhereDto.prototype, "name", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '周期(单位:天)' }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", Number)
|
||
], GeneratedFinancial_productFindWhereDto.prototype, "period", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '本金' }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindWhereDto.prototype, "principal", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '收益率(%)' }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", String)
|
||
], GeneratedFinancial_productFindWhereDto.prototype, "yieldRate", void 0);
|
||
class GeneratedFinancial_productFindDto {
|
||
paginated;
|
||
where;
|
||
extra;
|
||
}
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '分页', type: api_1.PaginatedDto }),
|
||
(0, class_transformer_1.Type)(() => api_1.PaginatedDto),
|
||
(0, class_validator_1.ValidateNested)(),
|
||
__metadata("design:type", api_1.PaginatedDto)
|
||
], GeneratedFinancial_productFindDto.prototype, "paginated", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '查询条件', type: GeneratedFinancial_productFindWhereDto }),
|
||
(0, class_transformer_1.Type)(() => GeneratedFinancial_productFindWhereDto),
|
||
(0, class_validator_1.ValidateNested)(),
|
||
__metadata("design:type", GeneratedFinancial_productFindWhereDto)
|
||
], GeneratedFinancial_productFindDto.prototype, "where", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '额外', type: GeneratedFinancial_productFindExtraDto }),
|
||
(0, class_transformer_1.Type)(() => GeneratedFinancial_productFindExtraDto),
|
||
(0, class_validator_1.ValidateNested)(),
|
||
__metadata("design:type", GeneratedFinancial_productFindExtraDto)
|
||
], GeneratedFinancial_productFindDto.prototype, "extra", void 0);
|
||
class GeneratedFinancial_productCreateDto extends (0, swagger_1.OmitType)(financial_product_model_1.FinancialProductModel, [
|
||
'id',
|
||
'createTime',
|
||
'updateTime',
|
||
'deleteTime',
|
||
]) {
|
||
}
|
||
class GeneratedFinancial_productUpdateDto extends (0, swagger_1.PartialType)(GeneratedFinancial_productCreateDto) {
|
||
}
|
||
class GeneratedFinancial_productDetailWhereDto extends (0, swagger_1.PartialType)((0, swagger_1.OmitType)(GeneratedFinancial_productFindWhereDto, ['id'])) {
|
||
}
|
||
class GeneratedFinancial_productDetailDto {
|
||
where;
|
||
extra;
|
||
}
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '查询条件', type: GeneratedFinancial_productDetailWhereDto }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", GeneratedFinancial_productDetailWhereDto)
|
||
], GeneratedFinancial_productDetailDto.prototype, "where", void 0);
|
||
__decorate([
|
||
(0, swagger_1.ApiPropertyOptional)({ description: '额外', type: GeneratedFinancial_productFindExtraDto }),
|
||
(0, class_validator_1.Allow)(),
|
||
__metadata("design:type", GeneratedFinancial_productFindExtraDto)
|
||
], GeneratedFinancial_productDetailDto.prototype, "extra", void 0);
|
||
const identity = 'userId';
|
||
const identityExist = false;
|
||
let GeneratedFinancial_productController = class GeneratedFinancial_productController {
|
||
repos;
|
||
constructor(repos) {
|
||
this.repos = repos;
|
||
}
|
||
async list(dto) {
|
||
const page = dto.paginated?.page || 1;
|
||
const size = dto.paginated?.size || 15;
|
||
const skip = (page - 1) * size;
|
||
let where;
|
||
if (dto.extra?.expression && dto.where) {
|
||
where = Object.fromEntries(Object.entries(dto.where).map(([key, value]) => {
|
||
const expression = dto.extra?.expression[key];
|
||
if (typeof value != 'undefined' && value != '' && value != null) {
|
||
if (expression && ExtraExp[expression]) {
|
||
value = ExtraExp[expression](key, value);
|
||
}
|
||
}
|
||
if (expression == expression_enum_1.Expression.between &&
|
||
(!value || (Array.isArray(value) && value.length < 2))) {
|
||
value = undefined;
|
||
}
|
||
return [key, value];
|
||
}));
|
||
}
|
||
else {
|
||
where = (dto.where || {});
|
||
}
|
||
where = Object.fromEntries(Object.entries(where).filter(([_, v]) => {
|
||
if (typeof v == 'undefined') {
|
||
return false;
|
||
}
|
||
if (typeof v == 'string' && !v) {
|
||
return false;
|
||
}
|
||
return true;
|
||
}));
|
||
const o = dto.extra?.order && dto.extra?.order.length
|
||
? dto.extra?.order
|
||
: [{ id: 'desc' }];
|
||
const order = Object.fromEntries(o.map((it) => Object.keys(it).map((key) => [key, it[key]]))[0]);
|
||
const list = await this.repos.find({
|
||
where,
|
||
order,
|
||
skip: skip,
|
||
take: size,
|
||
relations: typeof dto.extra?.relations == 'object'
|
||
? Object.keys(dto.extra?.relations).filter((it) => dto.extra?.relations[it])
|
||
: [],
|
||
});
|
||
const count = await this.repos.count({
|
||
where: where,
|
||
});
|
||
return api_1.Api.pagination(list, count);
|
||
}
|
||
async detail(id, dto) {
|
||
const where = {
|
||
id,
|
||
...dto.where,
|
||
};
|
||
const item = await this.repos.findOne({
|
||
where,
|
||
relations: typeof dto.extra?.relations == 'object'
|
||
? Object.keys(dto.extra?.relations).filter((it) => dto.extra?.relations[it])
|
||
: [],
|
||
});
|
||
return api_1.Api.success(item);
|
||
}
|
||
};
|
||
exports.GeneratedFinancial_productController = GeneratedFinancial_productController;
|
||
__decorate([
|
||
(0, common_1.Post)('list'),
|
||
(0, swagger_1.ApiOperation)({ summary: '理财产品列表' }),
|
||
api_1.Api.ApiPaginatedResponse({
|
||
model: financial_product_model_1.FinancialProductModel,
|
||
codeDescription: '200成功',
|
||
}),
|
||
openapi.ApiResponse({ status: 201 }),
|
||
__param(0, (0, common_1.Body)()),
|
||
__metadata("design:type", Function),
|
||
__metadata("design:paramtypes", [GeneratedFinancial_productFindDto]),
|
||
__metadata("design:returntype", Promise)
|
||
], GeneratedFinancial_productController.prototype, "list", null);
|
||
__decorate([
|
||
(0, common_1.Post)('detail/:id'),
|
||
(0, swagger_1.ApiParam)({ name: 'id', description: '理财产品ID' }),
|
||
(0, swagger_1.ApiOperation)({ summary: '理财产品详情' }),
|
||
api_1.Api.ApiResponse({
|
||
model: financial_product_model_1.FinancialProductModel,
|
||
codeDescription: '200成功',
|
||
}),
|
||
openapi.ApiResponse({ status: 201 }),
|
||
__param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
|
||
__param(1, (0, common_1.Body)()),
|
||
__metadata("design:type", Function),
|
||
__metadata("design:paramtypes", [Number, GeneratedFinancial_productDetailDto]),
|
||
__metadata("design:returntype", Promise)
|
||
], GeneratedFinancial_productController.prototype, "detail", null);
|
||
exports.GeneratedFinancial_productController = GeneratedFinancial_productController = __decorate([
|
||
(0, common_1.Controller)('generated/financial_product'),
|
||
(0, swagger_1.ApiTags)('G理财产品'),
|
||
__param(0, (0, typeorm_1.InjectRepository)(financial_product_model_1.FinancialProductModel)),
|
||
__metadata("design:paramtypes", [typeorm_2.Repository])
|
||
], GeneratedFinancial_productController);
|
||
//# sourceMappingURL=generated_financial_product.controller.js.map
|