展会搭建服务平台需求文档

展会 / 路演 / 商业活动临时搭建与用工撮合交易平台

微信小程序(甲方端 · 包工头端 · 工人端)+ Web 管理后台 · Go 后端

文档版本V1.0发布日期2026-09-14
文档状态待评审文档用途开发蓝本(自研)
产品形态微信小程序(多角色)+ Web 管理后台后端技术Go(详见第 7 章)

目录

第 1 章 项目概述

1.1 项目背景与痛点

在车展、中秋展、品牌路演、临时舞台等商业活动中,甲方(品牌方或活动公司)有短周期的搭建需求:设计稿确定后,需要临时组织美工、搬运工、电工、安装工等劳务力量,并配套物料运输、仓储、保险等执行环节。当前业务以纯线下方式运作,存在以下痛点:

本项目旨在将上述线下流程产品化:通过微信小程序 + 管理后台,实现「需求录入 → 双账单生成 → 会员+账单支付 → 派单接单 → 工人打卡 → 验收结算 → 线上打款」的全链路闭环。

1.2 产品定位

一句话定位:面向中小型展会/路演搭建需求的「B2B 撮合交易平台」——甲方在平台支付会员费与账单费,平台调度包工头承接施工,赚取对客报价与转包价之间的差价。

对甲方(客户)

提供标准化报价、线上支付、施工出勤留痕与验收流程,替代微信转账 + 口头承诺。

对包工头(供应商)

提供稳定订单来源、接单确认、工人名单管理与对账收款工具,减少空跑和口头纠纷。

对平台(运营方)

沉淀客户与供应商资源,系统化管理双账单与利润,会员费形成稳定的年费收入。

1.3 商业模式

会员年费
甲方首次下单时一并支付,年度有效,构成准入门槛与基础收入
订单差价
对客账单价 − 转包价 = 平台毛利,如搬运工对客 300 元/工、转包 220 元/工
沉淀复购
历史订单、场馆与供应商档案沉淀,续费与复购率随口碑提升

典型单笔经济模型(以询价表样例订单为例):对客账单含税合计 79,447 元(税金 6%),若人工与运输转包成本合计约 68,000 元,则本单平台毛利约 11,447 元;同期收取甲方会员年费 1 笔(金额待定,见附录 B)。

1.4 名词解释

名词定义
甲方 / 客户有搭建需求的品牌方、活动公司、会展公司的老板或项目经理,是付费方。需注册并成为会员后方可下单。
平台 / 运营方本项目运营者本人及其团队,通过管理后台完成订单录入、账单制作、派单与结算。
包工头 / 供应商承接施工的劳务团队负责人,与平台长期合作。看到的是内部账单(转包价),自行组织工人。
工人 / 劳务人员包工头团队中的美工、搬运工、电工、安装工、普工等,由包工头录入名单后进入平台完成打卡。
行业计价单位,1 人完成 1 个标准班次(默认 8 小时/人,行业惯例)= 1 工。加班、通宵按系数折算(搭建日约 3 工/天、活动日约 1.5 工/天、通宵约 2 工/天),折算过程写入行项目「工艺描述」,发生争议时以账单快照版本中的描述为结算口径;系统只按「数量 × 单价」计算金额。
订单一次完整的搭建需求(含项目信息、时间、场馆、设计文档),是双账单与派单的载体。
对客账单给甲方查看与支付的账单,按市场价计,含税结构(不含税合计 + 税金 + 含税合计)。
内部账单给包工头的转包账单,价格独立设定,仅包工头与平台可见。
派单平台将订单(整单或部分行项目)指派给某个包工头的动作与记录,一个订单可有多个派单。
会员费甲方使用平台的年度准入费,首次下单与订单款合并支付,有效期内下单无需再付。
打卡工人在施工期间的定位 + 拍照出勤记录,作为进度留痕与结算依据。

1.5 产品范围与边界

本期做(In Scope)

