首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >开源分享:基于TP6+Uniapp的全场景约玩陪玩平台(陪玩/搭子/技能服务)

开源分享:基于TP6+Uniapp的全场景约玩陪玩平台(陪玩/搭子/技能服务)

原创
作者头像
DK l8583832252
发布2026-04-02 10:57:58
发布2026-04-02 10:57:58
2660
举报

最近研究了不少“陪伴经济”相关的产品形态——游戏陪玩、语音社交、线下搭子、陪诊服务等等。这类业务的核心逻辑其实很相似:用户端发起需求 + 服务端接单响应 + 平台撮合分润

于是我整理了一套之前开发的通用服务撮合系统,后端ThinkPHP6 + 前端Uniapp,支持多端运行,覆盖了线上线下的各类场景。代码结构清晰,注释完整,适合学习参考或二次开发。

声明:本项目仅供技术学习和交流使用,请勿用于非法用途。


一、技术架构

模块

选型

后端框架

ThinkPHP 6.0

前端框架

Uni-app(跨端)

数据库

MySQL 5.7+

管理后台

基于TP6开发

运行环境

PHP 7.4+ / Nginx

选型考量:

  • TP6:轻量、性能优秀、文档完善,适合中小型项目快速开发
  • Uni-app:一套代码编译到小程序、H5、APP,极大降低多端维护成本
  • 前后端分离:接口规范统一,便于后续扩展和维护

二、核心功能模块

2.1 多端支持

  • 微信公众号 / 微信小程序 / H5 / PC端,多端账号数据同步
  • 可打包生成iOS/Android APP

2.2 业务场景

线上模式:

  • 游戏陪玩(支持多游戏、多计费单位)
  • 1V1实时语音陪聊
  • 多人语音房

线下模式:

  • 线下搭子(导游、运动、看电影等)
  • 技能服务(陪诊、家政、保洁等)
  • 支持路费自动计算、商家自主开关接单

2.3 角色与权限

  • 普通用户 → 申请成为服务者(后台审核)
  • 工会/经纪公司入驻,系统自动分润
  • 支持多种通知渠道:公众号模板消息、小程序订阅消息、短信

2.4 社交互动

  • 服务者个人主页(声音/照片/标签展示)
  • 实时语音聊天
  • 多人语音房场景

三、代码结构

代码语言:txt
复制
├── app/
│   ├── controller/       # 控制器
│   ├── model/            # 模型层
│   ├── service/          # 业务逻辑层
│   ├── validate/         # 验证器
│   └── ...
├── config/               # 配置文件
├── public/               # 入口文件
├── route/                # 路由定义
├── uni-app/              # 前端Uni-app源码
│   ├── pages/            # 页面
│   ├── components/       # 组件
│   ├── store/            # 状态管理
│   ├── utils/            # 工具函数
│   └── api/              # 接口封装
└── database/             # 数据库脚本

代码遵循PSR规范,模型层与业务逻辑层分离,便于单元测试和维护。

四、关键实现解析

4.1 订单提醒机制 订单提醒采用策略模式设计,支持多种通知渠道的灵活组合:

代码语言:txt
复制
// app/service/NotifyService.php
class NotifyService
{
    protected $channels = [];
    
    public function addChannel(NotifyChannel $channel)
    {
        $this->channels[] = $channel;
    }
    
    public function send($order, $user)
    {
        foreach ($this->channels as $channel) {
            $channel->send($order, $user);
        }
    }
}

目前已实现微信公众号模板消息、小程序订阅消息、阿里云短信三种渠道,可根据实际需要扩展。

4.2 分润系统设计

分润规则支持多级配置,采用责任链模式处理不同角色的分成逻辑:

代码语言:txt
复制
// app/service/ProfitService.php
interface ProfitCalculator
{
    public function calculate($order, $user);
    public function setNext(ProfitCalculator $next);
}

工会入驻后,系统自动按后台配置的分润比例完成结算,支持月结/周结等多种周期。

4.3 语音功能对接

语音部分采用RTC方案(预留了腾讯云TRTC和声网接口),核心代码位于:

代码语言:txt
复制
uni-app/components/voice-chat/

主要包括进房、退房、静音、扬声器等基础操作,可根据选择的云服务商快速对接。


五、快速部署

环境要求

  • PHP 7.4+(需开启PDO、curl、gd、fileinfo等扩展)
  • MySQL 5.7+
  • Nginx 或 Apache

部署步骤

代码语言:txt
复制
# 1. 克隆源码(略)

# 2. 导入数据库
mysql -u用户名 -p 数据库名 < database/install.sql

# 3. 配置环境变量
cp .env.example .env
vim .env  # 填写数据库配置

# 4. 设置运行目录
# 将网站根目录指向 public 文件夹

Nginx伪静态配置:

代码语言:txt
复制
location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
    }
}

前端编译

使用HBuilderX打开uni-app目录,修改config.js中的接口地址,然后编译到目标平台。


六、数据库设计

核心表结构(主要表说明):

表名

说明

user

用户基础信息

user_service

服务者资料

union

工会/经纪公司

order

订单主表

order_detail

订单明细(时长/金额/分润)

game

游戏/分类表

voice_room

语音房记录

withdraw

提现记录

表结构设计遵循第三范式,字段注释完整,索引合理。


七、界面预览

篇幅限制,这里不放所有截图。演示站已部署,感兴趣的朋友可以私信我获取演示地址,前后台均可体验。

后台管理功能包括:

  • 用户管理与审核
  • 服务者资质审核
  • 工会管理
  • 订单与财务流水
  • 分润规则配置
  • 频道/分类管理
  • 消息推送配置

八、适用场景与扩展思路

这套系统的设计初衷是一个通用的服务撮合平台,可以适配多种业务形态:

场景

配置方式

游戏陪玩

配置游戏分类、计费单位

语音社交

启用语音房模块

线下搭子

开启线下模式、路费计算

技能服务

自定义服务分类与定价

垂直社区

根据资源定制频道入口

扩展建议:

  • 可增加评价体系与信用分机制
  • 可接入第三方风控,防范刷单
  • 可增加视频认证功能,提升信任度

九、总结与交流

这套系统从需求到落地断断续续开发了几个月,涉及的业务场景比较丰富,代码量也相对较大。分享出来是希望能给有类似需求的朋友提供一些参考,同时也欢迎大家提出改进建议。

如果你在使用过程中遇到问题,或者有更好的实现思路,欢迎在评论区留言交流。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、技术架构
  • 二、核心功能模块
    • 2.1 多端支持
    • 2.2 业务场景
    • 2.3 角色与权限
    • 2.4 社交互动
  • 三、代码结构
    • 4.2 分润系统设计
    • 4.3 语音功能对接
  • 五、快速部署
    • 环境要求
    • 部署步骤
    • 前端编译
  • 六、数据库设计
  • 七、界面预览
  • 八、适用场景与扩展思路
  • 九、总结与交流
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档