feat(old-items): complete reuse workflow and refine miniapp home

This commit is contained in:
2026-08-15 16:38:30 +08:00
parent 65d23eab4a
commit f3737c80be
94 changed files with 7880 additions and 215 deletions
+34
View File
@@ -485,3 +485,37 @@ Phase 7 不建立可人工修改的统计快照;九项 V1 指标直接从申
- created_by / updated_by / timestamps
`financial_disclosure_status_history` 只追加保存创建、发布和归档事实,请求 UUID 全局唯一。已发布文档禁止覆盖编辑,只能归档;草稿编辑使用 revision 乐观锁。
---
## 24. 旧物善用 Phase 1
- `old_item_donations`:随机 `public_id`、非连续公益编号、捐赠人、幂等键、品类、新旧程度、数量、方式、状态、revision、定向需求、投递点、人工分配人员和真实帮扶人数。
- `old_item_donation_status_history`:只追加保存初始提交和每次状态变化,`request_id` 全局唯一。
- `old_item_donation_files`:关联最多六张已确认的 `OLD_ITEM_DONATION_IMAGE` 私有文件。
- `old_item_needs`:随机公开 ID、品类、区域、受助群体、需求量、已满足量、优先级、排序、发布状态和 revision。
- `old_item_need_status_history`:只追加保存需求发布与下架事实。
- `old_item_drop_off_points`:后台维护的公开投递名称、区域、地址、开放时间、启停和排序。
联系人、手机号、上门取件地址、物品描述、驳回原因和内部轨迹备注加密保存;手机号另存域隔离 HMAC。列表不公开敏感明文,管理端详情读取写审计。全部外键使用 `RESTRICT`,公开资源不暴露自增主键。
---
## 25. 旧物善用 Phase 2 物资台账
- `old_item_inventory_imports`:记录随机公开 ID、创建人幂等键、请求指纹、加密原文件名和导入行数;不保存原 Excel 文件。
- `old_item_inventory_items`:随机公开 ID、非连续台账编号、可选来源捐赠/导入批次、品类、名称、数量、单位、仓位、状态、定向需求、可选受助对象、帮扶区域、加密备注、落地时间和 revision。每个来源捐赠最多绑定一个物资批次,避免重复入库。
- `old_item_inventory_events`:只追加保存入库、分拣、消毒、出库、落地节点,请求 UUID 全局唯一,记录前后状态、时间、位置、加密备注和操作人。
台账状态严格为 `IN_STOCK → SORTED → DISINFECTED → OUTBOUND → DELIVERED`,不允许跳级、回退或覆盖事件。Excel 批量入库在一个事务中创建导入批次、所有物资行、入库事件和审计,任一行无效时整批回滚。受助对象只保存既有内部外键;小程序仅返回流转状态、时间和出库/落地的粗粒度地区。
---
## 26. 旧物善用 Phase 3 荣誉证书与积分
- `old_item_reward_configs`:不可变规则版本,保存证书标题/正文/颁发方/法律声明、四类物资每件积分、单笔积分上限和当前激活标识;新版本不覆盖历史版本。
- `old_item_certificates`:随机公开 ID、非连续证书编号、来源捐赠、规则版本、加密收件人称呼、完整模板快照、签发/撤销幂等指纹、签发与撤销操作者及时间。每笔捐赠最多一张当前有效证书,补发会撤销旧证书但不删除历史。
- `old_item_point_accounts`:每个用户一个荣誉积分账户,保存余额和 revision;余额不得小于零。
- `old_item_point_entries`:只追加积分流水,记录获得/人工校正、变更值、变更后余额、来源捐赠/规则版本、幂等指纹、加密原因和操作人;来源捐赠唯一,防止重复计分。
捐赠完成、证书签发、积分账户更新、积分流水和审计在同一事务提交。积分没有货币价值,不建立兑换订单、商品、转让、提现、到期或排行榜数据结构。