代練玩游戲平臺(tái) — 功能說(shuō)明 & 使用手冊(cè)
> 后端:FastAdmin (ThinkPHP 5) · 前端:Uniapp H5
> 后端地址:http://ai-dailian.io
> 前端地址:http://localhost:8080
> API 根路徑:http://ai-dailian.io/index.php/api
> 后臺(tái)管理:http://ai-dailian.io/index.php/admin(賬號(hào) admin / test123456)
---
## 一、項(xiàng)目結(jié)構(gòu)
```
ai-dailian.io/
├── houduan/ # 后端(FastAdmin)
│ └── application/
│ ├── api/controller/ # 所有前端 API 控制器
│ │ ├── User.php # 用戶登錄/注冊(cè)
│ │ ├── Square.php # 首頁(yè)廣場(chǎng)/大神列表
│ │ ├── Skill.php # 技能管理
│ │ ├── Moment.php # 動(dòng)態(tài)系統(tǒng)
│ │ ├── Order.php # 訂單系統(tǒng)
│ │ ├── Wallet.php # 錢(qián)包/充值/提現(xiàn)
│ │ ├── Room.php # 語(yǔ)音房間
│ │ ├── Notify.php # 消息通知
│ │ └── ProApply.php # 大神入駐申請(qǐng)
│ └── extra/yipay.php # 易支付配置(需填寫(xiě)真實(shí)參數(shù))
├── qianduan/ # 前端(Uniapp)
│ └── pages/
│ ├── index/index.vue # 首頁(yè)(游戲分類 + 推薦大神)
│ ├── square/index.vue # 大神廣場(chǎng)(搜索/篩選/排序)
│ ├── pro/detail.vue # 大神主頁(yè)(簡(jiǎn)介/技能/評(píng)價(jià))
│ ├── pro/apply.vue # 大神入駐申請(qǐng)
│ ├── pro/skills.vue # 我的技能管理(大神)
│ ├── moment/index.vue # 動(dòng)態(tài)廣場(chǎng)
│ ├── moment/publish.vue # 發(fā)布動(dòng)態(tài)
│ ├── order/create.vue # 下單頁(yè)
│ ├── order/list.vue # 我的訂單
│ ├── order/detail.vue # 訂單詳情
│ ├── order/pro_orders.vue # 接單中心(大神)
│ ├── wallet/index.vue # 錢(qián)包(余額/充值/提現(xiàn)/流水)
│ ├── room/index.vue # 語(yǔ)音廳列表
│ ├── room/create.vue # 創(chuàng)建房間
│ ├── room/voice.vue # 8麥位語(yǔ)音房間
│ ├── notify/index.vue # 消息通知中心
│ └── user/profile.vue # 個(gè)人中心
└── mysql/ # SQL 文件
```
---
## 二、各功能模塊說(shuō)明
### 2.1 用戶系統(tǒng)
| 接口 | 方法 | 說(shuō)明 | 是否需要登錄 |
|------|------|------|------------|
| /user/login | POST | 賬號(hào)密碼登錄 | 否 |
| /user/register | POST | 注冊(cè) | 否 |
| /user/profile | GET | 獲取個(gè)人信息 | 是 |
| /user/profile | POST | 修改昵稱/簡(jiǎn)介 | 是 |
| /user/logout | POST | 退出登錄 | 是 |
**測(cè)試賬號(hào):**
- 普通用戶:testuser88 / test123456
- 大神賬號(hào):admin / test123456(is_pro=1)
---
### 2.2 首頁(yè) & 大神廣場(chǎng)
| 接口 | 說(shuō)明 |
|------|------|
| GET /square/categories | 游戲分類列表 |
| GET /square/proList | 大神列表,支持 game_category_id、sort(hot/new/price)、keyword 篩選 |
| GET /square/proDetail?id=1 | 大神詳情(技能/評(píng)價(jià)/相冊(cè)/語(yǔ)音) |
**前端頁(yè)面:**
- 首頁(yè)(`pages/index/index`):展示分類橫向滾動(dòng) + 推薦大神卡片
- 廣場(chǎng)(`pages/square/index`):完整篩選/搜索/排序
---
### 2.3 動(dòng)態(tài)系統(tǒng)
| 接口 | 說(shuō)明 |
|------|------|
| GET /moment/index | 動(dòng)態(tài)列表(公開(kāi),分頁(yè)) |
| POST /moment/publish | 發(fā)布動(dòng)態(tài)(content + images JSON數(shù)組) |
| POST /moment/like | 點(diǎn)贊/取消贊(moment_id) |
| POST /moment/del | 刪除自己的動(dòng)態(tài)(id) |
**圖片上傳流程(已修復(fù)):**
1. 選擇圖片 → 調(diào)用 `uni.uploadFile` 上傳到 `/api/common/upload`
2. 上傳成功后取 `data.fullurl` 作為圖片展示地址(若無(wú) fullurl 則拼接站點(diǎn)域名)
3. 發(fā)布時(shí)將圖片 URL 數(shù)組 JSON stringify 后一起提交
---
### 2.4 大神入駐申請(qǐng)
| 接口 | 路徑 | 說(shuō)明 |
|------|------|------|
| GET 查詢狀態(tài) | /pro_apply/info | 返回審核狀態(tài)/駁回原因 |
| POST 提交申請(qǐng) | /pro_apply/apply | 上傳真實(shí)姓名/證件照/段位截圖/語(yǔ)音介紹 |
| POST 更新資料 | /pro_apply/update_info | 大神通過(guò)后修改語(yǔ)音/段位圖 |
**審核流程:**
1. 用戶在 `pages/pro/apply` 提交資料
2. 后臺(tái)管理員在 **管理后臺(tái) → 游戲/大神管理** 中審核
3. 審核通過(guò)后 `fa_user.is_pro=1, pro_status=2`,用戶成為大神
> ?? 注意:后端路由是 `/pro_apply/`(下劃線),不是 `/proapply/`
---
### 2.5 技能系統(tǒng)
| 接口 | 方法 | 說(shuō)明 | 登錄 |
|------|------|------|------|
| /skill/index | GET | 技能列表(公開(kāi)),參數(shù):pro_id, game_category_id | 否 |
| /skill/detail?id= | GET | 技能詳情 | 否 |
| /skill/mySkills | GET | 我的技能(僅大神) | 是 |
| /skill/add | POST | 添加技能 | 是(大神) |
| /skill/edit | POST | 編輯技能 | 是(大神) |
| /skill/del | POST | 刪除技能 | 是(大神) |
| /skill/toggle | POST | 上架/下架(status=0/1) | 是(大神) |
| /skill/categories | GET | 游戲分類下拉列表 | 否 |
**計(jì)價(jià)方式:** `hour`=按小時(shí) / `game`=按局 / `package`=套餐
---
### 2.6 訂單系統(tǒng)(核心)
#### 訂單狀態(tài)機(jī):
```
10(待接單) → 20(服務(wù)中) → 30(待確認(rèn)) → 40(已完成)
↘ 50(爭(zhēng)議)
任意狀態(tài) → 99(已取消,用戶取消/未接單前)
```
| 接口 | 方法 | 說(shuō)明 | 誰(shuí)調(diào)用 |
|------|------|------|--------|
| /order/create | POST | 下單(skill_id, quantity, requirement, pay_type=balance) | 用戶 |
| /order/myOrders | GET | 我的訂單(status=0全部) | 用戶 |
| /order/proOrders | GET | 接單列表 | 大神 |
| /order/detail?id= | GET | 訂單詳情 | 雙方 |
| /order/accept | POST | 接單(order_id) | 大神 |
| /order/finish | POST | 標(biāo)記完工(order_id) | 大神 |
| /order/confirm | POST | 確認(rèn)收貨 → 自動(dòng)結(jié)算 | 用戶 |
| /order/cancel | POST | 取消訂單(待接單階段) | 用戶 |
**結(jié)算規(guī)則:** 用戶確認(rèn)后,平臺(tái)扣 10% 手續(xù)費(fèi),剩余 90% 自動(dòng)入大神余額。
---
### 2.7 錢(qián)包系統(tǒng)
| 接口 | 方法 | 說(shuō)明 |
|------|------|------|
| /wallet/info | GET | 余額/累計(jì)收支 |
| /wallet/logs | GET | 流水列表(type=all/income/expense) |
| /wallet/createOrder | POST | 創(chuàng)建易支付充值訂單(返回 pay_url) |
| /wallet/payNotify | POST/GET | 易支付異步回調(diào)(自動(dòng)到賬) |
| /wallet/payReturn | GET | 支付同步跳轉(zhuǎn)(支付完成跳回錢(qián)包頁(yè)) |
| /wallet/withdraw | POST | 申請(qǐng)?zhí)岈F(xiàn)(支付寶)|
| /wallet/withdrawLogs | GET | 提現(xiàn)記錄 |
#### 充值流程(易支付):
```
用戶點(diǎn)擊"充值"
→ 輸入金額 → 點(diǎn)"支付寶充值"
→ 前端調(diào) POST /wallet/createOrder
→ 后端創(chuàng)建 fa_recharge_order 記錄,生成簽名,返回 pay_url
→ 前端跳轉(zhuǎn)到 pay_url(H5: window.location.href)
→ 用戶在支付寶完成付款
→ 易支付服務(wù)器回調(diào) /wallet/payNotify(驗(yàn)簽 → 加余額 → 寫(xiě)流水)
→ 前端跳轉(zhuǎn)回 /pages/wallet/index?pay=success(顯示成功提示)
```
#### 配置易支付(必須操作):
編輯 `houduan/application/extra/yipay.php`:
```php
return [
’api_url’ => ’https://你的易支付網(wǎng)關(guān)地址/submit.php’,
’pid’ => ’你的商戶ID’,
’key’ => ’你的商戶密鑰’,
’notify_url’ => ’http://ai-dailian.io/index.php/api/wallet/payNotify’,
’return_url’ => ’http://ai-dailian.io/index.php/api/wallet/payReturn’,
];
```
#### 提現(xiàn)流程:
```
用戶點(diǎn)"提現(xiàn)" → 填寫(xiě)金額/支付寶賬號(hào)/真實(shí)姓名
→ 后端扣余額、寫(xiě)流水、創(chuàng)建提現(xiàn)申請(qǐng)(狀態(tài)=待審核)
→ 管理員在后臺(tái)審核并手動(dòng)打款
→ 后臺(tái)將提現(xiàn)狀態(tài)改為"已打款"
```
> 手續(xù)費(fèi)計(jì)算:max(0.5, amount × 1%),最-低 0.5 元
---
### 2.8 語(yǔ)音房間
| 接口 | 說(shuō)明 |
|------|------|
| GET /room/lists | 房間列表 |
| POST /room/create | 創(chuàng)建房間(title, game_id, notice, seat_count=8) |
| GET /room/detail?id= | 房間詳情(含8個(gè)麥位狀態(tài)) |
| POST /room/takeSeat | 上麥(room_id, seat_no) |
| POST /room/leaveSeat | 下麥(room_id) |
| POST /room/kickSeat | 房主踢人(room_id, seat_no) |
| POST /room/lockSeat | 鎖麥(room_id, seat_no) |
| POST /room/sendMsg | 發(fā)消息(room_id, content) |
| GET /room/messages | 輪詢消息(room_id, last_id) |
| POST /room/close | 關(guān)閉房間(僅房主) |
**麥位說(shuō)明:** 0號(hào)位為房主專屬,1-7號(hào)為觀眾可申請(qǐng)麥位。
---
### 2.9 消息通知系統(tǒng)
| 接口 | 說(shuō)明 |
|------|------|
| GET /notify/unread | 未讀消息數(shù)量 |
| GET /notify/lists | 通知列表(自動(dòng)標(biāo)已讀) |
| POST /notify/readAll | 全部標(biāo)為已讀 |
**通知類型:**
| type | 觸發(fā)時(shí)機(jī) |
|------|---------|
| order_new | 用戶下單,通知大神 |
| order_accept | 大神接單,通知用戶 |
| order_finish | 大神完工,通知用戶 |
| order_confirm | 用戶確認(rèn),通知大神(含結(jié)算金額) |
| order_cancel | 取消訂單,通知雙方 |
| system | 系統(tǒng)通知(充值/提現(xiàn)/手動(dòng)推送) |
**如何手動(dòng)推送系統(tǒng)通知(管理員):**
方式一:通過(guò) FastAdmin 后臺(tái)數(shù)據(jù)庫(kù)直接寫(xiě)入 `fa_notification` 表:
```sql
INSERT INTO fa_notification
(user_id, sender_id, type, title, content, is_read, createtime)
VALUES
(目標(biāo)用戶ID, 0, ’system’, ’通知標(biāo)題’, ’通知內(nèi)容’, 0, UNIX_TIMESTAMP());
```
方式二:在后端代碼中調(diào)用靜態(tài)方法:
```php
use appapicontrollerNotify;
// 給指定用戶推系統(tǒng)通知
Notify::push($userId, ’system’, ’標(biāo)題’, ’內(nèi)容正文’);
// 關(guān)聯(lián)訂單(點(diǎn)擊可跳轉(zhuǎn))
Notify::push($userId, ’system’, ’標(biāo)題’, ’內(nèi)容’, ’orders’, $orderId);
```
> 目前前端通知頁(yè)只展示,不支持用戶主動(dòng)發(fā)消息(設(shè)計(jì)定位:?jiǎn)蜗蛲扑停?
---
## 三、數(shù)據(jù)庫(kù)表說(shuō)明
| 表名 | 說(shuō)明 |
|------|------|
| fa_user | 用戶(含 is_pro/pro_status/money 等字段) |
| fa_user_token | 登錄 Token |
| fa_game_category | 游戲分類(王者/英雄聯(lián)盟等) |
| fa_skills | 大神技能列表 |
| fa_pro_review | 大神評(píng)價(jià) |
| fa_pro_album | 大神相冊(cè) |
| fa_moment | 用戶動(dòng)態(tài) |
| fa_moment_like | 動(dòng)態(tài)點(diǎn)贊記錄 |
| fa_orders | 訂單表 |
| fa_wallet_logs | 錢(qián)包流水 |
| fa_withdraw | 提現(xiàn)申請(qǐng) |
| fa_recharge_order | 充值訂單(易支付) |
| fa_voice_room | 語(yǔ)音房間 |
| fa_room_seat | 麥位狀態(tài) |
| fa_room_message | 房間聊天消息 |
| fa_notification | 消息通知 |
---
## 四、快速啟動(dòng)
### 后端
1. 確保 phpstudy 中 Apache + MySQL 已啟動(dòng)
2. 訪問(wèn) http://ai-dailian.io 確認(rèn)后端正常
### 前端
```bash
cd qianduan
npm run dev:h5
# 或在 HBuilderX 中運(yùn)行到瀏覽器
```
訪問(wèn) http://localhost:8080
### 配置易支付(上線必填)
```
houduan/application/extra/yipay.php
→ 填入真實(shí)的 api_url / pid / key
→ notify_url 必須為公網(wǎng)可訪問(wèn)地址
```
---
## 五、常見(jiàn)問(wèn)題
**Q: 圖片上傳后不顯示?**
A: 已修復(fù)。上傳接口返回的相對(duì)路徑統(tǒng)一通過(guò) `cdnUrl()` 轉(zhuǎn)為完整URL。
**Q: 輸入框無(wú)法輸入?**
A: uniapp 的 `<input>` 需要明確高度。已修復(fù) room/create 等頁(yè)面的 `.field-input` 高度。
**Q: profile.vue 導(dǎo)致首頁(yè)白屏?**
A: 已修復(fù)。原因是 `methods` 塊重復(fù)聲明導(dǎo)致 Babel 語(yǔ)法錯(cuò)誤。
**Q: 技能接口 500 錯(cuò)誤?**
A: 已修復(fù)。原因1:model 命名空間錯(cuò)誤(`appadminmodelgameSkills`);原因2:`setEagerlyType(0)` 導(dǎo)致 JOIN 字段歧義,改為 `setEagerlyType(1)`。
**Q: 通知顯示 total=0?**
A: 通知在訂單生命周期中自動(dòng)觸發(fā)。請(qǐng)先完成一次完整訂單流程(下單→接單→完工→確認(rèn))后查看通知。
**Q: 充值完成但余額沒(méi)更新?**
A: 異步回調(diào)需要 `notify_url` 公網(wǎng)可訪問(wèn)。本地開(kāi)發(fā)可用 ngrok 做內(nèi)網(wǎng)穿透:
```bash
ngrok http 80
# 將 https://xxx.ngrok.io 替換 yipay.php 中的 notify_url
```
---
## 六、各角色使用流程
### 普通用戶流程
1. 注冊(cè)/登錄
2. 首頁(yè)瀏覽大神 → 進(jìn)入大神主頁(yè)
3. 選擇技能 → 下單(需余額)
4. 查看訂單狀態(tài)(訂單列表)
5. 大神完工后 → 確認(rèn)收貨
6. 查看錢(qián)包余額/流水
### 大神流程
1. 登錄 → 個(gè)人中心 → 申請(qǐng)成為大神
2. 等待后臺(tái)審核通過(guò)
3. 進(jìn)入"我的技能"添加/編輯技能
4. 進(jìn)入"接單中心"查看待接訂單
5. 接單 → 服務(wù)中 → 提交完工
6. 用戶確認(rèn)后,收益自動(dòng)入賬
7. 余額達(dá)到 10 元可申請(qǐng)?zhí)岈F(xiàn)(支付寶)
### 管理員流程
1. 登錄后臺(tái):http://ai-dailian.io/index.php/admin
2. 審核大神申請(qǐng)(游戲/大神管理)
3. 管理游戲分類(添加/編輯圖標(biāo)/名稱/段位選項(xiàng))
4. 審核提現(xiàn)申請(qǐng)(手動(dòng)打款后改狀態(tài)為"已打款")
5. 處理爭(zhēng)議訂單(強(qiáng)制結(jié)單 / 強(qiáng)制退款)










