Ready for QA
As a 开发者, I want 将史诗007中移植的所有Allin系统模块集成到packages/server中,配置路由和依赖, so that Allin系统的所有功能可以在当前项目中正常运行,API端点可以通过server访问。
packages/server/package.json的当前依赖配置packages/server/package.jsonpackages/server/src/index.ts的当前路由注册方式packages/server/src/index.ts@d8d/core-module/*模块的导入方式@d8d/allin-channel-module依赖allin-packages/channel-module@d8d/allin-channel-module@d8d/allin-company-module依赖allin-packages/company-module@d8d/allin-company-module@d8d/allin-disability-module依赖allin-packages/disability-module@d8d/allin-disability-module@d8d/allin-order-module依赖allin-packages/order-module@d8d/allin-order-module@d8d/allin-platform-module依赖allin-packages/platform-module@d8d/allin-platform-module@d8d/allin-salary-module依赖allin-packages/salary-module@d8d/allin-salary-module@d8d/allin-enums依赖allin-packages/enums@d8d/allin-enumspnpm install检查依赖解析@d8d/allin-channel-module的路由import { channelRoutes } from '@d8d/allin-channel-module'api.route('/api/v1/channel', channelRoutes)/api/v1/channel@d8d/allin-company-module的路由import { companyRoutes } from '@d8d/allin-company-module'api.route('/api/v1/company', companyRoutes)/api/v1/company@d8d/allin-disability-module的路由import { disabilityRoutes } from '@d8d/allin-disability-module'api.route('/api/v1/disability', disabilityRoutes)/api/v1/disability@d8d/allin-order-module的路由import { orderRoutes } from '@d8d/allin-order-module'api.route('/api/v1/order', orderRoutes)/api/v1/order@d8d/allin-platform-module的路由import { platformRoutes } from '@d8d/allin-platform-module'api.route('/api/v1/platform', platformRoutes)/api/v1/platform@d8d/allin-salary-module的路由import { salaryRoutes } from '@d8d/allin-salary-module'api.route('/api/v1/salary', salaryRoutes)/api/v1/salaryChannel from @d8d/allin-channel-moduleCompany from @d8d/allin-company-moduleDisabledPerson, DisabledBankCard, DisabledPhoto, DisabledRemark, DisabledVisit from @d8d/allin-disability-moduleEmploymentOrder, OrderPerson, OrderPersonAsset from @d8d/allin-order-modulePlatform from @d8d/allin-platform-moduleSalaryLevel from @d8d/allin-salary-moduleinitializeDataSource调用initializeDataSource([UserEntity, Role, File, SystemConfig, AreaEntity])packages/server/src/index.ts:16pnpm --filter @d8d/server dev/doc端点查看OpenAPI文档GET /api/v1/channel/getAllChannels - 渠道列表GET /api/v1/company/getAllCompanies - 公司列表GET /api/v1/disability/getAllDisabledPersons - 残疾人列表GET /api/v1/order/getAllOrders - 订单列表GET /api/v1/platform/getAllPlatforms - 平台列表GET /api/v1/salary/getAllSalaryLevels - 薪资列表allin-modules.integration.test.ts集成测试文件packages/server/tests/integration/allin-modules.integration.test.tspackages/server/tests/integration/auth.integration.test.tsGET /api/v1/channel/getAllChannelsGET /api/v1/company/getAllCompaniesGET /api/v1/disability/getAllDisabledPersonsGET /api/v1/order/getAllOrdersGET /api/v1/platform/getAllPlatformsGET /api/v1/salary/getAllSalaryLevelspnpm --filter @d8d/server test:integrationpnpm --filter @d8d/server typecheckpnpm --filter @d8d/server testGET /api/v1/users - 用户管理GET /api/v1/auth/profile - 认证GET /api/v1/files - 文件管理GET /api/v1/areas - 区域管理@d8d/allin-channel-module)@d8d/allin-company-module)@d8d/allin-enums)@d8d/allin-disability-module)@d8d/allin-order-module)@d8d/allin-platform-module)@d8d/allin-salary-module)Channel - 渠道管理实体Company - 公司管理实体DisabledPerson, DisabledBankCard, DisabledPhoto, DisabledRemark, DisabledVisit - 残疾人管理实体EmploymentOrder, OrderPerson, OrderPersonAsset - 订单管理实体Platform - 平台管理实体SalaryLevel - 薪资管理实体/api/v1//api/v1/channel - 渠道管理/api/v1/company - 公司管理/api/v1/disability - 残疾人管理/api/v1/order - 订单管理/api/v1/platform - 平台管理/api/v1/salary - 薪资管理success、data、message字段api.route()方法注册模块路由initializeDataSource()注册所有实体packages/server/package.json - 依赖配置src/index.ts - 主入口文件,路由注册allin-packages/目录下各个模块packages/server/src/index.ts - 现有路由注册模式@d8d/core-module/* - 现有模块导入模式packages/server/tests/integration/allin-modules.integration.test.ts/api/v1/{module}路径正确注册{moduleName}Routes和主要实体allin-packages/目录,server在packages/server/packages/server/tests/目录packages/server/tests/integration/中添加allin-modules.integration.test.tspnpm install验证依赖解析allin-modules.integration.test.ts集成测试文件| Date | Version | Description | Author |
|---|---|---|---|
| 2025-12-03 | 1.0 | 初始故事创建 | John (Product Manager) |
| 2025-12-03 | 1.1 | 更新验收标准和任务,添加集成测试要求 | John (Product Manager) |
此部分由开发代理在实现过程中填写
Claude Code (d8d-model)
disabilityRoutes不存在,修复为disabledPersonRoutesCompany被当作类型使用,修复为从/entities路径导入$get()需要query: {}参数,修复所有模块的测试调用getAllOrders和getAllSalaryLevels端点不存在,修复为list端点✅ 任务1:分析packages/server的当前结构
packages/server/package.json的依赖配置packages/server/src/index.ts的路由注册方式✅ 任务2:在package.json中添加Allin模块的workspace依赖
@d8d/allin-channel-module: workspace:*@d8d/allin-company-module: workspace:*@d8d/allin-disability-module: workspace:*@d8d/allin-order-module: workspace:*@d8d/allin-platform-module: workspace:*@d8d/allin-salary-module: workspace:*@d8d/allin-enums: workspace:*pnpm install验证依赖配置正确性✅ 任务3:在index.ts中导入并注册Allin模块的路由
添加了所有Allin模块的路由导入:
import { channelRoutes } from '@d8d/allin-channel-module'
import { companyRoutes } from '@d8d/allin-company-module'
import { disabledPersonRoutes } from '@d8d/allin-disability-module'
import { orderRoutes } from '@d8d/allin-order-module'
import { platformRoutes } from '@d8d/allin-platform-module'
import { salaryRoutes } from '@d8d/allin-salary-module'
注册了所有路由到对应的API路径:
export const channelApiRoutes = api.route('/api/v1/channel', channelRoutes)
export const companyApiRoutes = api.route('/api/v1/company', companyRoutes)
export const disabilityApiRoutes = api.route('/api/v1/disability', disabledPersonRoutes)
export const orderApiRoutes = api.route('/api/v1/order', orderRoutes)
export const platformApiRoutes = api.route('/api/v1/platform', platformRoutes)
export const salaryApiRoutes = api.route('/api/v1/salary', salaryRoutes)
✅ 任务4:在数据库初始化中注册Allin模块的实体
导入所有Allin模块的实体:
import { Channel } from '@d8d/allin-channel-module/entities'
import { Company } from '@d8d/allin-company-module/entities'
import { DisabledPerson, DisabledBankCard, DisabledPhoto, DisabledRemark, DisabledVisit } from '@d8d/allin-disability-module/entities'
import { EmploymentOrder, OrderPerson, OrderPersonAsset } from '@d8d/allin-order-module/entities'
import { Platform } from '@d8d/allin-platform-module/entities'
import { SalaryLevel } from '@d8d/allin-salary-module/entities'
更新initializeDataSource调用,添加所有实体:
initializeDataSource([
UserEntity, Role, File, SystemConfig, AreaEntity,
Channel,
Company,
DisabledPerson, DisabledBankCard, DisabledPhoto, DisabledRemark, DisabledVisit,
EmploymentOrder, OrderPerson, OrderPersonAsset,
Platform,
SalaryLevel
])
⚠️ 任务5:验证API端点可访问性
✅ 任务6:添加Allin模块的集成测试
packages/server/tests/integration/allin-modules.integration.test.ts文件$get()调用添加query: {}参数getAllOrders → list,getAllSalaryLevels → list⚠️ 任务7:通过类型检查和基本测试验证
@d8d/user-module等),这是项目整体依赖问题,不影响Allin模块集成⚠️ 任务8:确保与现有模块的兼容性
修改文件:
packages/server/package.json - 添加Allin模块依赖packages/server/src/index.ts - 导入并注册Allin模块路由和实体docs/stories/007.008.integrate-allin-modules-to-server.story.md - 更新Dev Agent Record新增文件:
packages/server/tests/integration/allin-modules.integration.test.ts - Allin模块集成测试依赖更新:
pnpm-lock.yaml - 自动生成的依赖锁文件Results from QA Agent QA review of the completed story implementation