本期不做(Out of Scope)

第 2 章 角色与权限体系

2.1 角色总览

系统共 4 类角色,均通过手机号 + 微信授权登录。角色在注册时选择并互斥(一个微信号一个角色,避免甲乙方身份混用导致价格泄露)。

平台管理员(Admin)

运营方本人及客服。Web 管理后台操作:订单录入、双账单制作、派单、结算打款、会员/包工头审核、数据统计。拥有最高权限,不使用小程序端。

甲方(Client)

小程序端:注册(个人/企业)、开通会员、查看账单并支付、跟踪订单进度、查看打卡汇总、确认验收。自助发布需求(P2)。

包工头(Contractor)

小程序端:实名注册认证、接收派单、确认接单、录入工人名单、施工管理(开工/完工报告)、确认对账、查看收款记录。

工人(Worker)

小程序端:被名单邀请后微信登录绑定、查看出工任务、每日定位+拍照打卡、查看出勤记录。无支付、无账单权限。

2.2 角色权限矩阵

对象 / 操作管理员甲方包工头工人
订单信息(项目/场馆/时间)△ 本人的△ 被派单的△ 被邀请的
设计文档(图纸/效果图)△ 本人的△ 接单后可见×
对客账单(含价格)△ 本人的××
内部账单(转包价)×△ 被派单的×
工人名单△ 仅人数汇总△ 本单的△ 本人信息
打卡记录(照片/定位)△ 汇总视图△ 本单明细△ 本人记录
支付(微信支付)退款操作××
验收确认代确认××
结算打款×查看收款×
会员管理△ 本人××

第 3 章 总体业务流程

3.1 核心主流程(14 步)

下述流程覆盖从需求进线到打款完结的完整链路。每步标注执行角色:管理者=后台,甲方/包工头/工人=小程序端。

  1. ① 需求获取管理者(线下)

    甲方老板/项目经理通过微信或电话找到平台,给出设计文档(或口述)与用工需求:x 名美工、x 名搬运工、电工、时间、城市场馆。P2 阶段支持甲方小程序自助提交需求单。

  2. ② 订单录入管理后台

    管理员新建订单:填写项目名、城市场馆(含定位坐标)、搭建期/活动日/撤场日期、需求描述,上传设计文档(图片/PDF 存对象存储)。

  3. ③ 制作对客账单管理后台

    按询价表结构录入行项目(人工/物料/运输/仓储/差旅/保险,含数量、单位、单价、工艺描述),系统自动计算不含税合计、税金(默认 6%)、含税合计,支持标记「待定项」。

  4. ④ 账单推送甲方小程序

    账单发送后,甲方小程序收到服务通知;未注册甲方通过手机号验证码注册并登录(个人主体即可下单,企业主体需补充认证资料)。

  5. ⑤ 支付甲方小程序

    甲方核对账单明细后支付:首单 = 会员年费 + 账单费合并支付(微信合单支付);有效期内老会员仅支付账单费。支付成功后订单进入「已支付待派单」。

  6. ⑥ 洽谈与制作内部账单管理者(线下)

    运营通过自有渠道联系包工头,确认可承接的工种、人数与转包价(如搬运工对客 300 元/工、转包 220 元/工)。管理员据此制作内部账单(行项目与对客账单对应,价格独立)。

  7. ⑦ 派单管理后台

    创建派单:选择包工头、关联内部账单、设置接单截止时间,可整单派给一家,也可按行项目拆分派给多家(如人工给 A、运输给 B)。包工头小程序收到派单通知。

  8. ⑧ 接单包工头小程序

    包工头查看派单信息(场馆、时间、工作内容、内部账单价格;看不到对客价格)与设计文档(接单后开放),确认接单或填写理由拒绝(拒绝后订单回到待派单)。

  9. ⑨ 录入工人名单包工头小程序

    包工头按需求录入工人:姓名 + 手机号 + 工种(美工/搬运/电工/安装/普工)。系统向工人手机号发送邀请短信。

  10. ⑩ 工人绑定工人小程序

    工人用微信登录小程序,手机号与名单匹配后自动关联订单,进入「我的出工任务」。绑定即视为报名确认。

  11. ⑪ 施工与打卡工人/包工头

    施工期间,工人每日到场上卡(定位 + 现场照片,1~3 张);定位距场馆超半径则标记异常。包工头同口径打卡(监督岗)。甲方端可查看每日出勤汇总与照片墙,进度透明。

  12. ⑫ 完工报告包工头小程序

    撤场完成后,包工头提交完工报告:完工照片(≥3 张)+ 文字说明(实际用工数、增减项说明)。

  13. ⑬ 验收甲方小程序

    甲方查看完工报告与结算单(如有差异项,见 5.7)后确认验收,存在尾款的须先补付;超时规则:完工后 72 小时未操作推送提醒,120 小时(后台可配置)后可由管理员代确认(需填写备注)。验收通过后订单进入结算队列。

  14. ⑭ 结算打款管理后台

    前置:订单应收款已全部收清(含尾款)。管理员核对内部账单与打卡记录后确认结算金额,通过微信「商家转账到零钱」打款给包工头(需包工头实名信息一致),电子回单归档,订单完结,利润入账统计。

