NineAI 2.4.2

This commit is contained in:
vastxie
2024-01-17 09:22:28 +08:00
commit bdc48207fc
636 changed files with 41864 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppForMoneyDto = void 0;
const class_validator_1 = require("class-validator");
const swagger_1 = require("@nestjs/swagger");
class AppForMoneyDto {
}
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '提现金额', required: true }),
(0, class_validator_1.IsNumber)({}, { message: '提现金额必须为数字' }),
(0, class_validator_1.Min)(0, { message: '提现金额必须大于0' }),
__metadata("design:type", Number)
], AppForMoneyDto.prototype, "withdrawalAmount", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '提现渠道', required: true }),
(0, class_validator_1.IsIn)([1, 2], { message: '提现渠道非法' }),
__metadata("design:type", Number)
], AppForMoneyDto.prototype, "withdrawalChannels", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '提款联系方式', required: true }),
__metadata("design:type", String)
], AppForMoneyDto.prototype, "contactInformation", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '提款备注', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], AppForMoneyDto.prototype, "remark", void 0);
exports.AppForMoneyDto = AppForMoneyDto;

View File

@@ -0,0 +1,27 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuditOrderDto = void 0;
const class_validator_1 = require("class-validator");
const swagger_1 = require("@nestjs/swagger");
class AuditOrderDto {
}
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '审核工单状态', required: true }),
(0, class_validator_1.IsIn)([1, -1], { message: '非法工单状态' }),
__metadata("design:type", Number)
], AuditOrderDto.prototype, "status", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '工单id', required: true }),
(0, class_validator_1.IsNumber)({}, { message: '工单id必须为数字' }),
__metadata("design:type", Number)
], AuditOrderDto.prototype, "id", void 0);
exports.AuditOrderDto = AuditOrderDto;

View File

@@ -0,0 +1,32 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.drawMoneyOrderDto = void 0;
const class_validator_1 = require("class-validator");
const swagger_1 = require("@nestjs/swagger");
class drawMoneyOrderDto {
}
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '查询页数', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], drawMoneyOrderDto.prototype, "page", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '每页数量', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], drawMoneyOrderDto.prototype, "size", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '工单状态', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], drawMoneyOrderDto.prototype, "orderStatus", void 0);
exports.drawMoneyOrderDto = drawMoneyOrderDto;

View File

@@ -0,0 +1,37 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RecordsQueryDto = void 0;
const class_validator_1 = require("class-validator");
const swagger_1 = require("@nestjs/swagger");
class RecordsQueryDto {
}
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '查询页数', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], RecordsQueryDto.prototype, "page", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '每页数量', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], RecordsQueryDto.prototype, "size", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 'c8c479601c1e11eea4c49fad2cbd3ccd', description: '订单ID', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], RecordsQueryDto.prototype, "orderId", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '订单价格', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], RecordsQueryDto.prototype, "orderPrice", void 0);
exports.RecordsQueryDto = RecordsQueryDto;

View File

@@ -0,0 +1,37 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.salesOrderDto = void 0;
const class_validator_1 = require("class-validator");
const swagger_1 = require("@nestjs/swagger");
class salesOrderDto {
}
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '查询页数', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], salesOrderDto.prototype, "page", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '每页数量', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], salesOrderDto.prototype, "size", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '工单状态', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Object)
], salesOrderDto.prototype, "orderStatus", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '提现渠道', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], salesOrderDto.prototype, "withdrawalChannels", void 0);
exports.salesOrderDto = salesOrderDto;

View File

