Commit Graph

15 Commits

Author SHA1 Message Date
Pine c82f430986 feat: 业务层 services 继续抽取(路演/机构)
- RoadshowService:路演发布审核规则(operator 免审/政务范围免审/其余需审)
- OrgService:my_orgs 批量查消除 N+1、成员管理(admin 校验)
- 新增 Repository:Org.list_by_ids、OrgMember.list_for_user/get
- rbac_investor/rbac_org 接线,路由瘦身
2026-08-24 01:58:26 +08:00
Pine 413bd29390 feat: 业务层 services 抽取(财务/结算/补贴)
- FinanceService:opc_add_finance 直写 ORM 改为走 Repository.create(修复四层依赖违规)
- SettlementService:结算佣金(5%)/电子合同幂等/争议联动/投资撮合评分
- SubsidyService:政务三级审批状态机(区县→市→省→发放)
- rbac_ecosystem/rbac_government/rbac_opc 接线,路由瘦身
2026-08-24 01:54:04 +08:00
Pine 557ec90229 docs: 培训子应用 README 更新(async + serverdata 路径 + dispatcher 接入) 2026-08-24 01:47:10 +08:00
Pine 1af1ab6c2f feat: 培训子应用异步化(async 路由 + to_thread 同步 db)
- main.py 43 个路由改 async def
- db 保持同步 sqlite3,经 asyncio.to_thread 原子调用(不阻塞事件循环,规避 aiosqlite ASGI 线程/循环脆弱性)
- 依赖分析识别 db 触碰辅助函数(_count_enrolled/_adopt_phone 等),作为原子单元经 to_thread 调用
- db.get_conn 加 check_same_thread=False(每请求独立连接,跨线程安全)
- db.init_db 移入 async lifespan
- 验证:48 路由全通(报名/签到/统计/测评/政策/调研)+ 66 测试全绿
2026-08-24 01:43:52 +08:00
Pine a813a139dc feat: serverrun/serverdata 全服务栈(参考 PineSoundServer)
- serverrun/:start-all.sh 一键编排 + start-compute/start-emqx + envcopy/encrypt-certs
- 服务编排:core(Dockerfile+compose)、compute-engine(build.sh+compose)、mysql、redis、mqtt(EMQX)
- serverdata/:新增 compute-data/compute-logs/mysql-data/redis-data/emqx-data/emqx-log
- 全服务仅 loopback 暴露,算力引擎 :3000 经 core 代理
2026-08-24 01:00:52 +08:00
Pine 0c0e2586ed feat: serverdata 资源目录 + serverrun 运维编排
- serverdata/:统一承载全部资源目录(data/logs/files/keys/prompts/uploads)
- data/→serverdata/data、templates/→serverdata/prompts、uploads/→serverdata/uploads
- config.py 集中 serverdata 路径;培训子应用 db/uploads 指到 serverdata
- serverrun/:start.sh(初始化资源目录+启动 dispatcher)、Dockerfile、docker-compose(core+compute-engine+redis+mysql)
- 66 测试全绿
2026-08-24 00:42:35 +08:00
Pine a869b2934a test: 平台测试套件适配异步四层,66 全绿
- conftest 改为 monkeypatch DATABASE_URL + lifespan 建库(解决异步引擎跨事件循环)
- 修复 seed_data 辅助函数 await、_to_dict 链式 await、get_current_user await
- 修复 Database.initialize 建表于本实例引擎
- 平台 19 路由全部经异步接口回归通过
2026-08-24 00:34:28 +08:00
Pine 4ac8b81755 test: conftest 适配异步 Database(async URL + asyncio 初始化) 2026-08-23 23:59:34 +08:00
Pine d754d6ca4e feat: 业务层 services + 领域层 domain
- 领域层 domain/rules.py:RBAC 判定规则纯函数(role/permission/scope),接口层守卫改调领域规则
- 业务层 services/task_service.py:统一任务状态机(grab/bid/deliver/win/review),修复 deliver 无状态预检缺陷
- rbac_opc 抢单/投标/交付改走 TaskService
2026-08-23 23:56:39 +08:00
Pine 980a2db6d9 refactor: 平台应用异步四层架构(接口/业务/领域/基础设施)
- 基础设施层 async:SQLAlchemy 异步引擎/会话、33 Repository async 化、models/security/seed 迁入 infrastructure、新增 cache.py(redis.asyncio) 与 oss.py(aioboto3)
- 接口层:routers 迁 api/routers 并全 async,dependencies 迁 api/dependencies(get_db/get_current_user async)
- 依赖:sqlalchemy[asyncio]/aiosqlite/asyncmy/redis/aioboto3;config 异步 URL + Redis/OSS 配置
- 删除废弃:旧同步 db/dependencies/repositories/storage
- 验证:平台 19 路由 + 培训 48 路由全注册;/health /auth/login /auth/me /admin/tasks /notifications 等接口 async 可用
2026-08-23 23:52:58 +08:00
Pine 079035ad65 docs: 配置与文档(.env.example/.gitignore/README) 2026-08-23 22:37:18 +08:00
Pine 2f13af2352 feat: 补充平台应用入口与模板(main/storage/templates) 2026-08-23 22:37:18 +08:00
Pine 6edcec4048 feat: 统一入口 dispatcher(对外 opc.pinesound.cn)
- /api/* /uploads/* /SpXvScDiDT.txt → 培训子应用
- 其余 → 平台应用;驱动双子应用 lifespan
2026-08-23 22:36:00 +08:00
Pine 8b43d3df52 feat: 培训子应用迁入(app/training,/api/*)
- 报名/测评/政策/调研,独立 data/opc.db
- 源自原培训后端,路径调整至 server-core
2026-08-23 22:36:00 +08:00
Pine 26fa546f67 feat: 核心服务端基础框架(身份/平台 API)
- 七端口 RBAC、select-identity、JWT、审计
- FastAPI + SQLAlchemy + SQLite,/auth /opc /admin /agents 等路由
2026-08-23 22:35:59 +08:00