聊天列表
聊天列表分為一般聊天室列表和服務號聊天室列表。 一般聊天列表常態顯示;服務號列表是否顯示需根據服務號聊天室數據決定。 若有滿足如下條件的服務號聊天室數據,服務號列表才可顯示:
- 服務號是啓用狀態;
- 當前用戶是服務號成員;
- 如果是商務號,當前用戶不是商務號的擁有者
列表數據
聊天列表需要按照聊天室類型及其他條件區分其顯示在一般聊天列表還是顯示在服務號聊天列表。 目前在用的聊天室類型:
個人:person
系統:system
好友:friend
多人:discuss
社團:group
服務號:services
服務號成員:serviceMember
其他請參考server設定。
需要隱藏的聊天室
當有聊天室被刪除後,不要在列表顯示;當聊天室從聊天列表移除後,沒有新的數據變化,不要在列表顯示;當用戶非該聊天室成員時,不要在列表顯示。
- 關聯欄位
dfrTime: 從聊天列表移除時,會更新deleted: 聊天室被刪除時會更新member_deleted: 被移除成員會更新
- 隱藏條件
- 有dfrTime
- 有lastMessage, dfrTime > lastMessage的sendTime
- 無lastMessage, dfrTime > 0
- 無dfrTime
- deleted(聊天室被刪除、多人或者社團被解散等)、member_deleted(非聊天室成員)
一般聊天列表上的聊天室
-
是
服務號聊天室類型的:- 屬於臨時成員聊天室
- provisionalIds包含自己
- 屬於臨時成員聊天室
-
訂閱服務號聊天室
- ownerId是自己
-
我為商務號擁有者的進線聊天室,服務狀態非機器人服務
- serviceNumberType是"Boss"
- serviceNumberOwnerId是"自己"
- serviceNumberStatus不是"robotService"
-
是
服務號成員聊天室類型的:- 屬於商務號,且我是服務號成員,也是是商務號擁有者
-
其他所有類型聊天室
服務號聊天列表上的數據
- 是
服務號聊天室類型的:- 我為商務號擁有者的進線聊天室,服務狀態是機器人服務
- serviceNumberType是"Boss"
- serviceNumberOwnerId是"自己"
- serviceNumberStatus 是"robotService";
- 不是訂閱服務號,且我非臨時成員
- ownerId不是自己且provisionalIds不包含自己;
- 我為商務號擁有者的進線聊天室,服務狀態是機器人服務
- 是
服務號成員聊天室類型的:- 我是服務號成員,且如是商務號我不能是商務號擁有者;
API
base/sync/label同步標籤數據,可以過濾出我的最愛;base/sync/contact同步客戶數據;base/sync/employee同步員工數據base/sync/subscribe/servicenumber同步所有訂閱服務號數據;base/sync/servicenumber同步服務號數據base/sync/room/unread同步未讀的聊天室chat/room/servicenumber/active/list查詢進線中和機器人服務中的聊天室記錄chat/room/robotservice/list租戶下正在進行機器人服務的聊天室base/sync/room/normal一般聊天列表資料base/sync/room/servicenumber服務號聊天資料
未讀數
未讀數分訊息未讀統計、標記未讀。
- 當聊天室有未讀訊息時,未讀訊息數會被統計;
- 當對一個聊天室做標記未讀時,未讀數為1;
- 有未讀的聊天室不能被標記未讀;有新的未讀訊息時,應取消標記未讀;
- 統計未讀數時,標記未讀數也要被統計;
- 標記未讀是本地操作,不會被同步,故某些情景下做比照時會有差異;
未讀數的取值
- 聊天室有未讀數時,取聊天室未讀數
- 聊天室無未讀數時,如果是被標記未讀的,則未讀數為1
- 聊天室更新未讀數時,如果未讀數大於0,則刪除標記未讀的狀態
未讀角標顯示
-
未讀數 > 0
- 如果有@我的未讀訊息(未讀訊息中有@我、@ALL),聊天室未讀角標顯示為「@+未讀數」,如: @11;
- 否則:
- 是系統聊天室,顯示N;
- 不是,則只顯示未讀。
-
未讀數不大於0,
- 如果是要顯示N的聊天室,則角標顯示為N;
‼️注意:
- 在聊天列表,如果需要顯示的未讀數超過99,則數字部分顯示為99+
- 未讀數統計時,需要過濾無效的(不能被顯示的)聊天室
- 分組的聊天室在分組收起時要合併計算分組下的所有聊天室的未讀數作為未讀角標
- 標記未讀數不會被同步
- 顯示N的聊天室:
- 是系統聊天室,顯示N;
- 聊天室是服務號類型的且服務號是商務號,且我(當前用戶)是商務號擁有者、未讀數為0;
- 服務狀態是online的;
- 服務狀態是offline、timeout, 但不是商務號擁有者結束服務的。
分組
一般聊天列表
一般聊天列表暫無分組;
服務號聊天列表
服務號聊天列表有兩種排序規則對應不同的分組方式
- 分組方式
- 按分組排的分組方式
- AI服務
- 監控AI
- 剛進件
- 我服務中
- 服務中
- 服務號1
- 服務號2
- 服務號...
- 按時間排的分組方式
- AI服務
- 監控AI
- 剛進件
- 我服務中
- 服務中
- 其他
- 按分組排的分組方式
無論依哪種方式排序,都會有 AI服務、監控AI、剛進件、我服務中、服務中 這些分組,這些屬於共有分組。其他未在分組內的聊天室數據則按照當前的排序規則分組。 當這些分組的某個分組內沒有數據時,則不需要顯示這個分組。
- 分組規則
共有部分:
- AI服務
- 服務號聊天室服務狀態是AI服務中,且聊天室未告警;
- 監控AI
- 服務號聊天室服務狀態是AI服務中,且聊天室告警;
- 剛進件
- 無服務人員,服務狀態是online的;
- 無服務人員,服務狀態是timeout但有未讀的;
- 我服務中
- 有服務人員,且是我
- 服務狀態是online,屬於專業服務號的;
- 有服務人員,且是我