3.2 订单状态机

订单状态由平台统一维护,甲方端 / 包工头端展示的状态文案由各自状态映射生成。状态码采用两位数字,便于扩展。

状态码状态名进入条件允许的关键操作异常/备注
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)。

3.3 派单状态机

状态码状态名进入条件允许的操作 / 说明
D10待接单后台创建派单包工头查看详情(内部账单 + 工作信息)、接单 / 拒单;超截止时间未接自动关闭
D20已接单包工头确认录入工人名单、查看设计文档;后台可撤回(二次确认,撤回后订单回 40,须与包工头协商补偿并留痕)
D30施工中包工头点击开工工人打卡开放;增减项登记(影响结算金额)
D40已完工包工头提交完工报告等待订单级验收;订单驳回整改时回退 D30;可查看打卡汇总。完工截止:默认撤场日次日 24 点,超时后台提醒并人工介入
D50已验收订单验收通过进入对账确认:包工头确认内部账单结算金额;超 72 小时未确认,管理员可代确认(留痕)
D60已结算打款成功收款记录可查,电子回单下载
D90已关闭拒单 / 超时 / 后台撤回拒单须填理由;订单回到待派单可重新派

3.4 异常流程说明

① 甲方支付前取消

订单置为已取消(31),无资金动作。同场次可重新开单,历史账单保留可复制。

② 甲方支付后取消

③ 包工头拒单 / 超时未接

派单关闭(D90),订单回到已支付待派单(40),管理员重新洽谈其他包工头并重新派单。拒单记录纳入包工头合作评级(P2)。

④ 验收驳回与争议

甲方驳回验收须填写理由(附照片),订单回到施工中(60)整改;累计驳回 2 次自动转争议中(71)。争议也可由甲方(验收页)、包工头(对账页)在验收环节发起,或管理员直接置入。由平台仲裁,仲裁结果三选一:继续验收、部分退款、全额退款;状态映射:继续验收 → 80,部分退款 → 42(退款完成后继续结算),全额退款 → 41 且对应派单关闭(D90)。全程后台操作留痕并推送双方通知。

⑤ 打款失败

商家转账失败(收款人姓名与实名不符、单笔/单日额度超限、账户风控等),派单停在待打款,后台展示微信返回的错误码与原因,修正后重新发起,不自动重试超过 3 次。

第 4 章 功能需求详述

功能按端拆分,每项标注优先级:P0 首个上线版本(甲方端 + 管理后台核心)必须交付 P1 包工头端/工人端上线版本交付 P2 后续迭代。优先级语义与第 8 章迭代计划一一对应。

