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
*/
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;
}
/**
......@@ -151,29 +157,29 @@ class MessageServiceModel extends \Business\AbstractModel
return $avatar;
}
public function __destruct()
{
$store = \DAO\StoreModel::getInstance();
$member = \DAO\MemberModel::getInstance();
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$mesageOneDao = \DAO\MessageOneModel::getInstance();
$store->unsetDb();
$member->unsetDb();
$messageHistoryDao->unsetDb();
$mesageOneDao->unsetDb();
}
public function unsetDb()
{
$store = \DAO\StoreModel::getInstance();
$member = \DAO\MemberModel::getInstance();
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$mesageOneDao = \DAO\MessageOneModel::getInstance();
$store->unsetDb();
$member->unsetDb();
$messageHistoryDao->unsetDb();
$mesageOneDao->unsetDb();
}
// public function __destruct()
// {
// $store = \DAO\StoreModel::getInstance();
// $member = \DAO\MemberModel::getInstance();
// $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
// $mesageOneDao = \DAO\MessageOneModel::getInstance();
// $store->unsetDb();
// $member->unsetDb();
// $messageHistoryDao->unsetDb();
// $mesageOneDao->unsetDb();
// }
//
// public function unsetDb()
// {
// $store = \DAO\StoreModel::getInstance();
// $member = \DAO\MemberModel::getInstance();
// $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
// $mesageOneDao = \DAO\MessageOneModel::getInstance();
// $store->unsetDb();
// $member->unsetDb();
// $messageHistoryDao->unsetDb();
// $mesageOneDao->unsetDb();
// }
/**
* 获得全部类型消息,每种消息一条数据,以及每种消息的未读条数
......@@ -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;
}
......@@ -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)
{
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
......@@ -389,6 +402,7 @@ class MessageServiceModel extends \Business\AbstractModel
$messageHistoryDao->db->doCommit();
unset($messageHistoryDao->db);
unset($messageHistoryDao);
unset($mesageOneDao->db);
unset($mesageOneDao);
//$messageHistoryDao->sendMessage($mesageHistory,$toId);
......
......@@ -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');
}
......
......@@ -30,7 +30,7 @@ abstract class AbstractModel {
}
public function unsetDb(){
unset($this->db);
LinkMySQLModel::unsetDbConecet();
// LinkMySQLModel::unsetDbConecet();
}
/**
* 捕获dao中没有的方法,直接访问mysql中相应的类的方法
......
......@@ -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;
}
/**
* 类实例
......
......@@ -7,7 +7,7 @@ define("APP_ENV",ini_get('yaf.environ'));
if(APP_ENV=='develop'){
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'])){
// define("DEBUG",1);
error_reporting(E_ALL);
......
......@@ -9,8 +9,8 @@
</head>
<body>
<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="提交">
</form>
......
......@@ -10,7 +10,7 @@
<body>
<form action="/message/getUnreadCount" method="post">
用户登录状态key:<input name="data[key]" value="fd4b739c4815297044191451eabf0eb5"/><br />
<input name="data[debug]" value="1"/><br />
<input type="submit" value="提交">
</form>
......
......@@ -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']);
$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();
}else{
$realKey = KEY_REDIS_PRE.$key;
$sessData=$redis->get($realKey);
......@@ -229,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());
......@@ -242,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