refactor(server): 收敛类型边界工具,aislop AI Slop 10 → 1

- 新增 common/buffer.ts bufferToArrayBuffer:9 处
  'as unknown as ArrayBuffer' 收敛为精确切片(含 byteOffset),
  消除潜在 Buffer 池偏移隐患,类型断言集中到单一实现
- 新增 common/stringify.ts:4 处重复的 stringify 助手收敛为共享实现
- aislop: AI Slop 10→1(仅剩 1 处有理由的 stringify 薄包装,
  eslint no-base-to-string 绕过所需);Code Quality 剩余
  4 重复块(声明式 SQL 配置)+ 2 文件过大(既有规模)均保留
- 测试 142 套件/1065 用例通过
This commit is contained in:
2026-08-08 09:48:03 +08:00
parent 4b60e0c018
commit 1e3d6ee20f
13 changed files with 52 additions and 30 deletions

View File

@@ -24,6 +24,7 @@ import { extractRequestInfo } from '../common/request-utils';
import { RequirePermission } from '../auth/decorators/permission.decorator';
import * as ExcelJS from 'exceljs';
import { CLASSROOM_TEMPLATE_COLUMNS } from './classroom-template';
import { bufferToArrayBuffer } from '../common/buffer';
interface AuthenticatedRequest {
user?: { id: number; username: string };
@@ -173,7 +174,7 @@ export class ClassroomsController {
async importExcel(@UploadedFile() file: Express.Multer.File, @Request() req: AuthenticatedRequest) {
const { ipAddress, userAgent } = extractRequestInfo(req);
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(file.buffer as unknown as ArrayBuffer);
await workbook.xlsx.load(bufferToArrayBuffer(file.buffer));
const ws = workbook.worksheets[0];
const rows: {
name: string;