Pine
|
4d027db5a8
|
fix(training): 报名审核状态与生命周期状态联动一致——消除 admin 端「状态全是待审核」
- create_booking:免费+自动审核活动报名即置 status=confirmed(与 audit_status=approved 一致);人工审核/付费活动保持 pending
- update_booking:审核 approved→status=confirmed;rejected→status=pending;显式 status 不覆盖
- 修正历史数据:approved+pending 的报名已同步为 confirmed(4 条)
- 新增冒烟测试 scripts/smoke_booking_status.py
|
2026-09-02 10:30:44 +08:00 |
|
Pine
|
7a9741a333
|
feat(pay): 特约商户进件接口——平台以服务商身份代提交进件+素材上传+状态查询自动激活
- profitsharing.py:submit_applyment / query_applyment / upload_image(复用服务商 API 证书加密敏感字段)
- service.py:create_merchant_applyment(幂等:已有 applying/active 商户绑定返回已有);query_merchant_applyment(FINISHED 自动回填 sub_mchid + 添加 MERCHANT_ID 接收方激活;REJECTED 标记+原因)
- routers.py:POST upload-media / POST applyment / GET {binding_id}/applyment
- payment_bindings 增加 detail 列(0040_payment_binding_detail,接在 0040_incubator 之后)
- 冒烟测试覆盖进件闭环(提交幂等/通过自动激活/驳回)
|
2026-09-01 19:49:50 +08:00 |
|
Pine
|
0fd210ac1f
|
feat(pay): 微信服务商分账+资金托管改造——OPC个人/商户双绑定收款、验收95/5分账、回调确认、escrow资金托管字段扩展
- profitsharing.py:服务商分账客户端(添加接收方/发起分账/查分账/退款/回调验签)
- payment_bindings + settlement_logs:OPC 收款绑定(personal openid / merchant 子商户号)与分账流水镜像
- settlement_service.release_escrow:验收后优先发起微信分账(95%接单者/5%平台),未配置时降级台账结算(channel=manual)
- handle_split_notify:分账回调确认 escrow released(幂等)
- 路由:分账回调 + 绑定创建/列表/停用
- 迁移:alembic 0039(新表 + escrows 幂等加列)+ 兜底迁移脚本 + 冒烟测试
|
2026-09-01 18:39:41 +08:00 |
|
Pine
|
92d0c43419
|
fix(market): 修复安装包下载 500 并新增示例包上架 CLI
- service._row 补充 bundle_json/bundle_url 字段,修复 /market/items/{id}/bundle
因 KeyError 返回 500(skill 内嵌 bundle / plugin-app OSS 直链均受影响)
- bundle_payload 适配已解析的 bundle_json dict
- 新增 scripts/dev/publish_market_examples.py:issue-token / publish / verify 三子命令,
支持一键上架技能/插件/应用示例包(创建→上传→提交→审核→上架→精选)
|
2026-09-01 00:12:15 +08:00 |
|
Pine
|
31f8703595
|
chore(seed): 种子脚本去 sqlite 直连 + 大厅/社区演示种子 + 大厅单测
- scripts/db/seed.py:培训种子与 accounts→users 迁移改经 training 数据层(双方言)
- scripts/db/seed_hall_community.py:人才/岗位/服务/帖子演示数据(幂等,离线执行)
- tests/test_hall.py:人才档案/帖子点赞评论计数/register 报名状态机覆盖
|
2026-08-31 22:20:16 +08:00 |
|
Pine
|
ac4c1aabe4
|
chore(db): SQLite→MySQL 迁移脚本 + 测试夹具适配
- scripts/migrate_sqlite_to_mysql.py:离线迁移(MySQL 建表→alembic stamp head→
逐表拷贝[NOT NULL 列类型化兜底]→自增回填→行数校验),支持 --drop-existing 重建与增量续跑
- tests/test_training_persist.py:夹具改 monkeypatch DATABASE_URL + reset_engine,
建表统一走 Base.metadata(原 DB_PATH/SCHEMA 随 sqlite3 直连移除)
|
2026-08-31 21:40:31 +08:00 |
|
Pine
|
75b81ca8de
|
chore(scripts): 演示数据临时脚本(资讯4类×25条+活动40场,手动 add/del,不入种子迁移)
|
2026-08-29 00:30:16 +08:00 |
|
Pine
|
c2f4c13ab3
|
feat(auth): 账号唯一性+清理多余账号 —— 迁移0011加phone/微信openid非空部分唯一索引
- users.phone/wx_openid/wx_mini_openid/wx_unionid 各自唯一(非空部分唯一索引)
- 创建账号必生成ID(create用new_id);find_by_phone/find_by_wx 唯一校验
- cleanup_accounts.py 清理旧accounts已被users接管的重复账号;seed不再重复造账号、迁移后删旧行
|
2026-08-25 22:47:27 +08:00 |
|
Pine
|
6b0c3ba134
|
feat(tasks): 新增任务种子脚本(幂等) —— 21 个多类型丰富演示任务
- scripts/db/seed_tasks.py:按 task_code 幂等插入;四种接单方式(grab/bid/assign/recommend)全覆盖、多分类(经 task_categories 映射 category_id)、多预算/交付时限/人数(限额或独占)/发包方/状态(published 上墙 + claimed/doing/completed/cancelled 对照)。21 条,当前任务总数 30、上墙 25。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-25 20:18:16 +08:00 |
|
Pine
|
9d60e0afc6
|
feat(auth): 平台成唯一账号源——小程序微信登录进 users + OPC 报名资料字段
统一用户账号体系(阶段1,非破坏):
- UserRepository 新增 get_by_wx_mini_openid。
- /auth/wx-login:小程序登录(X-Client=miniprogram)按 wx_mini_openid 建/复用
users 账号(role=opc_member, source=mini_program, auth_type=wx_openid),
并带 nickName/avatarUrl;非小程序仍走 wx_openid。
- /auth/me + 登录响应补齐小程序契约字段 name/phone/phoneBound。
- users 增 opc_status/topics 列(alembic 0010);desktop/web profile 也输出
name/phone/phoneBound/status/topics,且 update-profile 支持 name/status/topics 映射。
- scripts/db/seed.py 增 accounts→users 幂等迁移:旧小程序账号并入全局 users
(wx_mini_openid/phone 关联 + opc_member 身份),由用户执行 migrate+seed。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-25 19:59:34 +08:00 |
|
Pine
|
6de1b5a31b
|
refactor(training): 培训数据层并入唯一总库 app.db(非运行态建表/种子,全列可空)
- 训练 ORM 模型改名回旧表名(accounts/events/bookings/tests/courses/policy_logs/plan_logs/survey_logs)
并全列可空(兼容按部分字段插入);alembic 0003 丢弃重建并入唯一总库。
- training/db.py 指向 app.db、移除运行时 init_db;main.py lifespan 移除 init_db。
- seed.py 增培训种子(超管账号/排期/在线课程, 幂等)。
- 验证(真实库 migrate+seed+TestClient):auth/me、admin/*、park/*、training /api/health|events|courses 全 200。
|
2026-08-24 20:31:57 +08:00 |
|
Pine
|
75caab4d39
|
feat(db): P2 摘除运行时种子 + 脚本化迁移/种子(migrate.py/seed.py)
- Database.initialize() 不再 create_all/seed_data:运行时仅做库连通检查(不建表不灌种子)。
- 新增 scripts/db/migrate.py(封装 alembic upgrade/downgrade)、scripts/db/seed.py(非运行态灌平台种子)。
- 新增 serverdata/seed/(README) 存放种子 JSON。
- 迁移/种子流程:uv run python scripts/db/migrate.py + scripts/db/seed.py,再启动应用。
- 已知待修:seed 内 AGENT_SEED 全局固定 id 唯一冲突(既有缺陷, 待 P2 后续修);pine/角色已能灌入。
|
2026-08-24 19:32:41 +08:00 |
|