This commit is contained in:
神仙都没用 2025-02-12 22:33:35 +08:00
parent 3299b02362
commit a66e7e176f
2 changed files with 26 additions and 15 deletions

View File

@ -1,4 +1,9 @@
import { CoolController, BaseController, CoolTag, TagTypes } from '@cool-midway/core'; import {
CoolController,
BaseController,
CoolTag,
TagTypes,
} from '@cool-midway/core';
import { Body, Get, Inject, Post } from '@midwayjs/core'; import { Body, Get, Inject, Post } from '@midwayjs/core';
import { BaseCodingService } from '../../service/coding'; import { BaseCodingService } from '../../service/coding';
@ -16,10 +21,14 @@ export class AdminCodingController extends BaseController {
} }
@Post('/createCode', { summary: '创建代码' }) @Post('/createCode', { summary: '创建代码' })
async createCode(@Body() codes: { async createCode(
path: string; @Body('codes')
content: string; codes: {
}[]) { path: string;
return this.baseCodingService.createCode(codes); content: string;
}[]
) {
this.baseCodingService.createCode(codes);
return this.ok();
} }
} }

View File

@ -28,14 +28,14 @@ export class BaseCodingService extends BaseService {
// 递归扫描目录函数 // 递归扫描目录函数
const scanDir = (dir: string) => { const scanDir = (dir: string) => {
const files = fs.readdirSync(dir); const files = fs.readdirSync(dir);
for (const file of files) { for (const file of files) {
// 跳过 .DS_Store 文件 // 跳过 .DS_Store 文件
if (file === '.DS_Store') continue; if (file === '.DS_Store') continue;
const fullPath = path.join(dir, file); const fullPath = path.join(dir, file);
const stat = fs.statSync(fullPath); const stat = fs.statSync(fullPath);
if (stat.isDirectory()) { if (stat.isDirectory()) {
scanDir(fullPath); scanDir(fullPath);
} else { } else {
@ -62,23 +62,25 @@ export class BaseCodingService extends BaseService {
* *
* @param codes * @param codes
*/ */
async createCode(codes: { async createCode(
path: string; codes: {
content: string; path: string;
}[]) { content: string;
}[]
) {
if (this.app.getEnv() !== 'local') { if (this.app.getEnv() !== 'local') {
throw new Error('只能在开发环境下创建代码'); throw new Error('只能在开发环境下创建代码');
} }
const moduleDir = await this.app.getBaseDir(); const moduleDir = this.app.getAppDir();
for (const code of codes) { for (const code of codes) {
// 格式化代码内容 // 格式化代码内容
const formattedContent = await this.formatContent(code.content); const formattedContent = await this.formatContent(code.content);
// 获取完整的文件路径 // 获取完整的文件路径
const filePath = path.join(moduleDir, code.path); const filePath = path.join(moduleDir, code.path);
// 确保目录存在 // 确保目录存在
const dirPath = path.dirname(filePath); const dirPath = path.dirname(filePath);
if (!fs.existsSync(dirPath)) { if (!fs.existsSync(dirPath)) {