|
@@ -100,30 +100,51 @@ salary (独立)
|
|
|
|
|
|
|
|
### 3. 模块到独立包的映射方案
|
|
### 3. 模块到独立包的映射方案
|
|
|
|
|
|
|
|
-基于现有项目命名规范(参考`auth-module`、`file-module`等),制定以下映射方案:
|
|
|
|
|
-
|
|
|
|
|
-| 原模块名 | 独立包名 | 说明 |
|
|
|
|
|
-|---------|---------|------|
|
|
|
|
|
-| channel_info | `@d8d/channel-module` | 渠道管理模块 |
|
|
|
|
|
-| company | `@d8d/company-module` | 公司管理模块,依赖platform-module |
|
|
|
|
|
-| dict_management | `@d8d/dict-module` | 字典管理模块 |
|
|
|
|
|
-| disability_person | `@d8d/disability-module` | 残疾人管理模块(简化名称) |
|
|
|
|
|
-| order | `@d8d/order-module` | 订单管理模块 |
|
|
|
|
|
-| platform | `@d8d/platform-module` | 平台管理模块 |
|
|
|
|
|
-| salary | `@d8d/salary-module` | 薪资管理模块 |
|
|
|
|
|
|
|
+基于现有项目命名规范,并考虑这是Allin系统专属模块,制定以下映射方案:
|
|
|
|
|
+
|
|
|
|
|
+| 原模块名 | 独立包名 | 目录名 | 说明 |
|
|
|
|
|
+|---------|---------|--------|------|
|
|
|
|
|
+| channel_info | `@d8d/allin-channel-module` | `channel-module` | 渠道管理模块 |
|
|
|
|
|
+| company | `@d8d/allin-company-module` | `company-module` | 公司管理模块,依赖platform-module |
|
|
|
|
|
+| dict_management | `@d8d/allin-dict-module` | `dict-module` | 字典管理模块 |
|
|
|
|
|
+| disability_person | `@d8d/allin-disability-module` | `disability-module` | 残疾人管理模块(简化名称) |
|
|
|
|
|
+| order | `@d8d/allin-order-module` | `order-module` | 订单管理模块 |
|
|
|
|
|
+| platform | `@d8d/allin-platform-module` | `platform-module` | 平台管理模块 |
|
|
|
|
|
+| salary | `@d8d/allin-salary-module` | `salary-module` | 薪资管理模块 |
|
|
|
|
|
|
|
|
**命名原则**:
|
|
**命名原则**:
|
|
|
-1. 使用`@d8d/`作为包名前缀
|
|
|
|
|
-2. 模块名使用单数形式 + `-module`后缀
|
|
|
|
|
-3. 名称简洁明了,反映模块核心功能
|
|
|
|
|
-4. 不使用多租户后缀`-mt`(本次移植为非多租户版本)
|
|
|
|
|
|
|
+1. **包名前缀**:使用`@d8d/allin-`前缀,明确表明是Allin系统专属包
|
|
|
|
|
+2. **目录名**:使用简洁的`{模块名}-module`格式,便于在`allin-packages`目录中管理
|
|
|
|
|
+3. **模块名**:使用单数形式 + `-module`后缀
|
|
|
|
|
+4. **名称简洁**:反映模块核心功能
|
|
|
|
|
+5. **非多租户**:不使用`-mt`后缀(本次移植为非多租户版本)
|
|
|
|
|
|
|
|
-### 4. 包结构规范
|
|
|
|
|
|
|
+### 4. 目录结构和包规范
|
|
|
|
|
|
|
|
|
|
+#### 目录结构决策
|
|
|
|
|
+由于这些模块是`allin_system-master`项目独有的业务模块(非通用模块),将在项目根目录创建独立目录:
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+项目根目录/
|
|
|
|
|
+├── allin-packages/ # Allin系统专属包目录
|
|
|
|
|
+│ ├── channel-module/ # 渠道管理模块
|
|
|
|
|
+│ ├── company-module/ # 公司管理模块
|
|
|
|
|
+│ ├── dict-module/ # 字典管理模块
|
|
|
|
|
+│ ├── disability-module/ # 残疾人管理模块
|
|
|
|
|
+│ ├── order-module/ # 订单管理模块
|
|
|
|
|
+│ ├── platform-module/ # 平台管理模块
|
|
|
|
|
+│ └── salary-module/ # 薪资管理模块
|
|
|
|
|
+├── packages/ # 现有通用包目录(保持不变)
|
|
|
|
|
+└── allin_system-master/ # 原始代码目录(移植源)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**目录命名说明**:`allin-packages`清晰表明这是Allin系统专属的包目录,与`allin_system-master`源目录对应,区别于通用的`packages`目录。
|
|
|
|
|
+
|
|
|
|
|
+#### 包结构规范
|
|
|
参考现有`auth-module`结构,每个独立包应包含:
|
|
参考现有`auth-module`结构,每个独立包应包含:
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
-packages/{module-name}/
|
|
|
|
|
|
|
+allin-packages/{module-name}/
|
|
|
├── package.json # 包配置,workspace依赖管理
|
|
├── package.json # 包配置,workspace依赖管理
|
|
|
├── tsconfig.json # TypeScript配置
|
|
├── tsconfig.json # TypeScript配置
|
|
|
├── vitest.config.ts # 测试配置(如需要)
|
|
├── vitest.config.ts # 测试配置(如需要)
|
|
@@ -143,7 +164,8 @@ packages/{module-name}/
|
|
|
1. `package.json`中设置`"type": "module"`
|
|
1. `package.json`中设置`"type": "module"`
|
|
|
2. 主入口为`src/index.ts`
|
|
2. 主入口为`src/index.ts`
|
|
|
3. 使用workspace依赖:`"@d8d/core-module": "workspace:*"`
|
|
3. 使用workspace依赖:`"@d8d/core-module": "workspace:*"`
|
|
|
-4. 导出必要的服务和实体
|
|
|
|
|
|
|
+4. 包名使用`@d8d/allin-`前缀,如`@d8d/allin-channel-module`
|
|
|
|
|
+5. 导出必要的服务和实体
|
|
|
|
|
|
|
|
### 5. 依赖关系解决方案
|
|
### 5. 依赖关系解决方案
|
|
|
|
|
|
|
@@ -155,32 +177,33 @@ packages/{module-name}/
|
|
|
4. **移植顺序策略**:按依赖顺序移植,先移植基础模块
|
|
4. **移植顺序策略**:按依赖顺序移植,先移植基础模块
|
|
|
|
|
|
|
|
**建议移植顺序**:
|
|
**建议移植顺序**:
|
|
|
-1. `platform-module`(基础)
|
|
|
|
|
-2. `channel-module`、`dict-module`、`salary-module`(独立)
|
|
|
|
|
-3. `company-module`(依赖platform)
|
|
|
|
|
-4. `order-module`和`disability-module`(最后处理,解决循环依赖)
|
|
|
|
|
|
|
+1. `allin-platform-module`(基础)
|
|
|
|
|
+2. `allin-channel-module`、`allin-dict-module`、`allin-salary-module`(独立)
|
|
|
|
|
+3. `allin-company-module`(依赖platform)
|
|
|
|
|
+4. `allin-order-module`和`allin-disability-module`(最后处理,解决循环依赖)
|
|
|
|
|
|
|
|
## 故事(更新后)
|
|
## 故事(更新后)
|
|
|
|
|
|
|
|
**注**:故事1的分析工作已完成,结果见上方"模块分析结果"部分。
|
|
**注**:故事1的分析工作已完成,结果见上方"模块分析结果"部分。
|
|
|
|
|
|
|
|
1. **故事2:创建基础包模板和移植工具**
|
|
1. **故事2:创建基础包模板和移植工具**
|
|
|
|
|
+ - 创建`allin-packages`目录结构
|
|
|
- 创建标准的独立包模板(参考auth-module结构)
|
|
- 创建标准的独立包模板(参考auth-module结构)
|
|
|
- 开发自动化移植脚本
|
|
- 开发自动化移植脚本
|
|
|
- - 配置workspace依赖管理
|
|
|
|
|
|
|
+ - 配置workspace依赖管理(使用`@d8d/allin-`前缀)
|
|
|
- 准备TypeScript配置和构建脚本
|
|
- 准备TypeScript配置和构建脚本
|
|
|
- 创建package.json模板
|
|
- 创建package.json模板
|
|
|
|
|
|
|
|
2. **故事3:移植基础独立模块**
|
|
2. **故事3:移植基础独立模块**
|
|
|
- - 移植`platform-module`(基础依赖)
|
|
|
|
|
- - 移植`channel-module`(独立模块)
|
|
|
|
|
- - 移植`dict-module`(独立模块)
|
|
|
|
|
- - 移植`salary-module`(独立模块)
|
|
|
|
|
|
|
+ - 移植`allin-platform-module`(基础依赖)
|
|
|
|
|
+ - 移植`allin-channel-module`(独立模块)
|
|
|
|
|
+ - 移植`allin-dict-module`(独立模块)
|
|
|
|
|
+ - 移植`allin-salary-module`(独立模块)
|
|
|
- 验证基础模块功能
|
|
- 验证基础模块功能
|
|
|
|
|
|
|
|
3. **故事4:移植依赖模块和解决循环依赖**
|
|
3. **故事4:移植依赖模块和解决循环依赖**
|
|
|
- - 移植`company-module`(依赖platform-module)
|
|
|
|
|
- - 处理`order-module`和`disability-module`的循环依赖
|
|
|
|
|
|
|
+ - 移植`allin-company-module`(依赖platform-module)
|
|
|
|
|
+ - 处理`allin-order-module`和`allin-disability-module`的循环依赖
|
|
|
- 创建共享实体或接口抽象
|
|
- 创建共享实体或接口抽象
|
|
|
- 移植两个复杂模块的核心功能
|
|
- 移植两个复杂模块的核心功能
|
|
|
|
|
|
|
@@ -239,16 +262,18 @@ packages/{module-name}/
|
|
|
"模块分析已完成,关键发现:
|
|
"模块分析已完成,关键发现:
|
|
|
|
|
|
|
|
1. **依赖关系分析完成**:7个模块的依赖关系已明确,发现order和disability_person模块存在循环依赖
|
|
1. **依赖关系分析完成**:7个模块的依赖关系已明确,发现order和disability_person模块存在循环依赖
|
|
|
-2. **命名方案确定**:使用@d8d前缀,-module后缀,非多租户版本
|
|
|
|
|
-3. **移植顺序建议**:platform → channel/dict/salary → company → order/disability
|
|
|
|
|
|
|
+2. **命名方案确定**:使用`@d8d/allin-`前缀,`-module`后缀,非多租户版本
|
|
|
|
|
+3. **目录结构**:在根目录创建`allin-packages/`目录存放专属包
|
|
|
|
|
+4. **移植顺序建议**:platform → channel/dict/salary → company → order/disability
|
|
|
|
|
|
|
|
请基于以上分析开发详细的用户故事。关键考虑:
|
|
请基于以上分析开发详细的用户故事。关键考虑:
|
|
|
|
|
|
|
|
- 这是对运行TypeScript、NestJS、PostgreSQL、Redis、MinIO的现有系统的增强
|
|
- 这是对运行TypeScript、NestJS、PostgreSQL、Redis、MinIO的现有系统的增强
|
|
|
-- **只移植有实体的7个模块**,映射关系已确定
|
|
|
|
|
|
|
+- **只移植有实体的7个模块**,映射关系已确定(使用`@d8d/allin-`前缀)
|
|
|
|
|
+- **目录结构**:模块将放置在`allin-packages/`目录下
|
|
|
- **循环依赖问题**:order和disability_person模块需要特殊处理
|
|
- **循环依赖问题**:order和disability_person模块需要特殊处理
|
|
|
- 集成点:模块间API调用、数据库访问、配置共享
|
|
- 集成点:模块间API调用、数据库访问、配置共享
|
|
|
-- 要遵循的现有模式:@d8d包命名、workspace依赖、模块化结构
|
|
|
|
|
|
|
+- 要遵循的现有模式:workspace依赖、模块化结构
|
|
|
- 关键兼容性要求:API接口不变、数据库schema兼容、性能影响最小
|
|
- 关键兼容性要求:API接口不变、数据库schema兼容、性能影响最小
|
|
|
- 每个故事必须包含验证现有功能保持完整的检查
|
|
- 每个故事必须包含验证现有功能保持完整的检查
|
|
|
|
|
|