1、自動(dòng):在上方保障服務(wù)中標(biāo)有自動(dòng)發(fā)貨的商品,拍下后,將會(huì)自動(dòng)收到來(lái)自賣家的商品獲取(下載)鏈接;
2、手動(dòng):未標(biāo)有自動(dòng)發(fā)貨的的商品,拍下后,賣家會(huì)收到郵件、短信提醒,也可通過(guò)QQ或訂單中的電話聯(lián)系對(duì)方。
1、源碼默認(rèn)交易周期:自動(dòng)發(fā)貨商品為1天,手動(dòng)發(fā)貨商品為3天,買(mǎi)家有1次額外延長(zhǎng)3天交易周期的權(quán)利;
2、若上述交易周期雙方依然無(wú)法完成交易,任意一方可發(fā)起追加周期(1~60天)的請(qǐng)求,對(duì)方同意即可延長(zhǎng)。
1、描述:源碼描述(含標(biāo)題)與實(shí)際源碼不一致的(例:描述PHP實(shí)際為ASP、描述的功能實(shí)際缺少、版本不符等);
2、演示:有演示站時(shí),與實(shí)際源碼小于95%一致的(但描述中有"不保證完全一樣、有變化的可能性"類似顯著聲明的除外);
3、發(fā)貨:手動(dòng)發(fā)貨源碼,在賣家未發(fā)貨前,已申請(qǐng)退款的;
4、安裝:免費(fèi)提供安裝服務(wù)的源碼但賣家不履行的;
5、收費(fèi):額外收取其他費(fèi)用的(但描述中有顯著聲明或雙方交易前有商定的除外);
6、其他:如質(zhì)量方面的硬性常規(guī)問(wèn)題等。
注:經(jīng)核實(shí)符合上述任一,均支持退款,但賣家予以積極解決問(wèn)題則除外。
1、互站會(huì)對(duì)雙方交易的過(guò)程及交易商品的快照進(jìn)行永久存檔,以確保交易的真實(shí)、有效、安全!
2、互站無(wú)法對(duì)如“永久包更新”、“永久技術(shù)支持”等類似交易之后的商家承諾做擔(dān)保,請(qǐng)買(mǎi)家自行鑒別;
3、在源碼同時(shí)有網(wǎng)站演示與圖片演示,且站演與圖演不一致時(shí),默認(rèn)按圖演作為糾紛評(píng)判依據(jù)(特別聲明或有商定除外);
4、在沒(méi)有"無(wú)任何正當(dāng)退款依據(jù)"的前提下,商品寫(xiě)有"一旦售出,概不支持退款"等類似的聲明,視為無(wú)效聲明;
5、在未拍下前,雙方在QQ上所商定的交易內(nèi)容,亦可成為糾紛評(píng)判依據(jù)(商定與描述沖突時(shí),商定為準(zhǔn));
6、因聊天記錄可作為糾紛評(píng)判依據(jù),故雙方聯(lián)系時(shí),只與對(duì)方在互站上所留的QQ、手機(jī)號(hào)溝通,以防對(duì)方不承認(rèn)自我承諾。
7、雖然交易產(chǎn)生糾紛的幾率很小,但一定要保留如聊天記錄、手機(jī)短信等這樣的重要信息,以防產(chǎn)生糾紛時(shí)便于互站介入快速處理。
1、互站作為第三方中介平臺(tái),依據(jù)交易合同(商品描述、交易前商定的內(nèi)容)來(lái)保障交易的安全及買(mǎi)賣雙方的權(quán)益;
2、非平臺(tái)線上交易的項(xiàng)目,出現(xiàn)任何后果均與互站無(wú)關(guān);無(wú)論賣家以何理由要求線下交易的,請(qǐng)聯(lián)系管理舉報(bào)。
888網(wǎng)絡(luò)科技
7888003632649348658803754159
短信咨詢
服務(wù)
5.00
效率
5.00
質(zhì)量
5.00
客服
客服QQ: 400****86 (點(diǎn)擊直接對(duì)話)
客服電話:400****86(查看完整電話)
客服郵箱:serve#huzhan.com
管理僅處理交易投訴、舉報(bào)、帳號(hào)、資金等平臺(tái)使用問(wèn)題;
商品問(wèn)題請(qǐng)咨詢各商品詳情頁(yè)面中顯示的商家客服QQ。
您好,歡迎來(lái)到互站!
余額:0.00 元
積分:0 積分