quanwei
17 hours ago ad8477d3ee82a3fffd5de4cd60a237c9ee6b1fb7
admin/app/api/model/plus/release/Chat.php
@@ -24,25 +24,43 @@
    public function myList($user)
    {
        $ChatRelation = new ChatRelation();
        $list = $ChatRelation->with(['user'])
        $list = $ChatRelation
            ->where(['user_id' => $user['user_id']])
            ->whereOr(['other_user_id' => $user['user_id']])
            ->order('update_time desc')
            ->select();
        foreach ($list as $key => &$value) {
            $where['relation_id'] = $value['relation_id'];
            if($value['user_id'] == $user['user_id']){
                $where['user_id']= $other_user_id = $value['other_user_id'];
            }else{
                $where['user_id']= $other_user_id  = $value['user_id'];
        // 过滤掉无效的关系记录(即user_id和other_user_id相同的记录)
        $validList = [];
        foreach ($list as $value) {
            if ($value['user_id'] != $value['other_user_id']) {
                $validList[] = $value;
            }
        }
        foreach ($validList as $key => &$value) {
            $where['relation_id'] = $value['relation_id'];
            // 确定显示的用户ID:应该是与自己不同的另一个用户
            if($value['user_id'] == $user['user_id']){
                // 当前记录是从当前用户角度创建的
                $where['user_id'] = $other_user_id = $value['other_user_id'];
            } else {
                // 当前记录是从对方角度创建的,对方是user_id
                $where['user_id'] = $other_user_id = $value['user_id'];
            }
            // 获取未读消息数量
            $where['status'] = 0;
            $value['num'] = $this->where($where)->count();
            unset($where['status']);
            // 获取最新消息
            $value['newMessage'] = $this->where($where)->order('chat_id desc')->field('content,create_time')->find();
            // 获取对方用户信息
            $value['user'] = UserModel::detail($other_user_id);
        }
        return $list;
        return $validList;
    }
    //获取聊天信息