Commit e980c7a9 authored by liuyuzhen's avatar liuyuzhen

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

parents 71cc8654 8594183a
...@@ -39,7 +39,7 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -39,7 +39,7 @@ class MessageServiceModel extends \Business\AbstractModel
*/ */
private static $_instance = null; private static $_instance = null;
/** /**update
* 单例模式获取类实例 * 单例模式获取类实例
* *
* @ccw * @ccw
...@@ -92,9 +92,15 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -92,9 +92,15 @@ class MessageServiceModel extends \Business\AbstractModel
public function getUnreadCountByMemberIdAndType($toId) public function getUnreadCountByMemberIdAndType($toId)
{ {
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance(); $memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
$count = $messageHistoryDao->getUnreadCountByToIdAndToType($toId); $unredMessageCount=$memberDb0Redis->tableHGet($toId,'unread_message_count');
return $count; if($unredMessageCount===false){
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$unredMessageCount = $messageHistoryDao->getUnreadCountByToIdAndToType($toId);
$memberDb0Redis->tableHset($toId,'unread_message_count',$unredMessageCount);
}
return $unredMessageCount;
} }
/** /**
...@@ -151,29 +157,29 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -151,29 +157,29 @@ class MessageServiceModel extends \Business\AbstractModel
return $avatar; return $avatar;
} }
public function __destruct() // public function __destruct()
{ // {
$store = \DAO\StoreModel::getInstance(); // $store = \DAO\StoreModel::getInstance();
$member = \DAO\MemberModel::getInstance(); // $member = \DAO\MemberModel::getInstance();
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance(); // $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$mesageOneDao = \DAO\MessageOneModel::getInstance(); // $mesageOneDao = \DAO\MessageOneModel::getInstance();
$store->unsetDb(); // $store->unsetDb();
$member->unsetDb(); // $member->unsetDb();
$messageHistoryDao->unsetDb(); // $messageHistoryDao->unsetDb();
$mesageOneDao->unsetDb(); // $mesageOneDao->unsetDb();
} // }
//
public function unsetDb() // public function unsetDb()
{ // {
$store = \DAO\StoreModel::getInstance(); // $store = \DAO\StoreModel::getInstance();
$member = \DAO\MemberModel::getInstance(); // $member = \DAO\MemberModel::getInstance();
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance(); // $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$mesageOneDao = \DAO\MessageOneModel::getInstance(); // $mesageOneDao = \DAO\MessageOneModel::getInstance();
$store->unsetDb(); // $store->unsetDb();
$member->unsetDb(); // $member->unsetDb();
$messageHistoryDao->unsetDb(); // $messageHistoryDao->unsetDb();
$mesageOneDao->unsetDb(); // $mesageOneDao->unsetDb();
} // }
/** /**
* 获得全部类型消息,每种消息一条数据,以及每种消息的未读条数 * 获得全部类型消息,每种消息一条数据,以及每种消息的未读条数
...@@ -327,6 +333,12 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -327,6 +333,12 @@ class MessageServiceModel extends \Business\AbstractModel
$messageOneDao->setDb(DbNameConst::masterDBConnectName); $messageOneDao->setDb(DbNameConst::masterDBConnectName);
$messageOneDao->updateUnreadField($fromId, $fromType, $toId, $toType); $messageOneDao->updateUnreadField($fromId, $fromType, $toId, $toType);
$isSuccess = $messageHistoryDao->updateByFromIdAndSelfTypeAndToIdAndToType($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; return $isSuccess;
} }
...@@ -341,7 +353,8 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -341,7 +353,8 @@ class MessageServiceModel extends \Business\AbstractModel
} }
} }
private $messageHistoryDao;
private $mesageOneDao;
public function addMessage($fromId, $selfId, $fromName, $fromType, $message, $toId, $toUserId, $toName, $toType, $messageId = false) public function addMessage($fromId, $selfId, $fromName, $fromType, $message, $toId, $toUserId, $toName, $toType, $messageId = false)
{ {
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance(); $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
...@@ -389,6 +402,7 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -389,6 +402,7 @@ class MessageServiceModel extends \Business\AbstractModel
$messageHistoryDao->db->doCommit(); $messageHistoryDao->db->doCommit();
unset($messageHistoryDao->db); unset($messageHistoryDao->db);
unset($messageHistoryDao); unset($messageHistoryDao);
unset($mesageOneDao->db);
unset($mesageOneDao); unset($mesageOneDao);
//$messageHistoryDao->sendMessage($mesageHistory,$toId); //$messageHistoryDao->sendMessage($mesageHistory,$toId);
......
...@@ -55,6 +55,7 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -55,6 +55,7 @@ class MemberServiceModel extends \Business\AbstractModel
} }
$member['sendTime']=TIMESTAMP; $member['sendTime']=TIMESTAMP;
$this->memberDb0Redis->tableHMSet(trim($member['member_id']),$member,ApiConst::tenDaySecond); $this->memberDb0Redis->tableHMSet(trim($member['member_id']),$member,ApiConst::tenDaySecond);
$this->memberDb0Redis->tableHDel(trim($member['member_id']),'unread_message_count');
} }
......
...@@ -30,7 +30,7 @@ abstract class AbstractModel { ...@@ -30,7 +30,7 @@ abstract class AbstractModel {
} }
public function unsetDb(){ public function unsetDb(){
unset($this->db); unset($this->db);
LinkMySQLModel::unsetDbConecet(); // LinkMySQLModel::unsetDbConecet();
} }
/** /**
* 捕获dao中没有的方法,直接访问mysql中相应的类的方法 * 捕获dao中没有的方法,直接访问mysql中相应的类的方法
......
...@@ -34,6 +34,12 @@ class AbstractModel { ...@@ -34,6 +34,12 @@ class AbstractModel {
*/ */
static $redis; static $redis;
public function __destruct(){
if(!empty(self::$redis)){
self::$redis->close();
}
}
/** /**
* 获取redis连接 * 获取redis连接
* *
......
...@@ -85,6 +85,14 @@ class MemberRedisModel extends \Redis\Db0\AbstractModel { ...@@ -85,6 +85,14 @@ class MemberRedisModel extends \Redis\Db0\AbstractModel {
return $res; 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;
}
/** /**
* 类实例 * 类实例
......
...@@ -7,7 +7,7 @@ define("APP_ENV",ini_get('yaf.environ')); ...@@ -7,7 +7,7 @@ define("APP_ENV",ini_get('yaf.environ'));
if(APP_ENV=='develop'){ if(APP_ENV=='develop'){
error_reporting(E_ALL); error_reporting(E_ALL);
} }
if(APP_ENV=='test' || APP_ENV=='pre' ||APP_ENV=='ccwdevelop'){ if(APP_ENV=='test' || APP_ENV=='pre' ||APP_ENV=='ccwdevelop' || APP_ENV=='product' || APP_ENV=='productone'){
if(isset($_POST['data']['debug'])&&!empty($_POST['data']['debug'])){ if(isset($_POST['data']['debug'])&&!empty($_POST['data']['debug'])){
// define("DEBUG",1); // define("DEBUG",1);
error_reporting(E_ALL); error_reporting(E_ALL);
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
</head> </head>
<body> <body>
<form action="/message/getSet" method="post"> <form action="/message/getSet" method="post">
用户登录状态key:<input name="data[key]" value="ca44044c38f5a6d06ddd7304e1c7666c"/><br /> 用户登录状态key:<input name="data[key]" value="687688f35b1fe2fbef39a85537aafd9c"/><br />
debug:<input name="data[debug]" value="1"/><br />
<input type="submit" value="提交"> <input type="submit" value="提交">
</form> </form>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<body> <body>
<form action="/message/getUnreadCount" method="post"> <form action="/message/getUnreadCount" method="post">
用户登录状态key:<input name="data[key]" value="fd4b739c4815297044191451eabf0eb5"/><br /> 用户登录状态key:<input name="data[key]" value="fd4b739c4815297044191451eabf0eb5"/><br />
<input name="data[debug]" value="1"/><br />
<input type="submit" value="提交"> <input type="submit" value="提交">
</form> </form>
......
...@@ -117,11 +117,14 @@ $serv->on('Message', function($server, $frame) use($conf){ ...@@ -117,11 +117,14 @@ $serv->on('Message', function($server, $frame) use($conf){
$messageService->addMessage($sendMessage['fromId'],$sendMessage['fromUserId'],$sendMessage['fromUserName'],$sendMessage['fromType'],$sendMessage['message'],$sendMessage['toId'],$sendMessage['toUserId'],$sendMessage['toUserName'],$sendMessage['toType'],$sendMessage['id']); $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']); $sendMessage['message']=serialize($sendMessage['message']);
$redis->rPush('push_center',serialize($sendMessage)); $redis->rPush('push_center',serialize($sendMessage));
$redis->hIncrBy(KEY_PRE.$rev_data['toId'],'unread_message_count',\Our\ApiConst::one);
} }
$redis->close(); $redis->close();
unset($redis); unset($redis);
unset($memberDb0Redis);
// $messageService->unsetDb(); // $messageService->unsetDb();
unset($messageService); unset($messageService);
\Mysql\LinkMySQLModel::unsetDbConecet();
}else{ }else{
$realKey = KEY_REDIS_PRE.$key; $realKey = KEY_REDIS_PRE.$key;
$sessData=$redis->get($realKey); $sessData=$redis->get($realKey);
...@@ -229,6 +232,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) { ...@@ -229,6 +232,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
if($async_data){ if($async_data){
$value['message']=unserialize($value['message']); $value['message']=unserialize($value['message']);
$sendFd=$redis->hGet(KEY_PRE.$value['toId'],'fd'); $sendFd=$redis->hGet(KEY_PRE.$value['toId'],'fd');
$redis->hIncrBy(KEY_PRE.$value['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){ if(!empty($sendFd)){
$serv->push($sendFd, responseJson(1,"fromMsg","success", $value)); $serv->push($sendFd, responseJson(1,"fromMsg","success", $value));
$redis->hSet(KEY_PRE.$value['fromId'],'sendTime', time()); $redis->hSet(KEY_PRE.$value['fromId'],'sendTime', time());
...@@ -242,6 +246,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) { ...@@ -242,6 +246,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
if($async_data){ if($async_data){
$sendFd=$redis->hGet(KEY_PRE.$data['data']['toId'],'fd'); $sendFd=$redis->hGet(KEY_PRE.$data['data']['toId'],'fd');
$data['data']['message']=unserialize($data['data']['message']); $data['data']['message']=unserialize($data['data']['message']);
$redis->hIncrBy(KEY_PRE.$data['data']['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){ if(!empty($sendFd)){
$serv->push($sendFd, responseJson($sendFd,"fromMsg","success", $data['data'])); $serv->push($sendFd, responseJson($sendFd,"fromMsg","success", $data['data']));
$redis->hSet(KEY_PRE.$data['data']['fromId'],'sendTime', time()); $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