diff --git a/app/controller/Message.php b/app/controller/Message.php index e250179..41880e3 100644 --- a/app/controller/Message.php +++ b/app/controller/Message.php @@ -102,4 +102,35 @@ class Message extends BaseController 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']); + } } + + diff --git a/route/app.php b/route/app.php index 9a98579..261a892 100644 --- a/route/app.php +++ b/route/app.php @@ -13,6 +13,7 @@ Route::post('api/order/remind', 'Order/remind'); Route::get('api/message/list', 'Message/list'); Route::post('api/message/send', 'Message/send'); Route::post('api/message/read', 'Message/read'); +Route::get('api/message/unread', 'Message/unread'); // ── 员工端(需Token中间件) ── 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/cancel', 'Staff/cancel'); })->middleware('StaffAuth'); +