@@ -0,0 +1,52 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SalesUserListDto = void 0;
const class_validator_1 = require("class-validator");
const swagger_1 = require("@nestjs/swagger");
class SalesUserListDto {
}
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '查询页数', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], SalesUserListDto.prototype, "page", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '每页数量', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], SalesUserListDto.prototype, "size", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 99, description: '支付的用户id', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], SalesUserListDto.prototype, "userId", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 'epay', description: '支付的平台', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], SalesUserListDto.prototype, "platform", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '订单状态', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], SalesUserListDto.prototype, "status", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '分销人称号', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], SalesUserListDto.prototype, "salesOutletName", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '返佣比例', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], SalesUserListDto.prototype, "performanceRatio", void 0);
exports.SalesUserListDto = SalesUserListDto;

View File

@@ -0,0 +1,33 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.UpdateUserSalesDto = void 0;
const class_validator_1 = require("class-validator");
const swagger_1 = require("@nestjs/swagger");
class UpdateUserSalesDto {
}
__decorate([
(0, swagger_1.ApiProperty)({ example: 10, description: '佣金比例', required: false }),
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsNumber)({}, { message: '佣金比例必须是数字' }),
__metadata("design:type", Number)
], UpdateUserSalesDto.prototype, "performanceRatio", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: '超级合伙人', description: '自定义分销商名称', required: false }),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], UpdateUserSalesDto.prototype, "salesOutletName", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '用户ID' }),
(0, class_validator_1.IsNumber)({}, { message: '用户ID必须是数字' }),
__metadata("design:type", Number)
], UpdateUserSalesDto.prototype, "userId", void 0);
exports.UpdateUserSalesDto = UpdateUserSalesDto;

163
dist/modules/sales/sales.controller.js vendored Normal file
View File

