Commit 2a9c0d56 authored by chenchuanwen's avatar chenchuanwen

Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into master_dev

parents e7592c17 8594183a
......@@ -39,7 +39,7 @@ class MessageServiceModel extends \Business\AbstractModel
*/
private static $_instance = null;
/**
/**update
* 单例模式获取类实例
*
* @ccw
......@@ -92,9 +92,15 @@ class MessageServiceModel extends \Business\AbstractModel
public function getUnreadCountByMemberIdAndType($toId)
{
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$count = $messageHistoryDao->getUnreadCountByToIdAndToType($toId);
return $count;
$memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
$unredMessageCount=$memberDb0Redis->tableHGet($toId,'unread_message_count');
if($unredMessageCount===false){
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$unredMessageCount = $messageHistoryDao->getUnreadCountByToIdAndToType($toId);
$memberDb0Redis->tableHset($toId,'unread_message_count',$unredMessageCount);
}
return $unredMessageCount;
}
/**
......@@ -327,6 +333,12 @@ class MessageServiceModel extends \Business\AbstractModel
$messageOneDao->setDb(DbNameConst::masterDBConnectName);
$messageOneDao->updateUnreadField($fromId, $fromType, $toId, $toType);
$isSuccess = $messageHistoryDao->updateByFromIdAndSelfTypeAndToIdAndToType($fromId, $fromType, $toId, $toType);
$memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
if($isSuccess){
$isSuccess=-1*$isSuccess;
$memberDb0Redis->tableHIncrBy($fromId,'unread_message_count',$isSuccess);
}
return $isSuccess;
}
......
......@@ -55,6 +55,7 @@ class MemberServiceModel extends \Business\AbstractModel
}
$member['sendTime']=TIMESTAMP;
$this->memberDb0Redis->tableHMSet(trim($member['member_id']),$member,ApiConst::tenDaySecond);
$this->memberDb0Redis->tableHDel(trim($member['member_id']),'unread_message_count');
}
......
......@@ -34,6 +34,12 @@ class AbstractModel {
*/
static $redis;
public function __destruct(){
if(!empty(self::$redis)){
self::$redis->close();
}
}
/**
* 获取redis连接
*
......
......@@ -85,6 +85,14 @@ class MemberRedisModel extends \Redis\Db0\AbstractModel {
return $res;
}
public function tableHIncrBy($h,$key,$keysvalue){
return $this->hIncrBy($this->calcKey($h),$key,$keysvalue);
}
public function tableHDel($mid,$key){
$res=$this->hDel($this->calcKey($mid), $key);
return $res;
}
/**
* 类实例
......
......@@ -115,12 +115,13 @@ $serv->on('Message', function($server, $frame) use($conf){
$redis->hSet(KEY_PRE.$memberId,'sendTime', time());
$server->push($frame->fd, responseJson(1,"sendMsg","success", $sendMessage));
$messageService->addMessage($sendMessage['fromId'],$sendMessage['fromUserId'],$sendMessage['fromUserName'],$sendMessage['fromType'],$sendMessage['message'],$sendMessage['toId'],$sendMessage['toUserId'],$sendMessage['toUserName'],$sendMessage['toType'],$sendMessage['id']);
$sendMessage['message']=serialize($sendMessage['message']);
$redis->rPush('push_center',serialize($sendMessage));
$redis->hIncrBy(KEY_PRE.$rev_data['toId'],'unread_message_count',\Our\ApiConst::one);
}
$redis->close();
unset($redis);
unset($memberDb0Redis);
// $messageService->unsetDb();
unset($messageService);
\Mysql\LinkMySQLModel::unsetDbConecet();
......@@ -231,6 +232,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
if($async_data){
$value['message']=unserialize($value['message']);
$sendFd=$redis->hGet(KEY_PRE.$value['toId'],'fd');
$redis->hIncrBy(KEY_PRE.$value['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){
$serv->push($sendFd, responseJson(1,"fromMsg","success", $value));
$redis->hSet(KEY_PRE.$value['fromId'],'sendTime', time());
......@@ -244,6 +246,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
if($async_data){
$sendFd=$redis->hGet(KEY_PRE.$data['data']['toId'],'fd');
$data['data']['message']=unserialize($data['data']['message']);
$redis->hIncrBy(KEY_PRE.$data['data']['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){
$serv->push($sendFd, responseJson($sendFd,"fromMsg","success", $data['data']));
$redis->hSet(KEY_PRE.$data['data']['fromId'],'sendTime', time());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment