Commit Graph
26 Commits
Author SHA1 Message Date
gitadmin 97c24f58c7 更新 2026-09-14 11:42:39 +08:00
gitadmin 148d5bdd51 更新 2026-09-14 11:25:41 +08:00
gitadmin 8dd921570f 更新 2026-09-14 11:11:18 +08:00
gitadmin d202cb5c6d 更新 2026-09-14 10:34:44 +08:00
gitadmin 8cf532b015 更新 2026-09-14 10:18:47 +08:00
gitadmin c68c9f88d4 签入版本 2026-09-12 22:50:25 +08:00
gitadmin 5674789e63 签入版本 2026-09-12 18:06:35 +08:00
gitadmin deac7f9cb9 签入版本 2026-09-12 18:04:58 +08:00
gitadmin e3e7df047d 签入版本 2026-09-12 18:02:19 +08:00
gitadmin 29d523dade 签入版本 2026-09-12 17:50:55 +08:00
gitadmin f8dfe1879e 签入版本 2026-09-12 17:44:52 +08:00
gitadmin 3233d221b0 签入版本 2026-09-12 17:39:13 +08:00
ClaudeandClaude 25c8b039ac test(integration): 补 commit/rollback 与 operation_log 集成测试
- test_write_commit_persists:成功写操作被 db_session_middleware 提交
- test_write_rollback_on_validation_error:参数校验失败回滚,无脏数据
- test_operation_log_persists_on_success/failure:operation_log 独立会话落库,业务失败也记录
- 集成测试共 7 项,全部通过

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 11:29:22 +08:00
ClaudeandClaude ae2e141713 refactor(repo): 收敛 base_model 双轨,删除函数统一走 repo.batch_delete_r
- shared/base_repository.py 新增 batch_delete_r(返回 R,等价原 base_model 语义)
- 20 个模块删除函数从 Model.batch_delete_r 改为 x_repo.batch_delete_r
- shared/base_model.py 移除 classmethod(get_by_id/get_by_ids/get_all_active/exists/batch_delete_r),只留字段 + to_dict
- 清理 base_model 多余 imports
- 实测 dept 删除、批量删除及多模块读接口正常

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 11:28:25 +08:00
ClaudeandClaude 2cb71cc50d fix: 上传接口缺 request 参数致 500;Excel 导入 JSONResponse 解析崩溃
- modules/upload/router.py:三个上传端点补 request: Request 参数,permission_required 可正常取到当前用户
- modules/system/level/service.py:import_level 解析 upload_file 返回的 JSONResponse body 再取 filePath,修复 Excel 导入崩溃
- 实测:uploadImage 上传成功、level 导入 7 条成功;清理测试产生的重复 level 数据

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 11:17:11 +08:00
ClaudeandClaude 8588003f4e chore: 合并开发依赖到 requirements.txt,删除 requirements 备份副本
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 11:15:00 +08:00
ClaudeandClaude 1c645cd8d3 fix(ad): 文字广告 cover 列 NOT NULL 冲突;删除 11.txt 杂项
- modules/cms/ad/service.py add_ad/update_ad:非图片广告(type!=1)cover 从 None 改为空字符串 '',避免插入 NOT NULL 列报 'cover cannot be null';详情展示已兼容空串
- 删除 11.txt(既有审查遗留的 bug 清单文件)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 11:07:03 +08:00
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 63bebedf05 feat(phase5): 解耦与收尾清理
- core/redis_client.py 移除 scheduler 耦合,lifespan 由 core/app.py 组合(Redis→调度器→Redis)
- main.py 改从 core.app 导入 create_app
- 删除 apps/、extensions/ 目录;utils 删除已迁移垫片与死代码 formatter.py
- 新增 deploy/(nginx、supervisor)、scripts/(init_db、seed)、logs/(结构化日志落盘)
- core/app.py 接入 core.logger setup_logging
- 更新 CLAUDE.md 反映 core/shared/modules 新结构

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 10:16:44 +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
ClaudeandClaude bde742c7a8 feat(phase2): shared/ 共享层迁移
- shared/: enums/constants/pagination/base_model/base_db/base_repository/base_service
- apps/constants 与 apps/models/base_model、base_db 改为垫片
- 新增 pagination 单元测试

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 10:03:38 +08:00
ClaudeandClaude db4ee85db5 feat(phase1): core/ 基础设施迁移,旧路径改垫片
- core/: database/redis_client/jwt/password/response/exceptions/security/logger/deps/middleware/app
- create_app 迁移到 core/app.py,中间件注册顺序与异常处理器原样保留
- extensions/ utils/ apps/ 旧文件全部改为 re-export 垫片,import 路径保持兼容
- 新增 core 单元测试(jwt/password/response/request 共 12 个)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 10:02:01 +08:00
ClaudeandClaude fe1d191e55 feat(phase0): 工具链 + 契约快照测试,修复既有 bug
- 新增 pyproject.toml / pytest.ini / Makefile / requirements-dev.txt
- 新增 3 个契约快照测试(路由167/权限串148/表名25),守护前端与数据契约
- 修复 requirements.txt UTF-16 编码导致 pip 无法解析
- 修复 JobLog 未继承 Base 导致无法映射(fastapi_job_log 表缺失于 metadata)
- 修复 base_model.to_dict() 未序列化纯 date 类型(birthday 等导致 500)
- 补充 .gitignore(.env/缓存/上传目录)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 09:57:33 +08:00
ClaudeandClaude dbcce79536 chore: 基线提交(重构前快照)
重构前保存现有 apps/ 结构基线,供后续各阶段回滚。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 09:43:18 +08:00