@@ -0,0 +1,163 @@
"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.SalesController = void 0;
const common_1 = require("@nestjs/common");
const swagger_1 = require("@nestjs/swagger");
const sales_service_1 = require("./sales.service");
const jwtAuth_guard_1 = require("../../common/auth/jwtAuth.guard");
const recordsQuery_dto_1 = require("./dto/recordsQuery.dto");
const appForMoney_dto_1 = require("./dto/appForMoney.dto");
const drawMoneyOrder_dto_1 = require("./dto/drawMoneyOrder.dto");
const salesOrder_dto_1 = require("./dto/salesOrder.dto");
const adminAuth_guard_1 = require("../../common/auth/adminAuth.guard");
const superAuth_guard_1 = require("../../common/auth/superAuth.guard");
const auditOrder_dto_1 = require("./dto/auditOrder.dto");
const salesUserList_dto_1 = require("./dto/salesUserList.dto");
const updateUserSales_dto_1 = require("./dto/updateUserSales.dto");
let SalesController = class SalesController {
constructor(salesService) {
this.salesService = salesService;
}
async getMineAccount(req) {
return this.salesService.getMineAccount(req);
}
async getMineRecords(req, query) {
return this.salesService.getMineRecords(req, query);
}
async inviteRecords(req, query) {
return this.salesService.inviteRecords(req, query);
}
async appForMoney(req, body) {
return this.salesService.appForMoney(req, body);
}
async drawMoneyOrder(req, query) {
return this.salesService.drawMoneyOrder(req, query);
}
async salesOrder(req, query) {
return this.salesService.salesOrder(req, query);
}
async auditOrder(req, body) {
return this.salesService.auditOrder(req, body);
}
async salesUserList(req, query) {
return this.salesService.salesUserList(req, query);
}
async updateUserSales(req, body) {
return this.salesService.updateUserSales(req, body);
}
};
__decorate([
(0, common_1.Get)('mineAccount'),
(0, swagger_1.ApiOperation)({ summary: '获取个人分销账户' }),
(0, common_1.UseGuards)(jwtAuth_guard_1.JwtAuthGuard),
(0, swagger_1.ApiBearerAuth)(),
__param(0, (0, common_1.Req)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "getMineAccount", null);
__decorate([
(0, common_1.Get)('mineRecords'),
(0, swagger_1.ApiOperation)({ summary: '获取个人推介记录' }),
(0, common_1.UseGuards)(jwtAuth_guard_1.JwtAuthGuard),
(0, swagger_1.ApiBearerAuth)(),
__param(0, (0, common_1.Req)()),
__param(1, (0, common_1.Query)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, recordsQuery_dto_1.RecordsQueryDto]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "getMineRecords", null);
__decorate([
(0, common_1.Get)('inviteRecords'),
(0, swagger_1.ApiOperation)({ summary: '管理端获取个人推介记录' }),
(0, common_1.UseGuards)(adminAuth_guard_1.AdminAuthGuard),
(0, swagger_1.ApiBearerAuth)(),
__param(0, (0, common_1.Req)()),
__param(1, (0, common_1.Query)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, recordsQuery_dto_1.RecordsQueryDto]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "inviteRecords", null);
__decorate([
(0, common_1.Post)('appForMoney'),
(0, swagger_1.ApiOperation)({ summary: '申请提现' }),
(0, common_1.UseGuards)(jwtAuth_guard_1.JwtAuthGuard),
(0, swagger_1.ApiBearerAuth)(),
__param(0, (0, common_1.Req)()),
__param(1, (0, common_1.Body)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, appForMoney_dto_1.AppForMoneyDto]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "appForMoney", null);
__decorate([
(0, common_1.Get)('drawMoneyOrder'),
(0, swagger_1.ApiOperation)({ summary: '获取个人提款工单列表' }),
(0, common_1.UseGuards)(jwtAuth_guard_1.JwtAuthGuard),
(0, swagger_1.ApiBearerAuth)(),
__param(0, (0, common_1.Req)()),
__param(1, (0, common_1.Query)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, drawMoneyOrder_dto_1.drawMoneyOrderDto]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "drawMoneyOrder", null);
__decorate([
(0, common_1.Get)('salesOrder'),
(0, swagger_1.ApiOperation)({ summary: '管理端获取工单列表' }),
(0, common_1.UseGuards)(adminAuth_guard_1.AdminAuthGuard),
(0, swagger_1.ApiBearerAuth)(),
__param(0, (0, common_1.Req)()),
__param(1, (0, common_1.Query)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, salesOrder_dto_1.salesOrderDto]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "salesOrder", null);
__decorate([
(0, common_1.Post)('auditOrder'),
(0, swagger_1.ApiOperation)({ summary: '审核工单' }),
(0, common_1.UseGuards)(superAuth_guard_1.SuperAuthGuard),
(0, swagger_1.ApiBearerAuth)(),
__param(0, (0, common_1.Req)()),
__param(1, (0, common_1.Body)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, auditOrder_dto_1.AuditOrderDto]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "auditOrder", null);
__decorate([
(0, common_1.Get)('salesUserList'),
(0, swagger_1.ApiOperation)({ summary: '查询用户佣金账户' }),
(0, common_1.UseGuards)(adminAuth_guard_1.AdminAuthGuard),
__param(0, (0, common_1.Req)()),
__param(1, (0, common_1.Query)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, salesUserList_dto_1.SalesUserListDto]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "salesUserList", null);
__decorate([
(0, common_1.Post)('updateUserSales'),
(0, swagger_1.ApiOperation)({ summary: '修改用户佣金账户' }),
(0, common_1.UseGuards)(superAuth_guard_1.SuperAuthGuard),
(0, swagger_1.ApiBearerAuth)(),
__param(0, (0, common_1.Req)()),
__param(1, (0, common_1.Body)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, updateUserSales_dto_1.UpdateUserSalesDto]),
__metadata("design:returntype", Promise)
], SalesController.prototype, "updateUserSales", null);
SalesController = __decorate([
(0, swagger_1.ApiTags)('sales'),
(0, common_1.Controller)('sales'),
__metadata("design:paramtypes", [sales_service_1.SalesService])
], SalesController);
exports.SalesController = SalesController;

29
dist/modules/sales/sales.module.js vendored Normal file
View File

@@ -0,0 +1,29 @@
"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;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SalesModule = void 0;
const common_1 = require("@nestjs/common");
const sales_controller_1 = require("./sales.controller");
const sales_service_1 = require("./sales.service");
const typeorm_1 = require("@nestjs/typeorm");
const salesUsers_entity_1 = require("./salesUsers.entity");
const salesRecords_entity_1 = require("./salesRecords.entity");
const user_entity_1 = require("../user/user.entity");
const salesOrder_entity_1 = require("./salesOrder.entity");
let SalesModule = class SalesModule {
};
SalesModule = __decorate([
(0, common_1.Global)(),
(0, common_1.Module)({
imports: [typeorm_1.TypeOrmModule.forFeature([salesUsers_entity_1.SalesUsersEntity, salesRecords_entity_1.SalesRecordsEntity, user_entity_1.UserEntity, salesOrder_entity_1.SalesOrderEntity])],
controllers: [sales_controller_1.SalesController],
providers: [sales_service_1.SalesService],
exports: [sales_service_1.SalesService],
})
], SalesModule);
exports.SalesModule = SalesModule;

292
dist/modules/sales/sales.service.js vendored Normal file
View File

@@ -0,0 +1,292 @@
"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.SalesService = void 0;
const globalConfig_service_1 = require("./../globalConfig/globalConfig.service");
const common_1 = require("@nestjs/common");
const salesUsers_entity_1 = require("./salesUsers.entity");
const typeorm_1 = require("@nestjs/typeorm");
const typeorm_2 = require("typeorm");
const salesRecords_entity_1 = require("./salesRecords.entity");
const utils_1 = require("../../common/utils");
const user_entity_1 = require("../user/user.entity");
const decimal_js_1 = require("decimal.js");
const salesOrder_entity_1 = require("./salesOrder.entity");
let SalesService = class SalesService {
constructor(salesUsersEntity, salesRecordsEntity, userEntity, salesOrderEntity, globalConfigService) {
this.salesUsersEntity = salesUsersEntity;
this.salesRecordsEntity = salesRecordsEntity;
this.userEntity = userEntity;
this.salesOrderEntity = salesOrderEntity;
this.globalConfigService = globalConfigService;
}
async getMineAccount(req) {
try {
const { id: userId } = req.user;
let u = await this.salesUsersEntity.findOne({ where: { userId } });
if (!u) {
const { salesBaseRatio = 10, salesBaseTitle = '新秀分销商' } = await this.globalConfigService.getConfigs([
'salesBaseRatio',
'salesBaseTitle',
]);
u = await this.creaetUserBaseSalesInfo({ userId, performanceRatio: Number(salesBaseRatio), salesOutletName: salesBaseTitle });
}
const account = (0, utils_1.formatCreateOrUpdateDate)(u);
const orderCount = await this.salesRecordsEntity.count({ where: { inviterUserId: userId } });
const userInfo = await this.userEntity.findOne({ where: { id: userId } }) || { inviteLinkCount: 0, inviteCode: 'xxxxxxx' };
const { inviteLinkCount, inviteCode } = userInfo;
const inviteCount = await this.userEntity.count({ where: { invitedBy: inviteCode } });
return Object.assign(Object.assign({}, account), { orderCount,
inviteCount,
inviteLinkCount });
}
catch (error) {
console.log('error: ', error);
}
}
async getMineRecords(req, query) {
try {
const { id: inviterUserId } = req.user;
const { page, size } = query;
const [rows, count] = await this.salesRecordsEntity.findAndCount({
where: { inviterUserId },
order: { createdAt: 'DESC' },
skip: (page - 1) * size,
take: size,
});
return {
rows: (0, utils_1.formatCreateOrUpdateDate)(rows),
count,
};
}
catch (error) {
console.log('error: ', error);
}
}
async inviteRecords(req, query) {
try {
const { page, size, orderId, orderPrice } = query;
let where = {};
orderId && (where = { orderId });
orderPrice && (where = { orderPrice });
const [rows, count] = await this.salesRecordsEntity.findAndCount({
where,
order: { createdAt: 'DESC' },
skip: (page - 1) * size,
take: size,
});
const userIds = [];
rows.map((item) => {
userIds.push(item.inviterUserId);
userIds.push(item.inviteeUserId);
});
const userInfo = await this.userEntity.find({ where: { id: (0, typeorm_2.In)(userIds) } });
rows.forEach((item) => {
const inviterUser = userInfo.find((u) => u.id === item.inviterUserId);
const inviteeUser = userInfo.find((u) => u.id === item.inviteeUserId);
const { username, email, avatar } = userInfo.find((u) => u.id === item.inviterUserId);
item.inviterUsername = inviterUser === null || inviterUser === void 0 ? void 0 : inviterUser.username;
item.inviterEmail = inviterUser === null || inviterUser === void 0 ? void 0 : inviterUser.email;
item.inviterAvatar = inviterUser === null || inviterUser === void 0 ? void 0 : inviterUser.avatar;
item.inviteeUsername = inviteeUser === null || inviteeUser === void 0 ? void 0 : inviteeUser.username;
item.inviteeEmail = inviteeUser === null || inviteeUser === void 0 ? void 0 : inviteeUser.email;
item.inviteeAvatar = inviteeUser === null || inviteeUser === void 0 ? void 0 : inviteeUser.avatar;
});
if (req.user.role !== 'super') {
rows.forEach((item) => {
item.inviterEmail = item.inviterEmail ? (0, utils_1.hideString)(item.inviterEmail) : '';
item.inviteeEmail = item.inviteeEmail ? (0, utils_1.hideString)(item.inviteeEmail) : '';
});
}
return {
rows: (0, utils_1.formatCreateOrUpdateDate)(rows),
count,
};
}
catch (error) {
console.log('error: ', error);
}
}
async creaetUserBaseSalesInfo(salesInfo) {
const { userId, performanceRatio, salesOutletName } = salesInfo;
return await this.salesUsersEntity.save({ userId, performanceRatio, salesOutletName });
}
async changeUserBaseSalesInfo(salesInfo) {
return await this.salesUsersEntity.save(salesInfo);
}
async createSalesRecords(salesRecords) {
return await this.salesRecordsEntity.save(salesRecords);
}
async saveCommissionAmount(userId, amount) {
const inviteUserInfo = await this.salesUsersEntity.findOne({ where: { userId } });
if (!inviteUserInfo)
return;
const { totalAmount, distributionBalance } = inviteUserInfo;
console.log('totalAmount, distributionBalance: ', totalAmount, distributionBalance);
return await this.salesUsersEntity.update({ userId }, {
totalAmount: new decimal_js_1.default(totalAmount).plus(amount).toNumber(),
distributionBalance: new decimal_js_1.default(distributionBalance).plus(amount).toNumber(),
});
}
async appForMoney(req, body) {
const { id: userId } = req.user;
const { withdrawalAmount, withdrawalChannels, contactInformation, remark } = body;
const salesAllowDrawMoney = (await this.globalConfigService.getConfigs(['salesAllowDrawMoney'])) || 10;
if (typeof withdrawalAmount !== 'number' || withdrawalAmount <= 0) {
throw new common_1.HttpException('提现金额必须为数字且大于0', common_1.HttpStatus.BAD_REQUEST);
}
if (Number(withdrawalAmount) < Number(salesAllowDrawMoney)) {
throw new common_1.HttpException(`提现金额最低必须为${salesAllowDrawMoney}`, common_1.HttpStatus.BAD_REQUEST);
}
const salesBalanceInfo = await this.salesUsersEntity.findOne({ where: { userId } });
const { distributionBalance, drawMoneyIn } = salesBalanceInfo;
if (Number(distributionBalance) < Number(withdrawalAmount)) {
throw new common_1.HttpException('提现金额不足', common_1.HttpStatus.BAD_REQUEST);
}
const newDistributionBalance = new decimal_js_1.default(distributionBalance).minus(withdrawalAmount).toNumber();
const orderInfo = { userId, withdrawalAmount, orderStatus: 0, auditStatus: 0, withdrawalChannels, contactInformation, remark };
await this.createOrder(orderInfo);
const res = await this.salesUsersEntity.update({ userId }, { distributionBalance: newDistributionBalance, drawMoneyIn: new decimal_js_1.default(drawMoneyIn).plus(withdrawalAmount).toNumber() });
}
async drawMoneyOrder(req, query) {
const { id: userId } = req.user;
const { page, size } = query;
const [rows, count] = await this.salesOrderEntity.findAndCount({
where: { userId },
order: { createdAt: 'DESC' },
skip: (page - 1) * size,
take: size,
});
const auditUserIds = rows.map((item) => item.auditUserId);
const userInfos = await this.userEntity.find({ where: { id: (0, typeorm_2.In)(auditUserIds) } });
rows.forEach((item) => {
const curUserInfo = userInfos.find((user) => user.id === item.auditUserId);
item.auditUserName = curUserInfo ? curUserInfo.username : '';
});
return {
rows: (0, utils_1.formatCreateOrUpdateDate)(rows),
count,
};
}
async salesOrder(req, query) {
const { page, size } = query;
const where = {};
query.orderStatus !== undefined && query.orderStatus !== '' && (where.orderStatus = query.orderStatus);
query.withdrawalChannels && (where.withdrawalChannels = query.withdrawalChannels);
const [rows, count] = await this.salesOrderEntity.findAndCount({
where,
order: { createdAt: 'DESC' },
skip: (page - 1) * size,
take: size,
});
const userIds = rows.map((item) => item.userId);
const userInfo = await this.userEntity.find({ where: { id: (0, typeorm_2.In)(userIds) } });
rows.forEach((item) => {
const curUser = userInfo.find((user) => user.id === item.userId);
if (curUser) {
const { username, email, avatar } = curUser;
item.userInfo = { username, avatar, email: (0, utils_1.hideString)(email) };
}
});
return {
rows: (0, utils_1.formatCreateOrUpdateDate)(rows),
count,
};
}
async createOrder(orderInfo) {
try {
return await this.salesOrderEntity.save(orderInfo);
}
catch (error) {
console.log('error: ', error);
throw new common_1.HttpException('创建提现工单失败', common_1.HttpStatus.BAD_REQUEST);
}
}
async auditOrder(req, body) {
try {
const { id: userId } = req.user;
const { id, status } = body;
if (![1, -1].includes(status)) {
throw new common_1.HttpException('审核状态错误', common_1.HttpStatus.BAD_REQUEST);
}
const orderInfo = await this.salesOrderEntity.findOne({ where: { id } });
if (orderInfo.orderStatus !== 0) {
throw new common_1.HttpException('该工单已审核过', common_1.HttpStatus.BAD_REQUEST);
}
const userBalanceInfo = await this.salesUsersEntity.findOne({ where: { userId: orderInfo.userId } });
const { withdrawalAmount, drawMoneyIn } = userBalanceInfo;
const newWithdrawalAmount = new decimal_js_1.default(withdrawalAmount).plus(orderInfo.withdrawalAmount).toNumber();
const newDrawMoneyIn = new decimal_js_1.default(drawMoneyIn).minus(orderInfo.withdrawalAmount).toNumber();
await this.salesUsersEntity.update({ userId: orderInfo.userId }, { withdrawalAmount: newWithdrawalAmount, drawMoneyIn: newDrawMoneyIn });
await this.salesOrderEntity.update({ id }, { orderStatus: status, auditStatus: status, auditUserId: userId, paymentStatus: status });
return '审核完成';
}
catch (error) {
console.log('error: ', error);
throw new common_1.HttpException('审核失败', common_1.HttpStatus.BAD_REQUEST);
}
}
async salesUserList(req, query) {
const { page, size, salesOutletName, performanceRatio } = query;
const where = {};
salesOutletName && (where.salesOutletName = (0, typeorm_2.Like)(`%${salesOutletName}%`));
performanceRatio && (where.performanceRatio = performanceRatio);
const [rows, count] = await this.salesUsersEntity.findAndCount({
where,
order: { id: 'DESC' },
skip: (page - 1) * size,
take: size,
});
const userIds = rows.map((item) => item.userId);
const userInfos = await this.userEntity.find({ where: { id: (0, typeorm_2.In)(userIds) } });
rows.forEach((item) => {
const curUserInfo = userInfos.find((user) => user.id === item.userId);
item.userInfo = curUserInfo ? curUserInfo : {};
});
if (req.user.role !== 'super') {
rows.forEach((item) => {
var _a, _b;
item.userInfo.email = ((_a = item.userInfo) === null || _a === void 0 ? void 0 : _a.email) ? (0, utils_1.hideString)((_b = item.userInfo) === null || _b === void 0 ? void 0 : _b.email) : '';
});
}
return { rows, count };
}
async updateUserSales(req, body) {
const { performanceRatio, salesOutletName, userId } = body;
const salesU = await this.salesUsersEntity.findOne({ where: { userId } });
if (!salesU) {
throw new common_1.HttpException('用户不存在', common_1.HttpStatus.BAD_REQUEST);
}
const res = await this.salesUsersEntity.update({ userId }, { performanceRatio, salesOutletName });
if (res.affected > 0) {
return '修改成功';
}
else {
throw new common_1.HttpException('修改失败', common_1.HttpStatus.BAD_REQUEST);
}
}
};
SalesService = __decorate([
(0, common_1.Injectable)(),
__param(0, (0, typeorm_1.InjectRepository)(salesUsers_entity_1.SalesUsersEntity)),
__param(1, (0, typeorm_1.InjectRepository)(salesRecords_entity_1.SalesRecordsEntity)),
__param(2, (0, typeorm_1.InjectRepository)(user_entity_1.UserEntity)),
__param(3, (0, typeorm_1.InjectRepository)(salesOrder_entity_1.SalesOrderEntity)),
__metadata("design:paramtypes", [typeorm_2.Repository,
typeorm_2.Repository,
typeorm_2.Repository,
typeorm_2.Repository,
globalConfig_service_1.GlobalConfigService])
], SalesService);
exports.SalesService = SalesService;

56
dist/modules/sales/salesOrder.entity.js vendored Normal file
View File

@@ -0,0 +1,56 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SalesOrderEntity = void 0;
const typeorm_1 = require("typeorm");
const baseEntity_1 = require("../../common/entity/baseEntity");
let SalesOrderEntity = class SalesOrderEntity extends baseEntity_1.BaseEntity {
};
__decorate([
(0, typeorm_1.Column)({ comment: '申请提现人用户Id' }),
__metadata("design:type", Number)
], SalesOrderEntity.prototype, "userId", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '申请提现的金额' }),
__metadata("design:type", Number)
], SalesOrderEntity.prototype, "withdrawalAmount", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '工单状态' }),
__metadata("design:type", Number)
], SalesOrderEntity.prototype, "orderStatus", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '审核状态' }),
__metadata("design:type", Number)
], SalesOrderEntity.prototype, "auditStatus", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '审核人', nullable: true }),
__metadata("design:type", Number)
], SalesOrderEntity.prototype, "auditUserId", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '打款状态', nullable: true }),
__metadata("design:type", Number)
], SalesOrderEntity.prototype, "paymentStatus", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '提现渠道 1: 支付宝 2 微信', nullable: true }),
__metadata("design:type", Number)
], SalesOrderEntity.prototype, "withdrawalChannels", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '提现联系信息、备注即可', nullable: true }),
__metadata("design:type", String)
], SalesOrderEntity.prototype, "contactInformation", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '提现备注留言', nullable: true }),
__metadata("design:type", String)
], SalesOrderEntity.prototype, "remark", void 0);
SalesOrderEntity = __decorate([
(0, typeorm_1.Entity)({ name: 'sales_order' })
], SalesOrderEntity);
exports.SalesOrderEntity = SalesOrderEntity;

