Browse Source

fix(R26): 新增 api/message/unread 接口+路由注册

dev v0.1.0
cursor 1 day ago
parent
commit
f136bb811a
2 changed files with 33 additions and 0 deletions
  1. +31
    -0
      app/controller/Message.php
  2. +2
    -0
      route/app.php

+ 31
- 0
app/controller/Message.php View File

@ -102,4 +102,35 @@ class Message extends BaseController
return json(['code' => 0, 'data' => null, 'msg' => 'ok']); return json(['code' => 0, 'data' => null, 'msg' => 'ok']);
} }
// GET api/message/unread?card_no=XXX 或 ?card_no=all&staff_id=1
// 顾客端:传 card_no,查 staff 发送的未读消息数
// 员工端:传 card_no=all + staff_id,统计所有顾客发来的未读消息数
public function unread()
{
$cardNo = $this->request->get('card_no', '');
$staffId = $this->request->get('staff_id', null);
if (empty($cardNo)) {
return json(['code' => -1, 'data' => null, 'msg' => '缺少号码牌']);
}
$query = MessageModel::where('is_read', 0);
if ($cardNo === 'all' && $staffId !== null) {
// 员工端:统计所有对话中顾客发来的未读
$query->where('sender_type', 'customer');
} elseif ($staffId !== null) {
// 员工端指定号码牌
$query->where('card_no', $cardNo)->where('sender_type', 'customer');
} else {
// 顾客端:统计该号码牌员工发来的未读
$query->where('card_no', $cardNo)->where('sender_type', 'staff');
}
$count = $query->count();
return json(['code' => 0, 'data' => ['count' => $count], 'msg' => 'ok']);
}
} }

+ 2
- 0
route/app.php View File

@ -13,6 +13,7 @@ Route::post('api/order/remind', 'Order/remind');
Route::get('api/message/list', 'Message/list'); Route::get('api/message/list', 'Message/list');
Route::post('api/message/send', 'Message/send'); Route::post('api/message/send', 'Message/send');
Route::post('api/message/read', 'Message/read'); Route::post('api/message/read', 'Message/read');
Route::get('api/message/unread', 'Message/unread');
// ── 员工端(需Token中间件) ── // ── 员工端(需Token中间件) ──
Route::post('api/staff/login', 'Staff/login'); Route::post('api/staff/login', 'Staff/login');
@ -23,3 +24,4 @@ Route::group('api/staff', function () {
Route::post('order/done', 'Staff/done'); Route::post('order/done', 'Staff/done');
Route::post('order/cancel', 'Staff/cancel'); Route::post('order/cancel', 'Staff/cancel');
})->middleware('StaffAuth'); })->middleware('StaffAuth');

Loading…
Cancel
Save