rwadurian/backend/services/mining-admin-service/src/api/controllers/system-accounts.controller.ts

108 lines
4.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Controller, Get, Param, Query } from '@nestjs/common';
import { ApiTags, ApiOperation, ApiBearerAuth, ApiParam, ApiQuery } from '@nestjs/swagger';
import { SystemAccountsService } from '../../application/services/system-accounts.service';
@ApiTags('System Accounts')
@ApiBearerAuth()
@Controller('system-accounts')
export class SystemAccountsController {
constructor(private readonly systemAccountsService: SystemAccountsService) {}
@Get()
@ApiOperation({ summary: '获取系统账户列表' })
async getSystemAccounts() {
return this.systemAccountsService.getSystemAccounts();
}
@Get('summary')
@ApiOperation({ summary: '获取系统账户汇总' })
async getSystemAccountsSummary() {
return this.systemAccountsService.getSystemAccountsSummary();
}
@Get(':accountType/records')
@ApiOperation({ summary: '获取系统账户挖矿记录' })
@ApiParam({ name: 'accountType', type: String, description: '系统账户类型OPERATION/PROVINCE/CITY/HEADQUARTERS' })
@ApiQuery({ name: 'regionCode', required: false, type: String, description: '区域代码(省/市代码)' })
@ApiQuery({ name: 'page', required: false, type: Number })
@ApiQuery({ name: 'pageSize', required: false, type: Number })
async getSystemAccountMiningRecords(
@Param('accountType') accountType: string,
@Query('regionCode') regionCode?: string,
@Query('page') page?: number,
@Query('pageSize') pageSize?: number,
) {
return this.systemAccountsService.getSystemAccountMiningRecords(
accountType,
regionCode || null,
page ?? 1,
pageSize ?? 20,
);
}
@Get(':accountType/transactions')
@ApiOperation({ summary: '获取系统账户交易记录' })
@ApiParam({ name: 'accountType', type: String, description: '系统账户类型OPERATION/PROVINCE/CITY/HEADQUARTERS' })
@ApiQuery({ name: 'regionCode', required: false, type: String, description: '区域代码(省/市代码)' })
@ApiQuery({ name: 'page', required: false, type: Number })
@ApiQuery({ name: 'pageSize', required: false, type: Number })
async getSystemAccountTransactions(
@Param('accountType') accountType: string,
@Query('regionCode') regionCode?: string,
@Query('page') page?: number,
@Query('pageSize') pageSize?: number,
) {
return this.systemAccountsService.getSystemAccountTransactions(
accountType,
regionCode || null,
page ?? 1,
pageSize ?? 20,
);
}
@Get(':accountType/contributions')
@ApiOperation({
summary: '获取系统账户算力来源明细',
description: '显示该账户的每笔算力来自哪个认种订单',
})
@ApiParam({
name: 'accountType',
type: String,
description: '系统账户类型OPERATION/PROVINCE/CITY/HEADQUARTERS',
})
@ApiQuery({ name: 'regionCode', required: false, type: String, description: '区域代码(省/市代码)' })
@ApiQuery({ name: 'page', required: false, type: Number, description: '页码默认1' })
@ApiQuery({ name: 'pageSize', required: false, type: Number, description: '每页数量默认20' })
async getSystemAccountContributionRecords(
@Param('accountType') accountType: string,
@Query('regionCode') regionCode?: string,
@Query('page') page?: number,
@Query('pageSize') pageSize?: number,
) {
return this.systemAccountsService.getSystemAccountContributionRecords(
accountType,
regionCode || null,
page ?? 1,
pageSize ?? 20,
);
}
@Get(':accountType/contribution-stats')
@ApiOperation({
summary: '获取系统账户算力明细统计',
description: '显示算力来源的汇总信息,包括记录数、来源认种订单数、来源用户数等',
})
@ApiParam({
name: 'accountType',
type: String,
description: '系统账户类型OPERATION/PROVINCE/CITY/HEADQUARTERS',
})
@ApiQuery({ name: 'regionCode', required: false, type: String, description: '区域代码(省/市代码)' })
async getSystemAccountContributionStats(
@Param('accountType') accountType: string,
@Query('regionCode') regionCode?: string,
) {
return this.systemAccountsService.getSystemAccountContributionStats(accountType, regionCode || null);
}
}