View File

@@ -0,0 +1,44 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SalesRecordsEntity = void 0;
const typeorm_1 = require("typeorm");
const baseEntity_1 = require("../../common/entity/baseEntity");
let SalesRecordsEntity = class SalesRecordsEntity extends baseEntity_1.BaseEntity {
};
__decorate([
(0, typeorm_1.Column)({ comment: '邀请人ID' }),
__metadata("design:type", Number)
], SalesRecordsEntity.prototype, "inviterUserId", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '被邀请人ID' }),
__metadata("design:type", Number)
], SalesRecordsEntity.prototype, "inviteeUserId", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '订单ID' }),
__metadata("design:type", String)
], SalesRecordsEntity.prototype, "orderId", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '订单价格', type: 'decimal', scale: 2, precision: 10 }),
__metadata("design:type", Number)
], SalesRecordsEntity.prototype, "orderPrice", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '佣金金额', type: 'decimal', scale: 2, precision: 10 }),
__metadata("design:type", Number)
], SalesRecordsEntity.prototype, "commissionAmount", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '佣金比例', type: 'decimal', scale: 2, precision: 10 }),
__metadata("design:type", Number)
], SalesRecordsEntity.prototype, "commissionPercentage", void 0);
SalesRecordsEntity = __decorate([
(0, typeorm_1.Entity)({ name: 'sales_records' })
], SalesRecordsEntity);
exports.SalesRecordsEntity = SalesRecordsEntity;

