/** * 将消息列表整理为标准的返回格式 * @param array $list 需要整理的消息列表 * @return array 返回整理好的消息列表 */ public static function parseMessage($list) { if (!$list) { return array(); } $array = array(); $users = self::getUserInfo(Util::arrayColumn($list, 'from_uid')); foreach ($list as $key => $rs) { $array[$key]['message_id'] = (int) $rs['message_id']; $array[$key]['from_uid'] = (int) $rs['from_uid']; $array[$key]['from_uname'] = (string) $users[$rs['from_uid']]['uname']; $array[$key]['type'] = $rs['type']; $array[$key]['content'] = Util::htmlDecode($rs['content']); $array[$key]['room_id'] = (int) $rs['list_id']; $array[$key]['mtime'] = (int) $rs['mtime']; if (empty($rs['attach_ids'])) { $attach = array(); } else { $attach = @unserialize($rs['attach_ids']); } if ($rs['type'] == 'notify') { if ($attach) { $array[$key] = array_merge($attach, $array[$key]); } } elseif ($rs['type'] == 'voice') { $array[$key]['length'] = @$attach['length']; $array[$key]['attach_id'] = @Util::desEncrypt($attach['attach_id']); } elseif ($rs['type'] == 'image') { $array[$key]['attach_id'] = @Util::desEncrypt($attach['attach_id']); } elseif ($rs['type'] == 'position') { $array[$key]['latitude'] = @$attach['latitude']; $array[$key]['longitude'] = @$attach['longitude']; $array[$key]['location'] = @$attach['location']; $array[$key]['attach_id'] = @Util::desEncrypt($attach['attach_id']); } elseif ($rs['type'] == 'card') { $array[$key]['uid'] = @(int) $attach['uid']; } else { $array[$key]['type'] = 'text'; } } return $array; }