4.1 甲方小程序端

4.1.1 注册登录与主体认证

4.1.2 会员开通与续费

4.1.3 账单查看与支付

4.1.4 订单跟踪

4.1.5 完工验收

4.1.6 个人中心与自助需求(P2)

4.2 包工头小程序端

4.2.1 注册与实名认证(P1)

4.2.2 派单通知与接单(P1)

4.2.3 工人名单管理(P1)

4.2.4 施工管理(P1)

4.2.5 对账与收款(P1)

4.3 工人小程序端

定位说明:工人报酬由包工头线下自行发放,平台不介入工人薪酬,仅提供出勤留痕与任务查看工具。

4.3.1 登录绑定(P1)

4.3.2 每日打卡(P1)

4.4 平台管理后台(Web)

4.4.1 账号与权限(P0)

4.4.2 订单管理(P0)

4.4.3 双账单制作(对客账单 P0 / 内部账单 P1,核心)

4.4.4 派单管理(P1)

4.4.5 会员与用户管理(P0)

4.4.6 包工头管理(P1)

4.4.7 财务管理(P0)

4.4.8 打卡监管与消息(P1)

第 5 章 核心业务规则

5.1 双账单体系与利润模型

  1. 一个订单(project_order)有且仅有一张对客账单(type=client),可以有 1..N 张内部账单(type=contractor,每张挂在一条派单下);
  2. 两套账单行项目结构完全一致(同一套字段模型 bill_item),但行数与价格独立:对客 1 行「安装人员 56 工 × 350」,内部可拆为「安装 45 工 × 260 + 加班 11 工 × 240」;
  3. 利润计算:订单毛利 = 对客账单含税合计 − Σ内部账单含税合计(双方含税价直接相减;内部账单税金字段仅展示参考,默认跟随对客税率)。财务报表以「分」为最小单位计算,展示四舍五入到元;
  4. 快照规则:账单被甲方确认 / 包工头接单时冻结版本快照,后续任何调整(增减项)生成新版本并记录调整原因,历史版本只读可查;
  5. 状态映射:对客账单 1 草稿 → 2 已发送 → 3 已确认 → 4 已支付 → 5 已结算;内部账单 1 草稿 → 2 已发送(派单时)→ 3 已确认(接单时)→ 5 已结算(打款完成),「4 已支付」仅对客账单使用;
  6. 可见性:对客账单仅甲方 + 管理员可见;内部账单仅对应包工头 + 管理员可见(接口层强制过滤,见 9.2 节)。
对比项对客账单内部账单说明
行项目:搬运工36 工 × 300 元 = 10,80036 工 × 220 元 = 7,920数量一致、单价独立
可见对象甲方包工头互不可见
税金按 6% 计入含税合计转包价默认含税报价内部账单税金仅展示参考,不参与利润计算
本行差价2,880 元(平台毛利)报表按行聚合统计

5.2 账单行项目与计价规则

计价模式:简单模式

系统按「数量 × 单价 = 金额」直接计算,不做工时系数引擎。行业系数(搭建日按 3 工/天、活动日 1.5 工/天、通宵 2 工/天)由管理员在心算/线下表格完成后,把折算结果作为数量录入,并在「工艺描述」「备注」中写明折算过程,与现有询价表习惯一致:

物料名称工艺描述(折算说明)数量/单位单价金额备注
安装人员5 人搭建 3 天,天/按 3 工;活动 2 天含加班,天/按 1.5 工;通宵撤场按 2 工56 工35019,600
当地小工6 人,通宵搭建及撤场各 1 晚,按 2 工计算,含当地交通费36 工35012,600
物料运输孝感工厂—北京(华熙五棵松),13 米货车单趟1 趟10,50010,500
美工画面按实际数量计算1 项00待定

单位与分类枚举

5.3 会员费规则

5.4 支付规则

