个人中心很容易变成一个“什么功能都往里塞”的抽屉。招聘信息发布是一个轻量扩展:复用货源广场的撮合骨架,但让发布者和投递者各自找到自己的记录。

一、招聘信息为什么可以复用货源模型
招聘和货源本质上都是撮合对象:有人发布需求,有人提交回应。两者都有标题、正文、发布人、状态和时间。
第一版可以在帖子模型上增加 `postType`,用 supply 和 job 区分业务。列表、详情和基础审核能力共用,招聘特有字段再单独扩展。
复用的是稳定骨架,不是把所有字段硬塞在一起。
招聘的隐私、内容审核和投诉规则可能不同,模型可以复用,权限和风控不能完全照搬。
二、我发布的和我投递的
个人中心至少有两个入口:我发布的、我投递的。发布者关注职位状态和收到的投递,求职者关注自己投过哪些职位。
“我发布的”按 `publisherId = 当前用户` 查询;“我投递的”按 `applicantId = 当前用户` 查询。云函数直接按身份返回结果,不要先把所有记录拉到前端再筛选。
按钮只展示当前角色的下一步动作:发布者编辑、下架和查看投递;投递者继续沟通或撤回。
三、状态机:pending → active → off
`pending` 表示待支付或待审核,`active` 表示公开招聘,`off` 表示结束或下架。支付成功且审核通过后才能进入 active,到期、招满或手动结束后进入 off。
const next = {
pending: ['active'],
active: ['off'],
off: []
};
if (!next[current].includes(target)) throw Error('非法状态变化');
状态变化必须由云函数控制,不能让客户端直接传入 active。需要驳回时再增加 rejected,避免用一个 `isOnline` 布尔值覆盖所有情况。
四、表单先收集撮合所需信息
招聘表单可以从职位名称、地点、薪资范围、工作类型、岗位要求和截止时间开始。薪资和地点尽量结构化,岗位要求用正文表达。
联系方式不要直接写进公开正文,可以沿用第 10 篇的云端存储与解锁规则,或者第一版只提供站内投递。收集的信息越少,隐私说明和删除机制越容易做清楚。
五、个人中心怎么组织
个人中心可以分成账户与会员、我的内容、我的交易三层。招聘入口放在我的内容,再分我发布的招聘和我的投递。
支付、会员和解锁订单放在我的交易,不要与帖子列表混在一起。入口名称保持一致,例如“发布招聘”“我的招聘”“我的投递”。
▸ 小贴士:新增入口前先判断它属于内容、交易还是账户。归类不清,通常说明功能边界还没想好。
写在最后
招聘扩展的关键不是再做一个页面,而是借用撮合骨架,同时把双身份、状态机和入口说清楚。
如果你接下来要扩展个人中心,先画“我发布的、我参与的、我购买的”三条路径,再决定入口位置。
你更希望个人中心按业务分类,还是按“我发布的、我参与的、我购买的”分类?