展会 / 路演 / 商业活动临时搭建与用工撮合交易平台
微信小程序(甲方端 · 包工头端 · 工人端)+ Web 管理后台 · Go 后端
| 文档版本 | V1.0 | 发布日期 | 2026-09-14 |
| 文档状态 | 待评审 | 文档用途 | 开发蓝本(自研) |
| 产品形态 | 微信小程序(多角色)+ Web 管理后台 | 后端技术 | Go(详见第 7 章) |
在车展、中秋展、品牌路演、临时舞台等商业活动中,甲方(品牌方或活动公司)有短周期的搭建需求:设计稿确定后,需要临时组织美工、搬运工、电工、安装工等劳务力量,并配套物料运输、仓储、保险等执行环节。当前业务以纯线下方式运作,存在以下痛点:
本项目旨在将上述线下流程产品化:通过微信小程序 + 管理后台,实现「需求录入 → 双账单生成 → 会员+账单支付 → 派单接单 → 工人打卡 → 验收结算 → 线上打款」的全链路闭环。
一句话定位:面向中小型展会/路演搭建需求的「B2B 撮合交易平台」——甲方在平台支付会员费与账单费,平台调度包工头承接施工,赚取对客报价与转包价之间的差价。
提供标准化报价、线上支付、施工出勤留痕与验收流程,替代微信转账 + 口头承诺。
提供稳定订单来源、接单确认、工人名单管理与对账收款工具,减少空跑和口头纠纷。
沉淀客户与供应商资源,系统化管理双账单与利润,会员费形成稳定的年费收入。
典型单笔经济模型(以询价表样例订单为例):对客账单含税合计 79,447 元(税金 6%),若人工与运输转包成本合计约 68,000 元,则本单平台毛利约 11,447 元;同期收取甲方会员年费 1 笔(金额待定,见附录 B)。
| 名词 | 定义 |
|---|---|
| 甲方 / 客户 | 有搭建需求的品牌方、活动公司、会展公司的老板或项目经理,是付费方。需注册并成为会员后方可下单。 |
| 平台 / 运营方 | 本项目运营者本人及其团队,通过管理后台完成订单录入、账单制作、派单与结算。 |
| 包工头 / 供应商 | 承接施工的劳务团队负责人,与平台长期合作。看到的是内部账单(转包价),自行组织工人。 |
| 工人 / 劳务人员 | 包工头团队中的美工、搬运工、电工、安装工、普工等,由包工头录入名单后进入平台完成打卡。 |
| 工 | 行业计价单位,1 人完成 1 个标准班次(默认 8 小时/人,行业惯例)= 1 工。加班、通宵按系数折算(搭建日约 3 工/天、活动日约 1.5 工/天、通宵约 2 工/天),折算过程写入行项目「工艺描述」,发生争议时以账单快照版本中的描述为结算口径;系统只按「数量 × 单价」计算金额。 |
| 订单 | 一次完整的搭建需求(含项目信息、时间、场馆、设计文档),是双账单与派单的载体。 |
| 对客账单 | 给甲方查看与支付的账单,按市场价计,含税结构(不含税合计 + 税金 + 含税合计)。 |
| 内部账单 | 给包工头的转包账单,价格独立设定,仅包工头与平台可见。 |
| 派单 | 平台将订单(整单或部分行项目)指派给某个包工头的动作与记录,一个订单可有多个派单。 |
| 会员费 | 甲方使用平台的年度准入费,首次下单与订单款合并支付,有效期内下单无需再付。 |
| 打卡 | 工人在施工期间的定位 + 拍照出勤记录,作为进度留痕与结算依据。 |
系统共 4 类角色,均通过手机号 + 微信授权登录。角色在注册时选择并互斥(一个微信号一个角色,避免甲乙方身份混用导致价格泄露)。
运营方本人及客服。Web 管理后台操作:订单录入、双账单制作、派单、结算打款、会员/包工头审核、数据统计。拥有最高权限,不使用小程序端。
小程序端:注册(个人/企业)、开通会员、查看账单并支付、跟踪订单进度、查看打卡汇总、确认验收。自助发布需求(P2)。
小程序端:实名注册认证、接收派单、确认接单、录入工人名单、施工管理(开工/完工报告)、确认对账、查看收款记录。
小程序端:被名单邀请后微信登录绑定、查看出工任务、每日定位+拍照打卡、查看出勤记录。无支付、无账单权限。
| 对象 / 操作 | 管理员 | 甲方 | 包工头 | 工人 |
|---|---|---|---|---|
| 订单信息(项目/场馆/时间) | √ | △ 本人的 | △ 被派单的 | △ 被邀请的 |
| 设计文档(图纸/效果图) | √ | △ 本人的 | △ 接单后可见 | × |
| 对客账单(含价格) | √ | △ 本人的 | × | × |
| 内部账单(转包价) | √ | × | △ 被派单的 | × |
| 工人名单 | √ | △ 仅人数汇总 | △ 本单的 | △ 本人信息 |
| 打卡记录(照片/定位) | √ | △ 汇总视图 | △ 本单明细 | △ 本人记录 |
| 支付(微信支付) | 退款操作 | √ | × | × |
| 验收确认 | 代确认 | √ | × | × |
| 结算打款 | √ | × | 查看收款 | × |
| 会员管理 | √ | △ 本人 | × | × |
下述流程覆盖从需求进线到打款完结的完整链路。每步标注执行角色:管理者=后台,甲方/包工头/工人=小程序端。
甲方老板/项目经理通过微信或电话找到平台,给出设计文档(或口述)与用工需求:x 名美工、x 名搬运工、电工、时间、城市场馆。P2 阶段支持甲方小程序自助提交需求单。
管理员新建订单:填写项目名、城市场馆(含定位坐标)、搭建期/活动日/撤场日期、需求描述,上传设计文档(图片/PDF 存对象存储)。
按询价表结构录入行项目(人工/物料/运输/仓储/差旅/保险,含数量、单位、单价、工艺描述),系统自动计算不含税合计、税金(默认 6%)、含税合计,支持标记「待定项」。
账单发送后,甲方小程序收到服务通知;未注册甲方通过手机号验证码注册并登录(个人主体即可下单,企业主体需补充认证资料)。
甲方核对账单明细后支付:首单 = 会员年费 + 账单费合并支付(微信合单支付);有效期内老会员仅支付账单费。支付成功后订单进入「已支付待派单」。
运营通过自有渠道联系包工头,确认可承接的工种、人数与转包价(如搬运工对客 300 元/工、转包 220 元/工)。管理员据此制作内部账单(行项目与对客账单对应,价格独立)。
创建派单:选择包工头、关联内部账单、设置接单截止时间,可整单派给一家,也可按行项目拆分派给多家(如人工给 A、运输给 B)。包工头小程序收到派单通知。
包工头查看派单信息(场馆、时间、工作内容、内部账单价格;看不到对客价格)与设计文档(接单后开放),确认接单或填写理由拒绝(拒绝后订单回到待派单)。
包工头按需求录入工人:姓名 + 手机号 + 工种(美工/搬运/电工/安装/普工)。系统向工人手机号发送邀请短信。
工人用微信登录小程序,手机号与名单匹配后自动关联订单,进入「我的出工任务」。绑定即视为报名确认。
施工期间,工人每日到场上卡(定位 + 现场照片,1~3 张);定位距场馆超半径则标记异常。包工头同口径打卡(监督岗)。甲方端可查看每日出勤汇总与照片墙,进度透明。
撤场完成后,包工头提交完工报告:完工照片(≥3 张)+ 文字说明(实际用工数、增减项说明)。
甲方查看完工报告与结算单(如有差异项,见 5.7)后确认验收,存在尾款的须先补付;超时规则:完工后 72 小时未操作推送提醒,120 小时(后台可配置)后可由管理员代确认(需填写备注)。验收通过后订单进入结算队列。
前置:订单应收款已全部收清(含尾款)。管理员核对内部账单与打卡记录后确认结算金额,通过微信「商家转账到零钱」打款给包工头(需包工头实名信息一致),电子回单归档,订单完结,利润入账统计。
订单状态由平台统一维护,甲方端 / 包工头端展示的状态文案由各自状态映射生成。状态码采用两位数字,便于扩展。
| 状态码 | 状态名 | 进入条件 | 允许的关键操作 | 异常/备注 |
|---|---|---|---|---|
10 | 待报价 | 后台新建订单(含自助提交单转入) | 后台编辑订单、制作对客账单、作废 | 对客账单未发送前甲方不可见 |
20 | 待甲方确认 | 对客账单已发送 | 甲方查看账单明细、确认或提出修改 | 甲方可发起「申请修改」,回到 10 |
30 | 待支付 | 甲方确认账单 | 发起微信支付(首单含会员费) | 7 天未支付提醒一次,15 天可后台关闭(转 31) |
40 | 已支付待派单 | 支付回调成功 | 后台制作内部账单、创建派单 | 多笔支付子单须全部成功才流转 |
50 | 已派单 | 至少存在一个「待接单」派单 | 包工头接单 / 拒单;后台撤回派单 | 全部派单被拒则回到 40 |
60 | 施工中 | 首个派单开工(包工头点击开工) | 工人打卡、进度照片、增减项登记 | 多派单时任一开工即进入 |
70 | 已完工待验收 | 全部派单提交完工报告 | 后台出具结算单(有差异时,见 5.7)→ 甲方验收(有尾款先补付)/ 驳回;后台代确认 | 驳回需填理由,回到 60,限 2 次 |
80 | 已验收待结算 | 甲方确认(或后台代确认) | 后台核对并确认结算、发起打款(须应收已收清) | 存在争议单转 71 |
90 | 已结算 | 全部派单打款成功 | 利润归档、评价(P2) | 打款失败转 81 处理 |
99 | 已完结 | 结算后自动归档 | 只读;归入历史订单 | — |
| 状态码 | 状态名 | 进入条件 | 处理规则 |
|---|---|---|---|
31 | 已取消 | 支付前任一方取消 | 无资金动作;甲方自助提交单取消直接作废 |
41 | 已退款 | 已支付后取消且未开工 | 按 3.4② 统一规则:未派单的全额退;已派单未开工且无准备成本的全额退,有准备成本的协商后部分退(转 42);会员子单生效 ≤7 天随单退,超 7 天不退 |
42 | 部分退款 | 施工后取消或减项 | 管理员按协商金额后台发起部分退款,需填写退款方案并留痕 |
71 | 争议中 | 甲方驳回验收达上限 / 任一方申请争议 | 平台线下调解,后台仲裁操作:继续验收、部分退款、全额退款,全部留痕 |
81 | 打款失败 | 商家转账返回失败 | 展示失败原因(姓名校验不符/额度超限等),修正后重新发起 |
补充约定:管理员作废与甲方取消共用状态 31(已取消),以操作日志区分发起方与原因;甲方「申请修改」每单限 3 次,超出转人工沟通;后台代确认验收后 7 天内甲方仍可发起争议(71)。
| 状态码 | 状态名 | 进入条件 | 允许的操作 / 说明 |
|---|---|---|---|
D10 | 待接单 | 后台创建派单 | 包工头查看详情(内部账单 + 工作信息)、接单 / 拒单;超截止时间未接自动关闭 |
D20 | 已接单 | 包工头确认 | 录入工人名单、查看设计文档;后台可撤回(二次确认,撤回后订单回 40,须与包工头协商补偿并留痕) |
D30 | 施工中 | 包工头点击开工 | 工人打卡开放;增减项登记(影响结算金额) |
D40 | 已完工 | 包工头提交完工报告 | 等待订单级验收;订单驳回整改时回退 D30;可查看打卡汇总。完工截止:默认撤场日次日 24 点,超时后台提醒并人工介入 |
D50 | 已验收 | 订单验收通过 | 进入对账确认:包工头确认内部账单结算金额;超 72 小时未确认,管理员可代确认(留痕) |
D60 | 已结算 | 打款成功 | 收款记录可查,电子回单下载 |
D90 | 已关闭 | 拒单 / 超时 / 后台撤回 | 拒单须填理由;订单回到待派单可重新派 |
订单置为已取消(31),无资金动作。同场次可重新开单,历史账单保留可复制。
派单关闭(D90),订单回到已支付待派单(40),管理员重新洽谈其他包工头并重新派单。拒单记录纳入包工头合作评级(P2)。
甲方驳回验收须填写理由(附照片),订单回到施工中(60)整改;累计驳回 2 次自动转争议中(71)。争议也可由甲方(验收页)、包工头(对账页)在验收环节发起,或管理员直接置入。由平台仲裁,仲裁结果三选一:继续验收、部分退款、全额退款;状态映射:继续验收 → 80,部分退款 → 42(退款完成后继续结算),全额退款 → 41 且对应派单关闭(D90)。全程后台操作留痕并推送双方通知。
商家转账失败(收款人姓名与实名不符、单笔/单日额度超限、账户风控等),派单停在待打款,后台展示微信返回的错误码与原因,修正后重新发起,不自动重试超过 3 次。
功能按端拆分,每项标注优先级:P0 首个上线版本(甲方端 + 管理后台核心)必须交付 P1 包工头端/工人端上线版本交付 P2 后续迭代。优先级语义与第 8 章迭代计划一一对应。
定位说明:工人报酬由包工头线下自行发放,平台不介入工人薪酬,仅提供出勤留痕与任务查看工具。
| 对比项 | 对客账单 | 内部账单 | 说明 |
|---|---|---|---|
| 行项目:搬运工 | 36 工 × 300 元 = 10,800 | 36 工 × 220 元 = 7,920 | 数量一致、单价独立 |
| 可见对象 | 甲方 | 包工头 | 互不可见 |
| 税金 | 按 6% 计入含税合计 | 转包价默认含税报价 | 内部账单税金仅展示参考,不参与利润计算 |
| 本行差价 | 2,880 元(平台毛利) | 报表按行聚合统计 | |
系统按「数量 × 单价 = 金额」直接计算,不做工时系数引擎。行业系数(搭建日按 3 工/天、活动日 1.5 工/天、通宵 2 工/天)由管理员在心算/线下表格完成后,把折算结果作为数量录入,并在「工艺描述」「备注」中写明折算过程,与现有询价表习惯一致:
| 物料名称 | 工艺描述(折算说明) | 数量/单位 | 单价 | 金额 | 备注 |
|---|---|---|---|---|---|
| 安装人员 | 5 人搭建 3 天,天/按 3 工;活动 2 天含加班,天/按 1.5 工;通宵撤场按 2 工 | 56 工 | 350 | 19,600 | — |
| 当地小工 | 6 人,通宵搭建及撤场各 1 晚,按 2 工计算,含当地交通费 | 36 工 | 350 | 12,600 | — |
| 物料运输 | 孝感工厂—北京(华熙五棵松),13 米货车单趟 | 1 趟 | 10,500 | 10,500 | — |
| 美工画面 | 按实际数量计算 | 1 项 | 0 | 0 | 待定 |
解决两类「钱收少了」的场景:① 待定项按实结算(如美工画面);② 施工中的增项。完整流程:
实体关系总览:user(用户)— 1:1 — enterprise / membership;user(甲方) 1:N project_order(订单)— 1:1 — bill(type=client 对客账单) — 1:N — bill_item(行项目);project_order 1:N dispatch(派单)— 1:1 — bill(type=contractor 内部账单);dispatch 1:N worker_roster(工人名单)— 1:N — attendance(打卡);project_order 1:N payment(支付),dispatch 1:1 settlement(结算)。核心表字段如下(MySQL 8,字段名 snake_case):
| 字段 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| role | TINYINT | 1 甲方 2 包工头 3 工人;管理员不入本表,独立 admin_user 表(账号密码登录后台) |
| wx_openid | VARCHAR(64) UK | 小程序 openid(角色隔离:一 openid 一角色) |
| wx_unionid | VARCHAR(64) | 开放平台 unionid(预留) |
| phone | VARCHAR(20) UK | 手机号(AES 加密存储,检索用哈希索引列 phone_hash) |
| real_name | VARCHAR(32) | 实名姓名(包工头必填,用于转账校验) |
| id_card_no | VARCHAR(64) | 身份证号(加密存储,仅包工头/工人) |
| status | TINYINT | 0 禁用 1 正常 |
| created_at / updated_at / deleted_at | DATETIME | 软删除 |
| 字段 | 类型 | 说明 |
|---|---|---|
| id | BIGINT PK | 主键 |
| user_id | BIGINT | 甲方用户 |
| level | VARCHAR(16) | 档位(初版仅 year_vip) |
| paid_amount | BIGINT | 实付金额(分) |
| start_at / expire_at | DATETIME | 起止时间(续费顺延计算) |
| status | TINYINT | 1 有效 2 已过期 3 已作废 |
| source | TINYINT | 1 首单合并支付 2 主动续费 3 后台赠送 |
| payment_id | BIGINT | 关联支付流水 |
| 字段 | 类型 | 说明 |
|---|---|---|
| id / order_no | BIGINT PK / VARCHAR(32) UK | 单号规则:EX + yyMMdd + 4 位序列 |
| client_user_id | BIGINT | 甲方 |
| title | VARCHAR(128) | 项目名,如「7x11 街霸 × 脉动路演-北京站」 |
| city / venue | VARCHAR(32) / VARCHAR(128) | 城市 / 场馆(如 北京 / 华熙五棵松) |
| venue_lat / venue_lng | DECIMAL(10,6) | 场馆坐标(打卡比对基准) |
| setup_start/end, event_start/end, teardown_date | DATE | 搭建期 / 活动日 / 撤场日期 |
| demand_desc | TEXT | 需求描述(x 美工、x 搬运、x 电工…) |
| design_files | JSON | 设计文档对象存储 key 列表 |
| source | TINYINT | 1 后台录入 2 甲方自助(P2) |
| status | TINYINT | 订单状态码(见 3.2) |
| checkin_radius_m | INT | 打卡半径(米),默认 500 |
| tax_rate_bp | SMALLINT | 税率基点,默认 600(=6%) |
| 字段 | 类型 | 说明 |
|---|---|---|
| bill 账单 | ||
| id / bill_no | BIGINT PK / VARCHAR(32) UK | CB+序列(对客)/ IB+序列(内部) |
| order_id | BIGINT | 所属订单 |
| type | TINYINT | 1 对客(一订单一张) 2 内部(挂派单) |
| dispatch_id | BIGINT NULL | 内部账单关联的派单,对客账单为空 |
| version | INT | 版本号,确认时冻结快照 |
| total_excl / tax_rate / tax_amt / total_incl | BIGINT(分) | 不含税合计 / 税率基点 / 税金 / 含税合计 |
| status | TINYINT | 1 草稿 2 已发送 3 已确认 4 已支付 5 已结算 9 已作废 |
| bill_item 行项目 | ||
| bill_id / seq | BIGINT / INT | 所属账单 / 序号 |
| category | TINYINT | 1 人工 2 物料 3 运输 4 仓储 5 差旅 6 保险 9 其他 |
| group_name | VARCHAR(64) | 项目分组,如「搭建及撤场人工费」 |
| name | VARCHAR(64) | 物料/工种名称,如「安装人员」 |
| description | VARCHAR(512) | 工艺描述(含工时折算说明) |
| length/width/height_mm | INT | 尺寸三件套(可空) |
| quantity / unit | DECIMAL(10,2) / VARCHAR(8) | 数量 / 单位(项/工/人次/趟/天/㎡/米) |
| unit_price / amount | BIGINT(分) | 单价 / 金额(默认 = 数量×单价,允许手改覆盖) |
| is_tbd / remark | BOOL / VARCHAR(255) | 待定标记 / 备注 |
| 字段 | 类型 | 说明 |
|---|---|---|
| dispatch 派单 | ||
| id / dispatch_no | BIGINT PK / VARCHAR(32) UK | DP+序列 |
| order_id / contractor_user_id | BIGINT | 订单 / 包工头(认证通过者) |
| bill_id | BIGINT | 关联内部账单 |
| scope_items | JSON | 承接范围(对客行项目 id 列表,仅作说明,null=整单) |
| status | TINYINT | D10~D90(见 3.3) |
| deadline_at / finish_deadline_at | DATETIME | 接单截止(超时自动关闭)/ 完工报告截止(默认撤场日次日 24 点,超时后台提醒) |
| accepted_at / started_at / finished_at | DATETIME | 接单 / 开工 / 完工时间 |
| reject_reason | VARCHAR(255) | 拒单理由 |
| finish_report | JSON | 完工报告(照片 keys + 说明 + 实际用工) |
| worker_roster 工人名单 | ||
| id | BIGINT PK | 主键 |
| dispatch_id | BIGINT | 所属派单 |
| name / phone / job_type | VARCHAR(32/20) / TINYINT | 姓名 / 手机号(同派单内唯一,同一工人可跨派单复用并绑定同一 user)/ 工种(1 美工 2 搬运 3 电工 4 安装 5 普工) |
| bind_user_id / bind_status | BIGINT / TINYINT | 绑定后的工人 user / 0 待绑定 1 已绑定 |
| bound_at | DATETIME | 绑定时间 |
| 字段 | 类型 | 说明 |
|---|---|---|
| attendance 打卡 | ||
| dispatch_id / roster_id / user_id | BIGINT | 派单 / 名单 / 打卡人(包工头监督卡 roster_id 为空) |
| work_date / type | DATE / TINYINT | 日期 / 1 上工 2 下工 |
| lat / lng / address / distance_m | DECIMAL / VARCHAR(128) / INT | 定位与逆地址、距场馆米数 |
| photos | JSON | 照片 key 列表(≤3) |
| status | TINYINT | 1 正常 2 越界 3 补卡待审 4 补卡通过 |
| payment 支付流水 | ||
| pay_no / wx_transaction_id | VARCHAR UK | 平台单号 / 微信交易单号 |
| order_id / user_id | BIGINT | 订单 / 付款人 |
| scene / channel | TINYINT | 支付场景:1 会员+账单合单 2 仅账单 3 会员续费 4 结算尾款;收款渠道:1 微信支付 2 对公线下核销 |
| total_amt / member_amt / bill_amt | BIGINT(分) | 合计 / 会员子单 / 账单子单 |
| status / refund_amt | TINYINT / BIGINT | 1 待支付 2 已支付 3 已关闭 4 部分退款 5 全额退款 / 累计退款 |
| callback_raw | JSON | 微信回调原文(审计用) |
| settlement 结算 | ||
| settlement_no / dispatch_id / bill_id | VARCHAR UK / BIGINT | 结算单号 / 派单 / 内部账单(版本冻结) |
| amount | BIGINT(分) | 结算金额 |
| status | TINYINT | 1 待确认 2 待打款 3 打款中 4 已打款 5 失败 6 线下打款 |
| transfer_batch_id / voucher_url | VARCHAR / VARCHAR(255) | 微信转账批次单号 / 电子回单地址 |
| operator_id / confirmed_at / fail_reason | BIGINT / DATETIME / VARCHAR(255) | 操作留痕 |
结合背景:开发者是 iOS 出身(熟悉 Swift),后端经验较少,需要独立完成开发与运维。结论:选 Go。
| 维度 | Go(推荐) | Java(Spring Boot) |
|---|---|---|
| 上手成本 | 语法极简(25 个关键字),struct/interface 与 Swift 的 struct/protocol 心智模型接近,闭包、类型推断、错误处理风格相似,iOS 开发者一周可写业务 | 概念多:JVM、Maven/Gradle、注解驱动、依赖注入、反射魔法,排错需要懂框架源码 |
| 部署运维 | 编译成单个二进制,scp 上去直接跑;2 核 4G 服务器轻松承载 | 打 jar 包跑 JVM,内存占用高(起步数百 MB),小服务器吃紧 |
| 生态匹配 | 微信支付、数据库、Redis、定时任务的官方/主流库齐全,中文社区活跃(七牛、腾讯大量 Go 服务) | 生态最大,但大量企业级能力(微服务、消息队列治理)本阶段用不上 |
| 并发模型 | goroutine 天然适合支付回调、打款轮询、打卡上传等 IO 密集场景 | 线程模型重,够用但复杂 |
| 风险 | 泛型与依赖管理较新(1.18+ 已够用);大型项目组织需自律 | 个人独立开发启动慢、样板代码多 |
| 层 | 选型 | 理由 |
|---|---|---|
| 后端框架 | Go 1.22+ + GoFrame v2 | 中文文档最完善的 Go 企业级框架:自带 ORM、脚手架 gf gen、参数校验、热编译;比 gin+gorm 自组减少大量胶水代码。备选:gin + gorm(轻量但要自己拼) |
| 数据库 | MySQL 8.0 | 事务满足支付/结算一致性;金额用 BIGINT 分 |
| 缓存/队列 | Redis 7 | 支付回调幂等去重、短信/通知限流、接单截止延迟任务(key 过期或 ZSet 轮询) |
| 小程序端 | uni-app(Vue3) | 开发者有 BSUniapp 项目经验,直接复用技能栈;一套代码三角色分包(或分包加载 pages/分包),后续可扩 H5 |
| 管理后台 | Vue3 + Element Plus(或直接用 GoFrame 配套 admin 模板) | 表单密集型后台,Element Plus 表格/表单生态成熟 |
| 对象存储 | 腾讯云 COS | 设计文档、打卡照片、回单;私有读 + 临时签名 URL;与微信同生态 |
| 部署 | Docker Compose(单机) | app + mysql + redis + nginx 四容器编排;2 核 4G 起步,数据每日备份到 COS |
| HTTPS | Nginx + Let's Encrypt / 腾讯云免费证书 | 小程序强制 HTTPS |
| 能力 | 服务 | 开通条件与说明 |
|---|---|---|
| 小程序登录 | 微信开放平台 | 个人主体可上线,但支付需要企业主体,建议直接以个体户/公司注册小程序 |
| 支付/合单/退款 | 微信支付 V3(JSAPI) | 需企业或个体工商户营业执照 + 对公/经营账户;合单支付与普通支付共用商户号 |
| 打款给包工头 | 商家转账到零钱 | 商户号需单独开通权限(提供业务场景说明:劳务分包结算);有单笔/单日限额,初期建议每笔控制额度并申请提额 |
| 短信 | 腾讯云 SMS | 邀请工人、派单通知;需备案签名与模板 |
| 定位与逆地址 | 腾讯位置服务 | 小程序定位授权 + 服务端坐标距离计算(Haversine),逆地址解析用于打卡地址展示 |
| 图片安全(P1.5) | 微信内容安全 msgSecCheck / imgSecCheck | 打卡照片、企业资料的合规检测 |
| OCR(P2) | 腾讯云 OCR | 营业执照、身份证识别自动填充 |
{ code, msg, data };金额字段一律返回分;时间统一 UTC+8 ISO 格式;按「先跑通钱、再跑通人」的顺序分期:P0 解决收钱与记账,P1 解决施工过程与打款闭环,P2 做增长与效率。以 1 名全职开发(本人)估算工期。
| 阶段 | 周期估算 | 交付内容 |
|---|---|---|
| P0 MVP | 约 6~8 周 | 跑通「录单 → 对客账单 → 甲方注册 → 会员+账单合并支付 → 后台记账」: ① 后端框架与登录鉴权 ② 甲方小程序(注册登录、账单查看确认、微信合单支付、订单列表)③ 后台(订单录入、对客账单编辑器、账单发送、收款流水)④ 企业主体/商户号/小程序主体资质办理(并行) |
| P1 完整闭环 | 约 6~8 周 | 跑通「派单 → 接单 → 打卡 → 完工 → 验收 → 线上打款」: ① 包工头端(实名认证、派单接单、工人名单、开工/完工报告、对账收款)② 工人端(绑定、定位+拍照打卡)③ 内部账单与派单管理 ④ 商家转账打款 + 回单归档 ⑤ 验收流程与超时代确认 ⑥ 打卡异常监管 + 利润报表 |
| P2 增强 | 持续迭代 | ① 甲方自助需求发布与审核 ② 历史工人库/包工头评级 ③ 照片水印与防作弊增强 ④ 补卡流程 ⑤ 数据大屏与经营报表 ⑥ 开票信息管理与电子收据 ⑦ 多联系人企业账户 ⑧ 接单大厅(评估后决定) |
| 风险 | 说明 | 应对策略 |
|---|---|---|
| 资金二清 | 平台代收甲方资金再转付包工头,若形成资金池滞留可能触碰无证清算红线 | 以自营服务模式定位(平台对甲方销售搭建服务、对包工头采购劳务分包);收款直接进对公商户号;验收后 T+3 内完成打款不留存;单量增大后评估微信分账能力 |
| 劳务与工伤 | 工人与包工头存在雇佣关系,一旦出现工伤,甲方与平台可能被连带追责 | 每单账单强制包含「保险」行项目(短期意外险/雇主责任险);平台用户协议明确撮合定位;留存包工头与工人的用工证据(打卡记录即出勤证据) |
| 税务凭证 | 平台向甲方开票(6% 服务费),但采购端缺成本票会推高利润虚高 | 过渡方案(P0/P1):与包工头签订采购协议、银行转账回单入账,税前咨询会计师做成本暂估;P2 接入灵活用工平台代征取得合规成本票;坚持合同流、资金流、发票流三流一致 |
| 小程序类目审核 | 涉及「劳务/招聘」字样可能被要求人力资源服务许可证 | 产品文案统一定位为「展会搭建服务交易」;工人打卡功能收敛在「施工管理」叙事下;类目选会展/商业服务 |
| 个人信息保护 | 收集身份证、定位、照片属敏感个人信息(PIPL) | 单独弹窗授权 + 最小化收集;隐私政策披露用途;数据只用于本单履约与结算 |
以下来自实际业务询价表(7×11 街霸 × 脉动路演-北京站,华熙五棵松),用于验证账单模型覆盖度。该单 16 个行项目覆盖 6 种分类,模型全部支持。
| 序号 | 物料名称 | 工艺描述 | 数量 | 单位 | 单价 | 金额 |
|---|---|---|---|---|---|---|
| 1 | 电料、辅料 | 配电箱、现场布线、物料简易包装、五金等 | 1 | 项 | 2,000 | 2,000 |
| 2 | 安装人员 | 5 人搭建 3 天,天/按 3 工;活动 2 天含加班,天/按 1.5 工;通宵撤场按 2 工,来回路程 2 工 | 56 | 工 | 350 | 19,600 |
| 3 | 当地小工 | 6 人,通宵搭建及撤场各 1 晚,按 2 工,含当地交通费 | 36 | 工 | 350 | 12,600 |
| 5 | 电工 | 1 人搭建 1 晚/按 3 工,活动 2 天含加班/按 1.5 工,通宵撤场按 3 工 | 6 | 工 | 450 | 2,700 |
| 7 | 人员差旅费 | 4 人住宿、餐费 | 25 | 人次 | 150 | 3,750 |
| 8 | 保险 | 主场 + 2 间学校 | 1 | 项 | 1,200 | 1,200 |
| 9 | 物料运输 | 孝感工厂—北京(华熙五棵松)13 米货车单趟 | 1 | 趟 | 10,500 | 10,500 |
| 12 | 物料仓储 | 西安物料仓储费(一个月内) | 1 | 项 | 3,000 | 3,000 |
| 16 | 美工画面 | 按实际数量计算 | 1 | 项 | 0 | 0 |
| 含税合计:79,447 元(不含税 74,950 + 税金 6% 4,497) | — | |||||
| 事项 | 建议默认值 | 决策人 / 时机 |
|---|---|---|
| 会员年费定价 | 999~2,000 元/年(参考同业撮合平台) | 运营方 / P0 上线前 |
| 打卡半径默认值 | 500 米(订单级可改) | 运营方 / P1 联调时实测校准 |
| 验收超时阈值 | 72 小时提醒、120 小时可代确认 | 运营方 / P1 |
| 包工头保证金 | 初期不收;评级成熟后对高风险单收履约保证金 | 运营方 / P2 评估 |
| 税率 | 6%(现代服务业),订单级可改 | 财税顾问确认 |
| 发票流程 | 线下开具,平台仅留开票信息字段 | 运营方 / 税务规划时 |
| 开票规则细节 | 会员费与订单款分别开票,税率以财税顾问意见为准(建议均 6%);开票申请由甲方在小程序提交 | 财税顾问 / 上线前 |
| 增项对客定价 | 参考对客单价库与往期同类项,平台与甲方线下谈定后录入新版本 | 运营方 / 随单处理 |
| P0/P1 履约约束 | 线下合作协议 + 拒单/撤回留痕 + 完工验收后才打款(后置结款即履约保障) | 运营方 / P1 前准备协议模板 |
| 平台名称与品牌 | 待定(小程序主体名称需先定,影响注册) | 运营方 / 立即 |
| 人工类目价格库 | 后台维护「工种 × 城市 × 对客价/转包价」参考库 | 运营方 / P1 后整理沉淀 |
本文档为 V1.0 开发蓝本,覆盖业务流程、功能、数据模型、技术选型与合规风险。
后续版本迭代请在「文档信息」表登记变更记录;开发过程中的字段调整同步更新第 6 章。