5.5 结算与打款规则(P1)

  1. 前置条件(全部满足才进入打款队列):订单验收通过(甲方确认或后台代确认)→ 对应派单内部账单版本冻结 → 包工头已确认对账(超 72 小时管理员可代确认)→ 订单应收款已全部收清(含 5.7 结算尾款);
  2. 打款通道:微信支付「商家转账到零钱」(企业商户号需单独开通该权限);单笔默认限额以微信侧配置为准(通常单日/单笔上限需申请提额);
  3. 收款人校验:转账收款人 openId 对应的实名姓名必须与平台实名认证姓名一致,不一致直接失败并提示修正;
  4. 打款操作:后台结算队列勾选 → 提交(可批量)→ 轮询/回调确认结果 → 成功归档电子回单,失败展示原因转人工;
  5. 留痕:转账批次单号、操作人、时间、金额全部入库;结算后内部账单不可再调整(如需调整走线下 + 手工台账);
  6. 降级预案:商家转账权限未开通或限额不足时,后台支持登记线下打款记录(银行流水号 + 凭证照片),状态同样流转到已结算,但页面标记「线下打款」。

5.6 打卡规则

5.7 结算单与尾款(补收款)流程(P1)

解决两类「钱收少了」的场景:① 待定项按实结算(如美工画面);② 施工中的增项。完整流程:

  1. 全部派单提交完工报告后(订单状态 70),管理员汇总待定项实结金额与增减项差异,生成结算单——本质是对客账单的「结算版」新版本快照,仅列出差异项与最终合计;无差异的订单可跳过(后台一键「无差异确认」);
  2. 甲方在验收页同时看到完工报告与结算单:结算单金额 > 已付金额 → 验收确认与尾款支付合并完成(微信支付,支付场景 scene=4);结算单金额 < 已付金额 → 差额走部分退款(42);金额一致 → 直接验收;
  3. 应收款全部收清后,订单才允许进入打款队列(对应 5.5 前置条件),避免「平台垫资打款」;
  4. 增项的对客价格由平台与甲方线下谈定后录入,转包价随内部账单同步调整,两套版本各自快照留痕。

第 6 章 数据模型设计

实体关系总览: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):