52
dist/modules/sales/salesUsers.entity.js vendored Normal file
View File

@@ -0,0 +1,52 @@
"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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SalesUsersEntity = void 0;
const typeorm_1 = require("typeorm");
const baseEntity_1 = require("../../common/entity/baseEntity");
let SalesUsersEntity = class SalesUsersEntity extends baseEntity_1.BaseEntity {
};
__decorate([
(0, typeorm_1.Column)({ comment: '分销人用户Id' }),
__metadata("design:type", Number)
], SalesUsersEntity.prototype, "userId", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '分销人的提成比例' }),
__metadata("design:type", Number)
], SalesUsersEntity.prototype, "performanceRatio", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '分销人的自定义称号等级', nullable: true }),
__metadata("design:type", String)
], SalesUsersEntity.prototype, "salesOutletName", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '分销人账户总金额', type: 'decimal', scale: 2, precision: 10, default: 0 }),
__metadata("design:type", Number)
], SalesUsersEntity.prototype, "totalAmount", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '分销人账户已经提现金额', type: 'decimal', scale: 2, precision: 10, default: 0 }),
__metadata("design:type", Number)
], SalesUsersEntity.prototype, "withdrawalAmount", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '分销人账户可提现金额', type: 'decimal', scale: 2, precision: 10, default: 0 }),
__metadata("design:type", Number)
], SalesUsersEntity.prototype, "distributionBalance", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '分销人账户正在提现的金额', type: 'decimal', scale: 2, precision: 10, default: 0 }),
__metadata("design:type", Number)
], SalesUsersEntity.prototype, "drawMoneyIn", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '累计成功提成的订单量', default: 0 }),
__metadata("design:type", Number)
], SalesUsersEntity.prototype, "orderCount", void 0);
SalesUsersEntity = __decorate([
(0, typeorm_1.Entity)({ name: 'sales_users' })
], SalesUsersEntity);
exports.SalesUsersEntity = SalesUsersEntity;