Commit Graph

22 Commits

Author SHA1 Message Date
Pine 1cd26e174e feat: 企业认领/企业入驻申请/团队 身份链路
- company_claim_requests:认领园区入驻企业(仅搜索);admin 认领仅当企业无管理员;
  审核人:admin→园区管理员,member→有企业管理员则企业管理员否则园区管理员;
  证明资料(姓名/身份证/手机号)仅存证
- company_apply_requests:已有企业加入平台;park_entered 园区管理员审,
  independent 运营方审;通过后建 ParkCompany 并设提交人为管理员
- teams/team_members:团队即建即用;支持升级为企业(复用企业入驻申请)
- 审核权限:园区管理员=ParkTenant.operator_user_id;企业管理员=is_admin;运营方=operator
- 新表由启动时 create_all 幂等创建
2026-09-07 16:15:35 +08:00
Pine e831fdd34e feat: 内容审核体系(0070)— 违规内容库/举报表/IP采集/统一审核服务/审核API
- 迁移0070:content_moderation_records(违规库,快照+发布者+IP+原因+处置人)、
  content_reports(举报队列);各内容表加 ip 列,dm_messages 加 hidden,
  community_comments/ratings 加 status,users 加 profile_hidden/original_nickname
- moderation_service:hide/restore/delete(物理删除留档)/list/archive/report/
  handle_report/scan + 申诉通知;用户资料隐藏自动脱敏昵称
- rbac_moderation:/admin/moderation/{type} 列表、hide/restore/delete、
  violations 违规库、reports 举报处理、scan 巡查;/content/report 用户举报入口
- IP 采集:任务/岗位/服务/社区帖子/评论/私信/评价/主页提交创建端点写入发布者 IP
- 前台可见性:社区评论/私信查询过滤 hidden
2026-09-07 15:07:43 +08:00
Pine 7a8cf77775 修复:compute路由前缀错误导致404
问题:rbac_compute_pricing.py的路由前缀是/api/compute,
但dispatcher会去掉/api前缀后分发给core_app,
导致实际请求路径变成/compute/...,无法匹配/api/compute/...路由。

修复:将路由前缀从/api/compute改为/compute,
与其他路由(/admin、/hall等)保持一致。
2026-09-06 22:58:27 +08:00
Pine 4dedb43d7f 算力多级折扣与企业余额体系 - 服务端核心改造
数据模型:
- 新增 tenant_discounts(运营端载体折扣)
- 新增 tenant_user_discounts(载体端账号折扣)
- 新增 compute_recharges(算力充值记录)
- 新增 compute_balance_allocations(余额分配记录)
- 新增 compute_usage_records(算力使用记录)
- 扩展 park_tenants(default_company_discount, default_user_discount)
- 扩展 park_companies(compute_balance, compute_balance_used)
- 扩展 company_members(role, compute_balance, compute_balance_used, left_at, left_reason)

核心服务:
- compute_pricing_service.py:四级折扣价格计算、余额扣费、企业余额管理

API接口(/api/compute):
- 运营端:载体折扣管理、标准价管理
- 载体端:企业折扣设置、账号折扣设置、默认折扣设置
- 企业端:余额充值、成员余额分配/回收、充值/分配记录
- 个人端:我的余额、使用记录、退出企业
- 内部:价格查询、算力扣费

数据库迁移:0064_compute_discount_balance.py
2026-09-06 17:59:56 +08:00
Pine 9f1370dfe6 服务大厅电商化改造:数据库迁移+后端19个接口
- 迁移0062:opc_services扩展16列+service_orders扩展18列+新增3张表(评价/收藏/浏览)
- 新路由 rbac_service_market.py:服务CRUD/上下架/收藏/评价/订单全生命周期/支付,共19个接口
- 服务分类8个:技术开发/设计创意/营销推广/咨询服务/教育培训/生活服务/媒体内容/其他
- 双轨制支付:官方服务微信支付平台担保,个人服务支付方式徽章线下支付
- 订单状态机:待支付→待接单→服务中→待确认→已完成,含取消/退款分支
2026-09-05 15:46:46 +08:00
Pine 0fd1307d57 全线加入Redis缓存:1)统一Redis配置支持PINEAGENTS_REDIS_*前缀;2)增强cache.py:JSON序列化/缓存装饰器/批量删除/分布式锁/全局单例+连接池;3)大厅任务列表缓存8秒(key含用户ID+筛选条件);4)大厅总览缓存30秒;5)人才/服务/岗位列表缓存20秒;6)用户档案_actor_profile缓存30秒(can_accept核心依赖);7)认证类型列表缓存5分钟;8)应用启动时连接Redis,失败自动降级无缓存 2026-09-05 14:33:38 +08:00
Pine e4d8534155 信用体系与徽章体系完整实现:L1-L8等级+无上限累加积分+26事件规则+26徽章引擎+全量重算+用户/运营端接口 2026-09-05 03:05:56 +08:00
Pine 279341dd51 feat(pages): 新增OPC个人主页(user_pages)后端 — 自写HTML/第三方嵌入、能力接入声明、徽章规则、公开渲染接口 2026-09-04 21:51:33 +08:00
Pine ab52d4013d fix: 修复接口错误 - _loads未定义+重新注册ecosystem路由
1. repositories.py: 添加 _loads 函数定义(之前从 hall_repositories 隐式依赖导致 NameError)
   - 修复 /cert/types 返回 500 错误