字段类型说明
idBIGINT PK主键
roleTINYINT1 甲方 2 包工头 3 工人;管理员不入本表,独立 admin_user 表(账号密码登录后台)
wx_openidVARCHAR(64) UK小程序 openid(角色隔离:一 openid 一角色)
wx_unionidVARCHAR(64)开放平台 unionid(预留)
phoneVARCHAR(20) UK手机号(AES 加密存储,检索用哈希索引列 phone_hash)
real_nameVARCHAR(32)实名姓名(包工头必填,用于转账校验)
id_card_noVARCHAR(64)身份证号(加密存储,仅包工头/工人)
statusTINYINT0 禁用 1 正常
created_at / updated_at / deleted_atDATETIME软删除
字段类型说明
idBIGINT PK主键
user_idBIGINT甲方用户
levelVARCHAR(16)档位(初版仅 year_vip)
paid_amountBIGINT实付金额(分)
start_at / expire_atDATETIME起止时间(续费顺延计算)
statusTINYINT1 有效 2 已过期 3 已作废
sourceTINYINT1 首单合并支付 2 主动续费 3 后台赠送
payment_idBIGINT关联支付流水
字段类型说明
id / order_noBIGINT PK / VARCHAR(32) UK单号规则:EX + yyMMdd + 4 位序列
client_user_idBIGINT甲方
titleVARCHAR(128)项目名,如「7x11 街霸 × 脉动路演-北京站」
city / venueVARCHAR(32) / VARCHAR(128)城市 / 场馆(如 北京 / 华熙五棵松)
venue_lat / venue_lngDECIMAL(10,6)场馆坐标(打卡比对基准)
setup_start/end, event_start/end, teardown_dateDATE搭建期 / 活动日 / 撤场日期
demand_descTEXT需求描述(x 美工、x 搬运、x 电工…)
design_filesJSON设计文档对象存储 key 列表
sourceTINYINT1 后台录入 2 甲方自助(P2)
statusTINYINT订单状态码(见 3.2)
checkin_radius_mINT打卡半径(米),默认 500
tax_rate_bpSMALLINT税率基点,默认 600(=6%)
字段类型说明
bill 账单
id / bill_noBIGINT PK / VARCHAR(32) UKCB+序列(对客)/ IB+序列(内部)
order_idBIGINT所属订单
typeTINYINT1 对客(一订单一张) 2 内部(挂派单)
dispatch_idBIGINT NULL内部账单关联的派单,对客账单为空
versionINT版本号,确认时冻结快照
total_excl / tax_rate / tax_amt / total_inclBIGINT(分)不含税合计 / 税率基点 / 税金 / 含税合计
statusTINYINT1 草稿 2 已发送 3 已确认 4 已支付 5 已结算 9 已作废
bill_item 行项目
bill_id / seqBIGINT / INT所属账单 / 序号
categoryTINYINT1 人工 2 物料 3 运输 4 仓储 5 差旅 6 保险 9 其他
group_nameVARCHAR(64)项目分组,如「搭建及撤场人工费」
nameVARCHAR(64)物料/工种名称,如「安装人员」
descriptionVARCHAR(512)工艺描述(含工时折算说明)
length/width/height_mmINT尺寸三件套(可空)
quantity / unitDECIMAL(10,2) / VARCHAR(8)数量 / 单位(项/工/人次/趟/天/㎡/米)
unit_price / amountBIGINT(分)单价 / 金额(默认 = 数量×单价,允许手改覆盖)
is_tbd / remarkBOOL / VARCHAR(255)待定标记 / 备注
字段类型说明
dispatch 派单
id / dispatch_noBIGINT PK / VARCHAR(32) UKDP+序列
order_id / contractor_user_idBIGINT订单 / 包工头(认证通过者)
bill_idBIGINT关联内部账单
scope_itemsJSON承接范围(对客行项目 id 列表,仅作说明,null=整单)
statusTINYINTD10~D90(见 3.3)
deadline_at / finish_deadline_atDATETIME接单截止(超时自动关闭)/ 完工报告截止(默认撤场日次日 24 点,超时后台提醒)
accepted_at / started_at / finished_atDATETIME接单 / 开工 / 完工时间
reject_reasonVARCHAR(255)拒单理由
finish_reportJSON完工报告(照片 keys + 说明 + 实际用工)
worker_roster 工人名单
idBIGINT PK主键
dispatch_idBIGINT所属派单
name / phone / job_typeVARCHAR(32/20) / TINYINT姓名 / 手机号(同派单内唯一,同一工人可跨派单复用并绑定同一 user)/ 工种(1 美工 2 搬运 3 电工 4 安装 5 普工)
bind_user_id / bind_statusBIGINT / TINYINT绑定后的工人 user / 0 待绑定 1 已绑定
bound_atDATETIME绑定时间
字段类型说明
attendance 打卡
dispatch_id / roster_id / user_idBIGINT派单 / 名单 / 打卡人(包工头监督卡 roster_id 为空)
work_date / typeDATE / TINYINT日期 / 1 上工 2 下工
lat / lng / address / distance_mDECIMAL / VARCHAR(128) / INT定位与逆地址、距场馆米数
photosJSON照片 key 列表(≤3)
statusTINYINT1 正常 2 越界 3 补卡待审 4 补卡通过
payment 支付流水
pay_no / wx_transaction_idVARCHAR UK平台单号 / 微信交易单号
order_id / user_idBIGINT订单 / 付款人
scene / channelTINYINT支付场景:1 会员+账单合单 2 仅账单 3 会员续费 4 结算尾款;收款渠道:1 微信支付 2 对公线下核销
total_amt / member_amt / bill_amtBIGINT(分)合计 / 会员子单 / 账单子单
status / refund_amtTINYINT / BIGINT1 待支付 2 已支付 3 已关闭 4 部分退款 5 全额退款 / 累计退款
callback_rawJSON微信回调原文(审计用)
settlement 结算
settlement_no / dispatch_id / bill_idVARCHAR UK / BIGINT结算单号 / 派单 / 内部账单(版本冻结)
amountBIGINT(分)结算金额
statusTINYINT1 待确认 2 待打款 3 打款中 4 已打款 5 失败 6 线下打款
transfer_batch_id / voucher_urlVARCHAR / VARCHAR(255)微信转账批次单号 / 电子回单地址
operator_id / confirmed_at / fail_reasonBIGINT / DATETIME / VARCHAR(255)操作留痕

