Commit Graph
4 Commits
Author SHA1 Message Date
ClaudeandClaude 969fdbbe7f feat(repo): 全部模块 service 改用 repository(Repository 全面落地)
- 24 个模块 service 从直接 db.query 改为使用各自 repository(get_by_id/filter/create/update)
- 4 个 agent 并行分组转换:system 组、dictionary/configuration/member/region、cms/link/notice、job/log
- 保留合法 db 用法:跨模型查询(user→dept/level/position、ad→adsort、adsort→item/itemcate)、投影查询(role/menu)、按条件删除(set_permission/save_role_menu/add_user_role)、独立会话(record_job_log/record_operation_log)、db.commit(pause/resume)
- 修复 JobLogRepository 软删列 del_flag;修复 ad/notice create 重复传参 bug
- 修复 base_repository.get_by_id/get_by_ids 兼容字符串 ID
- 实测:27 个读接口 + dept/notice/member/level 写操作全通过

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 11:02:58 +08:00
ClaudeandClaude 13853daa4a feat(phase6): 测试补全 + 集成测试 + repository 落地示范
- tests/unit/modules/test_repository.py:base_repository 在 SQLite 内存库的 CRUD 测试
- tests/integration/api/test_smoke.py:登录链路 / 只读接口 / 未授权拦截(标记 integration,默认跳过)
- conftest 提供 sqlite_db(隔离 DB)与 app/client/admin_headers(集成)fixture
- pytest.ini 默认跳过 integration,Makefile test-integration 可显式运行
- 修复 base_repository.get_by_id/get_by_ids 对字符串 ID 的兼容(URL 路径参数)
- 示范 modules/system/level service 改用 level_repo,CRUD 全链路实测通过

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 10:21:41 +08:00
ClaudeandClaude 64a5504396 feat(phase4): 全部业务模块迁移到 modules/(结构迁移)
- 21 个模块目录(auth/system/dictionary/configuration/cms/member/region/link/notice/job/log/upload/index)
- 每个模块 router.py(合并模块导出多个 router)/schemas.py/service.py/repository.py/models.py
- routers/v1.py 与 routers/__init__.py 改为直接引用 modules,前缀与权限串原样保留
- core/middleware.py 懒加载指向 modules.system.menu / modules.log;core/redis_client.py 指向 modules.job.scheduler
- apps/views|services|forms 全部改为 re-export 垫片
- 迁移后 grep 守门通过:modules/core 无 apps/extensions 残留引用
- 实测登录、27+ 模块接口、写操作 commit、操作日志落库均正常

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 10:13:30 +08:00
ClaudeandClaude b2c7b93786 feat(phase3): 全部模型迁移到 modules/,apps/models 改垫片
- 18 个模块目录、25 个模型按业务域聚合(user+user_role、role+role_menu、dict+dict_item、config+config_item、member+member_level、job+job_log、login_log+operation_log 合并)
- 表名/字段/继承关系原样保留(含 DictItem=dict_data、JobLog 用 del_flag)
- apps/models/*.py 全部改为 re-export 垫片,旧导入路径保持兼容

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 10:06:53 +08:00