|
|
|
@ -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']); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|