通用约定

第 7 章 技术架构建议

7.1 为什么选 Go(而非 Java)

结合背景:开发者是 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+ 已够用);大型项目组织需自律个人独立开发启动慢、样板代码多

7.2 推荐技术栈

选型理由
后端框架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
HTTPSNginx + Let's Encrypt / 腾讯云免费证书小程序强制 HTTPS

7.3 第三方服务与资质清单

能力服务开通条件与说明
小程序登录微信开放平台个人主体可上线,但支付需要企业主体,建议直接以个体户/公司注册小程序
支付/合单/退款微信支付 V3(JSAPI)需企业或个体工商户营业执照 + 对公/经营账户;合单支付与普通支付共用商户号
打款给包工头商家转账到零钱商户号需单独开通权限(提供业务场景说明:劳务分包结算);有单笔/单日限额,初期建议每笔控制额度并申请提额
短信腾讯云 SMS邀请工人、派单通知;需备案签名与模板
定位与逆地址腾讯位置服务小程序定位授权 + 服务端坐标距离计算(Haversine),逆地址解析用于打卡地址展示
图片安全(P1.5)微信内容安全 msgSecCheck / imgSecCheck打卡照片、企业资料的合规检测
OCR(P2)腾讯云 OCR营业执照、身份证识别自动填充

7.4 服务端架构与 API 规范

第 8 章 迭代计划

按「先跑通钱、再跑通人」的顺序分期:P0 解决收钱与记账,P1 解决施工过程与打款闭环,P2 做增长与效率。以 1 名全职开发(本人)估算工期。

阶段周期估算交付内容
P0 MVP 约 6~8 周 跑通「录单 → 对客账单 → 甲方注册 → 会员+账单合并支付 → 后台记账」:
① 后端框架与登录鉴权 ② 甲方小程序(注册登录、账单查看确认、微信合单支付、订单列表)③ 后台(订单录入、对客账单编辑器、账单发送、收款流水)④ 企业主体/商户号/小程序主体资质办理(并行)
P1 完整闭环 约 6~8 周 跑通「派单 → 接单 → 打卡 → 完工 → 验收 → 线上打款」:
① 包工头端(实名认证、派单接单、工人名单、开工/完工报告、对账收款)② 工人端(绑定、定位+拍照打卡)③ 内部账单与派单管理 ④ 商家转账打款 + 回单归档 ⑤ 验收流程与超时代确认 ⑥ 打卡异常监管 + 利润报表
P2 增强 持续迭代 ① 甲方自助需求发布与审核 ② 历史工人库/包工头评级 ③ 照片水印与防作弊增强 ④ 补卡流程 ⑤ 数据大屏与经营报表 ⑥ 开票信息管理与电子收据 ⑦ 多联系人企业账户 ⑧ 接单大厅(评估后决定)

第 9 章 非功能需求与风险合规

9.1 性能与可用性

9.2 数据安全与双账单隔离(重点)

9.3 合规风险与应对

