579 lines
22 KiB
PHP
579 lines
22 KiB
PHP
<?php
|
||
/**
|
||
* Created by PhpStorm.
|
||
* User: zn
|
||
* Date: 2017/5/31
|
||
* Time: 11:03
|
||
*/
|
||
|
||
namespace app\controllers;
|
||
|
||
|
||
use common\models\Friend;
|
||
use common\models\User;
|
||
use common\models\Chatlog;
|
||
use common\services\ClientMessageServices;
|
||
use common\services\MessageServices;
|
||
use common\services\ResultStatusServices;
|
||
use common\services\UserLogService;
|
||
use common\utils\EnumUtil;
|
||
use Yii;
|
||
use yii\rest\Controller;
|
||
|
||
/**
|
||
* 好友
|
||
* Class FriendController
|
||
* @package app\controllers
|
||
*/
|
||
class FriendController extends Controller
|
||
{
|
||
/**
|
||
* 根据用户ID查询要加的好友
|
||
*/
|
||
public function actionFind()
|
||
{
|
||
$userID = Yii::$app->request->get('user_id');
|
||
$findUserID = Yii::$app->request->get('find_phone');//要查找的用户ID
|
||
|
||
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
||
|
||
if (!$findUserID || $userID == $findUserID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
||
|
||
|
||
$userDbData = User::findOne(['username' => $findUserID]);
|
||
if (!$userDbData)
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_NOT_FIND_IN_DB);
|
||
|
||
//返回数据
|
||
$returnData['user_id'] = $userDbData->id;
|
||
$returnData['nickname'] = $userDbData->nickname;
|
||
$returnData['level'] = $userDbData->level;
|
||
$returnData['gold'] = $userDbData->gold;
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $returnData);
|
||
}
|
||
|
||
/**
|
||
* 添加好友
|
||
*/
|
||
public function actionAdd()
|
||
{
|
||
$userID = Yii::$app->request->get('user_id');
|
||
$friendUserID = Yii::$app->request->get('friend_user_id');//要添加的用户ID
|
||
|
||
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
||
|
||
if (!$friendUserID || $userID == $friendUserID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
||
|
||
//查找用户
|
||
$userDbData = User::findById($friendUserID);
|
||
if (!$userDbData)
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_NOT_FIND_IN_DB);
|
||
|
||
//查找是否已经添加过这个用户
|
||
if (Friend::findOne(['user_id' => $userID, 'friend_user_id' => $friendUserID, 'status' => EnumUtil::FRIEND_AGREE]) ||
|
||
Friend::findOne(['user_id' => $friendUserID, 'friend_user_id' => $userID, 'status' => EnumUtil::FRIEND_AGREE])
|
||
)
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_ADDED_FRIEND);
|
||
|
||
//已经申请过
|
||
if (Friend::findOne(['user_id' => $userID, 'friend_user_id' => $friendUserID, 'status' => EnumUtil::FRIEND_UNTREATED]) ||
|
||
Friend::findOne(['user_id' => $friendUserID, 'friend_user_id' => $userID, 'status' => EnumUtil::FRIEND_UNTREATED])
|
||
)
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_ADDED_FRIEND_APPLY);
|
||
|
||
//添加数据
|
||
$friendDbData = new Friend();
|
||
$friendDbData->user_id = $userID;
|
||
$friendDbData->friend_user_id = $friendUserID;
|
||
if (!$friendDbData->save()) return ClientMessageServices::sendMessage(ResultStatusServices::RS_SAVE_DB_ERROR);
|
||
|
||
//推送消息
|
||
MessageServices::addFriendMessage($friendUserID, $friendDbData->id);
|
||
|
||
UserLogService::addUserSystemLog($friendUserID, EnumUtil::USER_SYSTEM_LOG_FRIEND, sprintf('%s请求加好友', User::findById($userID)->nickname));
|
||
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
|
||
}
|
||
|
||
/**
|
||
* 获取需要进行好友回复的列表
|
||
*/
|
||
public function actionGetRespondList()
|
||
{
|
||
$userID = Yii::$app->request->get('user_id');
|
||
$offset = Yii::$app->request->get('offset'); //偏移
|
||
$count = Yii::$app->request->get('count'); //需要多少条数据
|
||
|
||
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
||
|
||
if ($offset === null || $offset < 0 || $count === null || $count < 0 || $count > 10)
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
||
|
||
//获取列表
|
||
$find = Friend::find()->where(['friend_user_id' => $userID, 'status' => EnumUtil::FRIEND_UNTREATED])->orderBy(['updated_at' => SORT_DESC]);
|
||
$totalCount = $find->count();
|
||
$listDbData = $find->offset($offset)->limit($count)->all();
|
||
$listData = [];
|
||
foreach ($listDbData as $itemDbData) {
|
||
array_push($listData, Friend::genClientFriendData($userID, $itemDbData->user_id));
|
||
}
|
||
|
||
$returnData['offset'] = $offset;
|
||
$returnData['total_count'] = $totalCount;
|
||
$returnData['list'] = $listData;
|
||
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $returnData);
|
||
}
|
||
|
||
/**
|
||
* 同意或拒绝添加好友
|
||
*/
|
||
public function actionRespond()
|
||
{
|
||
$userID = Yii::$app->request->get('user_id');
|
||
$respondUserID = Yii::$app->request->get('respond_user_id');//要操作的用户ID
|
||
$type = Yii::$app->request->get('type');//回复类型,1:同意;2:拒绝;
|
||
|
||
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
||
|
||
if (!$respondUserID || $userID == $respondUserID || !in_array($type, EnumUtil::FRIEND_LIST))
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
||
|
||
//判断是否回复过
|
||
$friendDbData = Friend::findOne(['user_id' => $respondUserID, 'friend_user_id' => $userID]);
|
||
if ($friendDbData->status != EnumUtil::FRIEND_UNTREATED)
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_FRIEND_RESPONDED);
|
||
|
||
//修改类型
|
||
$friendDbData->status = $type;
|
||
if (!$friendDbData->save())
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_SAVE_DB_ERROR);
|
||
|
||
//推送消息
|
||
MessageServices::addFriendResponseMessage($respondUserID, $friendDbData->id, $type);
|
||
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
|
||
}
|
||
|
||
/**
|
||
* 批量回复好友添加
|
||
*/
|
||
public function actionRespondList()
|
||
{
|
||
$userID = Yii::$app->request->get('user_id');
|
||
$type = Yii::$app->request->get('type');//回复类型,1:同意;2:拒绝;
|
||
|
||
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
||
|
||
if (!$type || ($type != 1 && $type != 2))
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
||
|
||
//获取需要修改的列表
|
||
Friend::updateAll(['status' => $type, 'updated_at' => time()],
|
||
'friend_user_id =:friend_user_id and status =:status',
|
||
[':friend_user_id' => $userID, ':status' => EnumUtil::FRIEND_UNTREATED]);
|
||
|
||
// Friend::updateAll(['status' => $type, 'updated_at' => time()],
|
||
// 'friend_user_id =:friend_user_id',
|
||
// [':friend_user_id' => $userID]);
|
||
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
|
||
}
|
||
|
||
/**
|
||
* 获取好友列表
|
||
*/
|
||
public function actionFriendList()
|
||
{
|
||
$userID = Yii::$app->request->get('user_id');
|
||
$offset = Yii::$app->request->get('offset'); //偏移
|
||
$count = Yii::$app->request->get('count'); //需要多少条数据
|
||
$type = Yii::$app->request->get('type');//排行类型,0:金币排行,1:等级排行,2:战力排行
|
||
|
||
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
||
|
||
if ($offset === null || $offset < 0 || $count === null || $count < 0 || $count > 10 || ($type != 0 && $type != 1 && $type != 2))
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
||
|
||
//获取列表
|
||
$find = Friend::find()->where('status=:status and (user_id=:user_id or friend_user_id=:friend_user_id)')
|
||
->addParams([':status' => EnumUtil::FRIEND_AGREE, ':user_id' => $userID, ':friend_user_id' => $userID])
|
||
->orderBy(['updated_at' => SORT_DESC]);
|
||
|
||
$orderByKey = 'level';
|
||
if ($type == 0) $orderByKey = 'gold';
|
||
if ($type == 1) $orderByKey = 'level';
|
||
if ($type == 2) $orderByKey = 'fighting_capacity';
|
||
|
||
$mysql = 'SELECT
|
||
*
|
||
FROM
|
||
(SELECT
|
||
@index:=@index + 1 AS `index`, o.*
|
||
FROM
|
||
(SELECT @index:=0) i, (SELECT
|
||
f.*,
|
||
u1.gold gold,
|
||
u1.nickname nickname,
|
||
u1.level level,
|
||
u1.fighting_capacity fighting_capacity,
|
||
u2.gold be_gold,
|
||
u2.nickname be_nickname,
|
||
u2.level be_level,
|
||
u2.fighting_capacity be_fighting_capacity
|
||
FROM
|
||
friend f
|
||
LEFT JOIN user u1 ON u1.id = f.user_id
|
||
LEFT JOIN user u2 ON u2.id = f.friend_user_id
|
||
WHERE
|
||
(f.user_id = :user_id OR f.friend_user_id = :user_id) and f.status=1 ) o
|
||
ORDER BY :order_field DESC
|
||
LIMIT :offset , :len) AS r
|
||
';
|
||
|
||
$listDbData = Yii::$app->db->createCommand($mysql)
|
||
->bindValue(':user_id', $userID)
|
||
->bindValue(':offset', $offset)
|
||
->bindValue(':len', $count)
|
||
->bindValue(':order_field', $orderByKey)
|
||
->queryAll();
|
||
|
||
$listData = [];
|
||
for ($i = 0; $i < count($listDbData); $i++) {
|
||
$itemDbData = $listDbData[$i];
|
||
|
||
if ($itemDbData['friend_user_id'] != $userID)
|
||
$data = Friend::genClientFriendData($userID, $itemDbData['friend_user_id']);
|
||
else
|
||
$data = Friend::genClientFriendData($userID, $itemDbData['user_id']);
|
||
|
||
$data['index'] = $itemDbData['index'];
|
||
array_push($listData, $data);
|
||
}
|
||
|
||
$totalCount = $find = Friend::find()->where('status=:status and (user_id=:user_id or friend_user_id=:friend_user_id)')
|
||
->addParams([':status' => EnumUtil::FRIEND_AGREE, ':user_id' => $userID, ':friend_user_id' => $userID])
|
||
->count();
|
||
|
||
$returnData['offset'] = $offset;
|
||
$returnData['total_count'] = $totalCount;
|
||
$returnData['list'] = $listData;
|
||
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $returnData);
|
||
}
|
||
|
||
/**
|
||
* 获取好友列表
|
||
*/
|
||
public function actionAjaxfriends()
|
||
{
|
||
$Code = $_POST['token'];
|
||
//验证
|
||
if (!$Code) {
|
||
$json = array('code' =>'1004', 'error_msg' =>'用户不存在');
|
||
return $json;
|
||
}
|
||
$userData = User::findOne(['code' => $Code]);
|
||
if ($userData == null) {
|
||
$json = array('code' =>'1004', 'msg' =>'用户不存在');
|
||
return $json;
|
||
}
|
||
$userID = $userData['id'];
|
||
|
||
$html='';
|
||
|
||
$listData = $find = Friend::find()->where('status=:status and (user_id=:user_id or friend_user_id=:friend_user_id)')
|
||
->addParams([':status' => EnumUtil::FRIEND_AGREE, ':user_id' => $userID, ':friend_user_id' => $userID])
|
||
->all();
|
||
$listarr=array();
|
||
foreach($listData as $k => $v){
|
||
if($v['user_id']==$userID){
|
||
$listarr[$k]['friendid']=$v['friend_user_id'];
|
||
}else{
|
||
$listarr[$k]['friendid']=$v['user_id'];
|
||
}
|
||
$friendData = User::findOne(['id' => $listarr[$k]['friendid']]);
|
||
$listarr[$k]['friendname']=$friendData['nickname'];
|
||
if(empty($friendData['avatar'])){
|
||
$friendData['avatar']=1;
|
||
}
|
||
if(strlen($friendData['avatar'])>5){
|
||
$friendData['avatar']= 'http://'.$_SERVER['HTTP_HOST'].$friendData['avatar'];
|
||
}else{
|
||
$friendData['avatar']= '/farm/resource/assets/icon/head/head'.$friendData['avatar'].'.png';
|
||
}
|
||
$html .='<a href="/web/chat/chat.html?toid='.$listarr[$k]['friendid'].'&token='.$Code.'"><div class="row flexbox flex-alignc wc__material-cell" >
|
||
<img class="uimg" src="'.$friendData['avatar'].'" /><span class="name flex1">'.$listarr[$k]['friendname'].'</span>
|
||
</div></a>';
|
||
|
||
}
|
||
if($html==''){
|
||
$json = array('code' =>'1004', 'msg' =>'您当前没有好友,请先进入游戏好友界面添加好友');
|
||
return $json;
|
||
}
|
||
$returnData['html'] = $html;
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $returnData);
|
||
|
||
}
|
||
|
||
/**
|
||
* 获取好友列表
|
||
*/
|
||
public function actionChatlog()
|
||
{
|
||
$Code = $_POST['token'];
|
||
$toid = $_POST['toid'];
|
||
//验证
|
||
if (!$Code) {
|
||
$json = array('code' =>'1004', 'error_msg' =>'当前登录已掉线,请重新登录');
|
||
return $json;
|
||
}
|
||
$userData = User::findOne(['code' => $Code]);
|
||
if ($userData == null) {
|
||
$json = array('code' =>'1004', 'msg' =>'当前登录已掉线,请重新登录');
|
||
return $json;
|
||
}
|
||
|
||
$friendData = User::findOne(['id' => $toid]);
|
||
if ($friendData == null) {
|
||
$json = array('code' =>'1004', 'msg' =>'该好友不存在');
|
||
return $json;
|
||
}
|
||
$userID = $userData['id'];
|
||
|
||
$html='';
|
||
if(strlen($userData['avatar'])>5){
|
||
$userData['avatar']= 'http://'.$_SERVER['HTTP_HOST'].$userData['avatar'];
|
||
}else{
|
||
$userData['avatar']= '/farm/resource/assets/icon/head/head'.$userData['avatar'].'.png';
|
||
}
|
||
|
||
|
||
$returnData['html'] = $html;
|
||
$returnData['friendinfo'] = $friendData;
|
||
$returnData['userinfo'] = $userData;
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $returnData);
|
||
|
||
}
|
||
|
||
public function actionChatajax()
|
||
{
|
||
$Code = $_POST['token'];
|
||
$toid = $_POST['toid'];
|
||
$type = $_POST['type'];
|
||
$chatmax = $_POST['chatmax'];
|
||
$headimg = $_POST['headimg'];
|
||
$data = $_POST['data'];
|
||
//验证
|
||
if (!$Code) {
|
||
$json = array('code' =>'1004', 'error_msg' =>'当前登录已掉线,请重新登录');
|
||
return $json;
|
||
}
|
||
$userData = User::findOne(['code' => $Code]);
|
||
if ($userData == null) {
|
||
$json = array('code' =>'1004', 'msg' =>'当前登录已掉线,请重新登录');
|
||
return $json;
|
||
}
|
||
|
||
$friendData = User::findOne(['id' => $toid]);
|
||
if ($friendData == null) {
|
||
$json = array('code' =>'1004', 'msg' =>'目标用户不存在');
|
||
return $json;
|
||
}
|
||
$userID = $userData['id'];
|
||
$friendID = $friendData['id'];
|
||
Chatlog::updateAll(['zuixin'=>'0'],'(userid='.$userID.' and touserid='.$friendID.') or (touserid='.$userID.' and userid='.$friendID.')');
|
||
$Chatlog = Chatlog::find()->where('(userid='.$userID.' and touserid='.$friendID.') or (touserid='.$userID.' and userid='.$friendID.')')->orderBy(["id" => SORT_DESC])->one();
|
||
if(!$Chatlog || $Chatlog['created_at']<time()-3600*2){
|
||
$chat = new Chatlog();
|
||
$chat->userid = $userID;
|
||
$chat->username = $userData['username'];
|
||
$chat->touserid = $friendData['id'];
|
||
$chat->tousername = $friendData['username'];
|
||
$chat->content = '';
|
||
$chat->type = 0;
|
||
$chat->headimg = $headimg;
|
||
|
||
$chat->status=0;
|
||
if (!$chat->save()) {
|
||
|
||
$json = array('code' =>'1004', 'msg' =>'操作失败');
|
||
return $json;
|
||
}
|
||
|
||
}
|
||
|
||
$chat = new Chatlog();
|
||
$chat->userid = $userID;
|
||
$chat->username = $userData['username'];
|
||
$chat->touserid = $friendData['id'];
|
||
$chat->tousername = $friendData['username'];
|
||
$chat->content = $data;
|
||
$chat->type = $type;
|
||
$chat->headimg = $headimg;
|
||
|
||
$chat->status=0;
|
||
if (!$chat->save()) {
|
||
|
||
$json = array('code' =>'1004', 'msg' =>'操作失败');
|
||
return $json;
|
||
}
|
||
|
||
|
||
$Chatlog = Chatlog::find()->where('(userid='.$userID.' and touserid='.$friendID.') or (touserid='.$userID.' and userid='.$friendID.')')->orderBy(["id" => SORT_DESC])->one();
|
||
$returnData['chatmax'] = $Chatlog['id'];
|
||
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $returnData);
|
||
|
||
}
|
||
|
||
public function actionChatgetnews()
|
||
{
|
||
$Code = $_POST['token'];
|
||
$toid = $_POST['toid'];
|
||
$chatmax = $_POST['chatmax'];
|
||
|
||
//验证
|
||
if (!$Code) {
|
||
$json = array('code' =>'1004', 'error_msg' =>'当前登录已掉线,请重新登录');
|
||
return $json;
|
||
}
|
||
$userData = User::findOne(['code' => $Code]);
|
||
if ($userData == null) {
|
||
$json = array('code' =>'1004', 'msg' =>'当前登录已掉线,请重新登录');
|
||
return $json;
|
||
}
|
||
|
||
$friendData = User::findOne(['id' => $toid]);
|
||
if ($friendData == null) {
|
||
$json = array('code' =>'1004', 'msg' =>'目标用户不存在');
|
||
return $json;
|
||
}
|
||
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
|
||
$userID = $userData['id'];
|
||
$friendID = $friendData['id'];
|
||
$html='';
|
||
if($chatmax==0){
|
||
$Chatlog = Chatlog::find()->where('type=0 and ((userid='.$userID.' and touserid='.$friendID.') or (touserid='.$userID.' and userid='.$friendID.'))')->orderBy(["id" => SORT_DESC])->one();
|
||
if($Chatlog){
|
||
if($Chatlog['created_at']<$beginToday){
|
||
$Chatloglist = Chatlog::find()->where('id>='.$Chatlog['id'].' and ((userid='.$userID.' and touserid='.$friendID.') or (touserid='.$userID.' and userid='.$friendID.'))')->orderBy(["id" => SORT_ASC])->all();
|
||
}else{
|
||
$Chatloglist = Chatlog::find()->where('created_at>='.$beginToday.' and ((userid='.$userID.' and touserid='.$friendID.') or (touserid='.$userID.' and userid='.$friendID.'))')->orderBy(["id" => SORT_ASC])->all();
|
||
}
|
||
}
|
||
}else{
|
||
$Chatloglist = Chatlog::find()->where('id>'.$chatmax.' and ((userid='.$userID.' and touserid='.$friendID.') or (touserid='.$userID.' and userid='.$friendID.'))')->orderBy(["id" => SORT_ASC])->all();
|
||
}
|
||
foreach($Chatloglist as $k => $v){
|
||
if($v['type']==0){
|
||
$no=date("H",$v['created_at']);
|
||
if ($no>0&&$no<=6){
|
||
$shichen="凌晨";
|
||
}
|
||
if ($no>6&&$no<12){
|
||
$shichen="上午";
|
||
}
|
||
if ($no>=12&&$no<=18){
|
||
$shichen="下午";
|
||
}
|
||
if ($no>18&&$no<=24){
|
||
$shichen="晚上";
|
||
}
|
||
|
||
if(strlen($v['avatar'])>5){
|
||
$v['avatar']= 'http://'.$_SERVER['HTTP_HOST'].$v['avatar'];
|
||
}else{
|
||
$v['avatar']= '/farm/resource/assets/icon/head/head'.$v['avatar'].'.png';
|
||
}
|
||
$html .='<li class="time"><span>'.date('Y年m月d日 ',$v['created_at']).$shichen.date('H:i',$v['created_at']).'</span></li>';
|
||
}else{
|
||
if($v['userid']==$userID){
|
||
$html .='<li class="me">';
|
||
}else{
|
||
$html .='<li class="others"><a class="avatar" href="#"><img src="'.$v['avatar'].'" /></a>';
|
||
}
|
||
|
||
$html .='<div class="content"><p class="author">'.$v['username'].'</p>';
|
||
if($v['type']==2){
|
||
$html .='<div class="msg picture">'.$v['content'].'</div></div>';
|
||
}else{
|
||
$html .='<div class="msg">'.$v['content'].'</div></div>';
|
||
}
|
||
|
||
if($v['userid']==$userID){
|
||
$html .='<a class="avatar" href="#"><img src="'.$v['avatar'].'" /></a>';
|
||
}
|
||
$html .='</li>';
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
$Chatlog = Chatlog::find()->where('(userid='.$userID.' and touserid='.$friendID.') or (touserid='.$userID.' and userid='.$friendID.')')->orderBy(["id" => SORT_DESC])->one();
|
||
$returnData['chatmax'] = $Chatlog['id'];
|
||
$returnData['html'] = $html;
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $returnData);
|
||
|
||
}
|
||
|
||
public function actionChatlist()
|
||
{
|
||
$Code = $_POST['token'];
|
||
$chatmax = $_POST['chatmax'];
|
||
|
||
//验证
|
||
if (!$Code) {
|
||
$json = array('code' =>'1004', 'error_msg' =>'当前登录已掉线,请重新登录');
|
||
return $json;
|
||
}
|
||
$userData = User::findOne(['code' => $Code]);
|
||
if ($userData == null) {
|
||
$json = array('code' =>'1004', 'msg' =>'当前登录已掉线,请重新登录');
|
||
return $json;
|
||
}
|
||
$userID=$userData['id'];
|
||
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
|
||
$zuotian=$beginToday-86400;
|
||
$Chatloglist = Chatlog::find()->where('(userid='.$userID.' or touserid='.$userID.') and zuixin=1')->orderBy(["id" => SORT_DESC])->all();
|
||
$html='';
|
||
foreach($Chatloglist as $k => $v){
|
||
if($v['userid']==$userID){
|
||
$listarr[$k]['friendid']=$v['touserid'];
|
||
}else{
|
||
$listarr[$k]['friendid']=$v['userid'];
|
||
}
|
||
if($v['type']==2){
|
||
$v['content']='图片';
|
||
}
|
||
if($v['created_at']<$zuotian){
|
||
$shichen=date('Y年m月d日 ',$v['created_at']);
|
||
}elseif($v['created_at']<$beginToday && $v['created_at']>$zuotian){
|
||
$shichen='昨天 ';
|
||
}else{
|
||
$shichen='';
|
||
}
|
||
$friendData = User::findOne(['id' => $listarr[$k]['friendid']]);
|
||
if(strlen($friendData['avatar'])>5){
|
||
$friendData['avatar']= 'http://'.$_SERVER['HTTP_HOST'].$friendData['avatar'];
|
||
}else{
|
||
$friendData['avatar']= '/farm/resource/assets/icon/head/head'.$friendData['avatar'].'.png';
|
||
}
|
||
$html .='<li class="flexbox wc__material-cell" routeUrl="chat.html?toid='.$listarr[$k]['friendid'].'&token='.$Code.'">
|
||
<div class="img"><img src="'.$friendData['avatar'].'" /></div>
|
||
<div class="info flex1">
|
||
<h2 class="title">'.$friendData['nickname'].'</h2>
|
||
<p class="desc clamp1">'.$v['content'].'</p>
|
||
</div>
|
||
<label class="time">'.$shichen.date('H:i',$v['created_at']).'</label>
|
||
</li>';
|
||
|
||
|
||
}
|
||
|
||
$returnData['html'] = $html;
|
||
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $returnData);
|
||
|
||
}
|
||
} |