2. main.py: 重新注册 rbac_ecosystem 路由(通知/信用/任务/合同/争议等基础功能)
   - 修复 /me/credit 返回 404 错误
3. rbac_ecosystem.py: 将已移除的 service 角色统一替换为 opc_member
   - _ANY 元组移除 service
   - 所有 require_roles 中的 service 替换为 opc_member
2026-09-03 11:05:37 +08:00
Pine 6bb988cc3e refactor: 角色组织账号模型重构 - 阶段一
1. capabilities 写入 JWT,避免每次请求查库
2. 移除 service 账号类型,非 operator/carrier 统一归为 opc_member
3. 前端统一基于 capabilities 判断权限
4. 清理登录接口死代码,恢复账号密码登录
5. 移除 enterprise/provider/government/investor/developer 角色
6. 清理 seed.py 中多余角色和权限定义
7. 重写 rbac_portals.py 只保留 carrier 路由
2026-09-03 00:35:40 +08:00
Pine 700bafdb26 feat(invite): 完整邀请归因系统
数据模型:
- User表添加inviter_id/invite_code/invited_at/invite_share_count字段
- 新建invite_records表记录分享/扫码/注册归因
- MySQL迁移已执行

后端API(/invite/*):
- GET /invite/me 获取我的邀请码和统计
- GET /invite/qrcode 生成带邀请参数的小程序码(体验版/正式版)
- POST /invite/share 记录分享行为
- POST /invite/scan 记录扫码行为(无需登录)
- GET /invite/invitees 获取我邀请的用户列表

登录归因:
- wx_login支持inviter参数,新用户自动绑定邀请人
- 用户列表返回inviter_name和invite_count

服务层:
- invite_service.py:邀请码生成、归因绑定、小程序码生成、统计
2026-09-02 02:18:41 +08:00
Pine 04624ab477 feat(dm): 站内会话 + 我发布的任务/岗位(0041)
- 0041 迁移:dm_messages 点对点私信表(会话按双方聚合,read_at 未读标记)
- DmRepository:send/conversations(聚合末条+未读数)/thread/mark_read
- /dm/conversations、/dm/messages(GET 记录+已读、POST 发送,禁自发、校验接收人存在)
- /hall/tasks/mine(发布者视角,附接单/报名/投标计数)、/hall/jobs/mine(附投递计数)
2026-09-01 20:19:04 +08:00
Pine 53f7f495d3 feat(incubator): 昆明大学生创业园运营系统子应用——月度报告(填报/审核/统计) + 共享区域(直播间/会议室)申请/审批/备案
- app/incubator/ 独立子应用(service.py + routers.py,prefix=/incubator,21 接口)
- 身份自动判定:管理方=role carrier(归属 park_tenants.operator_user_id 或权限码),提交方=company_members 关联 park_companies.tenant_id 非空
- 月度报告:一企业一月一报告(UNIQUE),状态 draft/submitted/approved/rejected,统计维度对齐《派音人工智能2608》纸质月报
- 共享区域:live/meeting 两类,冲突检测按 (area_id,start_at,end_at) 与 pending/approved 重叠,承诺勾选校验,审批+备案
- models.py 追加三 ORM 模型;main.py 挂载路由;0040_incubator 迁移(父=0039_wx_profitsharing)
2026-09-01 19:48:51 +08:00
Pine 04808aaf76 feat(market): 技能/插件/应用统一市场子应用(目录/管理/定价/购买/支付分发)+ 0037 迁移与权限种子 2026-08-31 23:41:59 +08:00
Pine 4602c8dac7 feat(hall): 大厅/社区接口 + 任务报名(register)模式
- 新增 rbac_hall.py:/hall/*(overview/任务列表详情/发布任务/报名/接单列表/
  人才列表详情/档案维护/岗位发布详情投递/服务发布列表详情编辑询单)+
  /community/*(Hub/帖子/发帖/点赞/评论/载体列表详情/关注/入驻)
- TaskService.register/register_select:报名即占位状态机(复用 can_accept 资格判定,
  register_quota 限额、去重、选定转 assigned,任务保持 published)
- can_accept 修复 actor 不在 users 表时 full=None 崩溃;写权限按叠加制 capabilities 判定
- 路由挂载 app/main.py(/hall + /community)
2026-08-31 22:20:16 +08:00
Pine dbc29eee59 feat(membership): 成员制归属重构与叠加制身份(多对多成员表+转园两级审核)
- park_members/company_members 多对多成员表(0028),users.affiliation 为派生缓存由 sync_user_affiliation 刷新
- 转园两级审核状态机(0029):pending_from→pending_to→approved,支持用户/企业整体转园与运营端兜底
- 叠加制身份(0030):身份恒为运营/载体/OPC,企业管理员为能力叠加非身份,去除 enterprise/carrier 直写角色
- rbac 新增 memberships/park-transfers/企业管理员工作台 /admin/ent/* 接口

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-31 20:36:26 +08:00
Pine f1147dced3 feat(pay): 微信支付V3子应用与算力充值
- app/pay 独立支付子应用(config/wxpay/models/repository/service/routers),便于后期拆分微服务
- 充值订单表 0026_compute_recharge;套餐支持折扣(discount)与上架开关(enabled),DB system_configs 优先、env 兜底
- 统一小程序支付:桌面端出小程序码→扫码进小程序确认页按 openid 发起 JSAPI→回调幂等到账(引擎 adjust_user_quota+镜像回写)
- 内嵌 wechatpayv3(含 async_),响应验签失败降级告警;新增 aiofiles 依赖

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-30 22:29:44 +08:00
Pine ac2df72b21 refactor(auth): 去多身份/多端口——账号单一角色,删 user_identities/select-identity/多端口路由
- 删 UserIdentity 模型/IdentityRepository/db.identities,账号统一单一角色(users.role)
- auth.py 去 select-identity/_identity_summaries,登录恒返回 identities=[];_login_response_for_user 按单角色签发
- 删多端口路由 rbac_government/investor/developer 及其 main 挂载
- seed 去多身份回填(_migrate_identities/_ensure_port_agents/多端身份/端口标签映射)
- dependencies: require_port 去端口隔离(单角色放宽)、optional_current_user 修 identity_id 多余参数
- user_admin_service create_user 不再建端口身份;schemas 去 SelectIdentityRequest
- 新增迁移 0014_drop_user_identities(drop user_identities 表)
- 测试改写为单角色契约(登录空 identities、无 select-identity、账号级智能体)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-26 19:15:51 +08:00
Pine 691cb83e97 fix(server-core): lifespan 关闭时释放数据库引擎连接池 — 修复重启后 lifespan 挂起/库被锁
平台 DB(SQLAlchemy) shutdown 仅 close 会话,未 dispose 引擎,连接残留导致下次启动
initialize() 被锁/挂起(uvicorn 报 lifespan unsupported → app.state.db 未设置 → 全 500)。
改为 shutdown 时 dispose _engine,释放连接池。
2026-08-24 19:09:35 +08:00
Pine b90539a013 feat(server): 统一登录+算力打通(port 阶段0-1)落地四层架构
- 登录:/auth/send-code·phone-login·wx-login·wx-phone(复用 RBAC 签发)
- 算力:services/compute_client(loopback :3000)+ /admin/compute/ping·provision
- /v1 relay 改走 compute-engine(前端不直连引擎)
- 模型:User 补 wx_openid/phone;仓储 async create+新方法
- 契约:api/schemas(auth/compute)Pydantic
2026-08-24 14:16:34 +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 26fa546f67 feat: 核心服务端基础框架(身份/平台 API)
- 七端口 RBAC、select-identity、JWT、审计
- FastAPI + SQLAlchemy + SQLite,/auth /opc /admin /agents 等路由
2026-08-23 22:35:59 +08:00