风险说明应对策略
资金二清 平台代收甲方资金再转付包工头,若形成资金池滞留可能触碰无证清算红线 以自营服务模式定位(平台对甲方销售搭建服务、对包工头采购劳务分包);收款直接进对公商户号;验收后 T+3 内完成打款不留存;单量增大后评估微信分账能力
劳务与工伤 工人与包工头存在雇佣关系,一旦出现工伤,甲方与平台可能被连带追责 每单账单强制包含「保险」行项目(短期意外险/雇主责任险);平台用户协议明确撮合定位;留存包工头与工人的用工证据(打卡记录即出勤证据)
税务凭证 平台向甲方开票(6% 服务费),但采购端缺成本票会推高利润虚高 过渡方案(P0/P1):与包工头签订采购协议、银行转账回单入账,税前咨询会计师做成本暂估;P2 接入灵活用工平台代征取得合规成本票;坚持合同流、资金流、发票流三流一致
小程序类目审核 涉及「劳务/招聘」字样可能被要求人力资源服务许可证 产品文案统一定位为「展会搭建服务交易」;工人打卡功能收敛在「施工管理」叙事下;类目选会展/商业服务
个人信息保护 收集身份证、定位、照片属敏感个人信息(PIPL) 单独弹窗授权 + 最小化收集;隐私政策披露用途;数据只用于本单履约与结算

第 10 章 附录

附录 A:真实询价单样例(对客账单行项目对照)

以下来自实际业务询价表(7×11 街霸 × 脉动路演-北京站,华熙五棵松),用于验证账单模型覆盖度。该单 16 个行项目覆盖 6 种分类,模型全部支持。

序号物料名称工艺描述数量单位单价金额
1电料、辅料配电箱、现场布线、物料简易包装、五金等12,0002,000
2安装人员5 人搭建 3 天,天/按 3 工;活动 2 天含加班,天/按 1.5 工;通宵撤场按 2 工,来回路程 2 工5635019,600
3当地小工6 人,通宵搭建及撤场各 1 晚,按 2 工,含当地交通费3635012,600
5电工1 人搭建 1 晚/按 3 工,活动 2 天含加班/按 1.5 工,通宵撤场按 3 工64502,700
7人员差旅费4 人住宿、餐费25人次1503,750
8保险主场 + 2 间学校11,2001,200
9物料运输孝感工厂—北京(华熙五棵松)13 米货车单趟110,50010,500
12物料仓储西安物料仓储费(一个月内)13,0003,000
16美工画面按实际数量计算100
含税合计:79,447 元(不含税 74,950 + 税金 6% 4,497)

附录 B:待定决策清单(上线前确认)

事项建议默认值决策人 / 时机
会员年费定价999~2,000 元/年(参考同业撮合平台)运营方 / P0 上线前
打卡半径默认值500 米(订单级可改)运营方 / P1 联调时实测校准
验收超时阈值72 小时提醒、120 小时可代确认运营方 / P1
包工头保证金初期不收;评级成熟后对高风险单收履约保证金运营方 / P2 评估
税率6%(现代服务业),订单级可改财税顾问确认
发票流程线下开具,平台仅留开票信息字段运营方 / 税务规划时
开票规则细节会员费与订单款分别开票,税率以财税顾问意见为准(建议均 6%);开票申请由甲方在小程序提交财税顾问 / 上线前
增项对客定价参考对客单价库与往期同类项,平台与甲方线下谈定后录入新版本运营方 / 随单处理
P0/P1 履约约束线下合作协议 + 拒单/撤回留痕 + 完工验收后才打款(后置结款即履约保障)运营方 / P1 前准备协议模板
平台名称与品牌待定(小程序主体名称需先定,影响注册)运营方 / 立即
人工类目价格库后台维护「工种 × 城市 × 对客价/转包价」参考库运营方 / P1 后整理沉淀

文档完

本文档为 V1.0 开发蓝本,覆盖业务流程、功能、数据模型、技术选型与合规风险。

后续版本迭代请在「文档信息」表登记变更记录;开发过程中的字段调整同步更新第 6 章。