be_user_id = $beUserID; $message->type = $type; $data['deal_id'] = $dealID; $message->data = json_encode($data); $message->save(); //保存到消息队列 $messageJson = self::createShowReadMessage($message); Yii::$app->redis->lpush(RedisKeyUtil::clientMessageList(), $messageJson); } /**请求加好友 * @param $beUserID * @param $id :好友数据库请求记录ID */ public static function addFriendMessage($beUserID, $id) { //保存数据库 $message = new Message(); $message->be_user_id = $beUserID; $message->type = EnumUtil::MESSAGE_ADD_FRIEND; $data['friend_db_id'] = $id; $message->data = json_encode($data); $message->save(); //保存到消息队列 $messageJson = self::createShowReadMessage($message); Yii::$app->redis->lpush(RedisKeyUtil::clientMessageList(), $messageJson); } /**请求加好友回复 * @param $beUserID * @param $id * @param $operation :操作类型,同意还是不同意 */ public static function addFriendResponseMessage($beUserID, $id, $operation) { //保存数据库 $message = new Message(); $message->be_user_id = $beUserID; $message->type = EnumUtil::MESSAGE_ADD_FRIEND_RESPONSE; $data['friend_db_id'] = $id; $data['operation'] = $operation; $message->data = json_encode($data); $message->save(); //保存到消息队列 $messageJson = self::createShowReadMessage($message); Yii::$app->redis->lpush(RedisKeyUtil::clientMessageList(), $messageJson); } /**消息已读 * @param $messageID */ public static function messageReaded($messageID) { $messageDbData = Message::findByID($messageID); if (!$messageDbData) return; $messageDbData->readed = EnumUtil::READED; $messageDbData->save(); } /** * 组织成方便阅读的消息 * @param Message $message * @return string */ public static function createShowReadMessage(Message $message) { $messageData = json_decode($message->data, true); if (empty($messageData)) return ''; $detailData = []; if (in_array($message->type, EnumUtil::MESSAGE_DEAL_LIST)) { //确认交易; $dealID = $messageData['deal_id']; $dealDbData = Deal::findByID($dealID); $detailData = $dealDbData->genClientData(); } $returnData = $message->genClientData(); $returnData['detail_data'] = $detailData; return json_encode($returnData); } /**添加广播消息 * @param $commandID * @param $data */ public static function addBroadcaseMessage($commandID, $data) { $returnData['command_id'] = $commandID; $returnData['data'] = $data; $jsonStr = json_encode($returnData); Yii::$app->redis->lpush(RedisKeyUtil::broadcaseMessageList(), $jsonStr); } }