Commit 37b9ca43 authored by wwccw0591's avatar wwccw0591

pc

parent 9668d362
...@@ -23,7 +23,8 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -23,7 +23,8 @@ class MessageServiceModel extends \Business\AbstractModel
private $memberMessageDao; private $memberMessageDao;
private $messageDao; private $messageDao;
public $memberId; public $memberId;
private $memberMessageField='message_id,message_title,message_body,message_type,tpl_type,record_id'; private $memberMessageField = 'message_id,message_title,message_body,message_type,tpl_type,record_id';
public function init() public function init()
{ {
...@@ -50,127 +51,139 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -50,127 +51,139 @@ class MessageServiceModel extends \Business\AbstractModel
return self::$_instance; return self::$_instance;
} }
/** /**
* 适配数据 * 适配数据
* *
* @ccw * @ccw
*/ */
public function getConvertArray($memberMessage,$message,$defalt=false){ public function getConvertArray($memberMessage, $message, $defalt = false)
if($defalt){ {
if ($defalt) {
return array( return array(
'messageId'=>ApiConst::zero, 'messageId' => ApiConst::zero,
'messageTitle'=>'身边店', 'messageTitle' => '身边店',
'messageContent'=>ArrayConst::meg[$message['message_type']], 'messageContent' => ArrayConst::meg[$message['message_type']],
'messageType'=>$message['message_type'], 'messageType' => $message['message_type'],
'gmtCreate'=>TIMESTAMP, 'gmtCreate' => TIMESTAMP,
'isRead'=>ApiConst::one, 'isRead' => ApiConst::one,
'unReadCount'=>ApiConst::zero, 'unReadCount' => ApiConst::zero,
'id'=>ApiConst::zero, 'id' => ApiConst::zero,
'messageTplId'=>ApiConst::zero, 'messageTplId' => ApiConst::zero,
); );
}else{ } else {
return array( return array(
'messageId'=>$message['message_id'], 'messageId' => $message['message_id'],
'messageTitle'=>$message['message_title']?$message['message_title']:'', 'messageTitle' => $message['message_title'] ? $message['message_title'] : '',
'messageContent'=>$message['message_body'], 'messageContent' => $message['message_body'],
'messageType'=>$message['message_type'], 'messageType' => $message['message_type'],
'gmtCreate'=>$memberMessage['gmt_create'], 'gmtCreate' => $memberMessage['gmt_create'],
'isRead'=>$memberMessage['status'], 'isRead' => $memberMessage['status'],
'id'=>$message['record_id'], 'id' => $message['record_id'],
'messageTplId'=>$message['tpl_type'], 'messageTplId' => $message['tpl_type'],
); );
} }
} }
/** /**
* 根据消息类型获得一条消息,已经未读消息数量 * 根据消息类型获得一条消息,已经未读消息数量
* *
* @ccw * @ccw
*/ */
public function getOneByType($memberId,$type){ public function getOneByType($memberId, $type)
$this->memberMessageDao=MemberMessageModel::getInstance(); {
$this->messageDao=MessageModel::getInstance(); $this->memberMessageDao = MemberMessageModel::getInstance();
$memberMessage=$this->memberMessageDao->getOneByMemberIdAndType($memberId,$type); $this->messageDao = MessageModel::getInstance();
if($memberMessage){ $memberMessage = $this->memberMessageDao->getOneByMemberIdAndType($memberId, $type);
$message= $this->messageDao->getOneById($memberMessage['message_id'],$this->memberMessageField); if ($memberMessage) {
$message = $this->messageDao->getOneById($memberMessage['message_id'], $this->memberMessageField);
//获得未读的消息数量 //获得未读的消息数量
$count=$this->memberMessageDao->getUnreadCountByMemberIdAndType($memberId,$type); $count = $this->memberMessageDao->getUnreadCountByMemberIdAndType($memberId, $type);
if($message){ if ($message) {
$messages= $this->getConvertArray($memberMessage,$message); $messages = $this->getConvertArray($memberMessage, $message);
} }
} }
if($messages){ if ($messages) {
$data['unreadCount']=$count; $data['unreadCount'] = $count;
$data['list']=$messages; $data['list'] = $messages;
return $data; return $data;
} }
return new \stdClass(); return new \stdClass();
} }
public function getAvatar($type,$userid=0,$db=DbNameConst::masterDBConnectName){
$avatar=''; public function getAvatar($type, $userid = 0, $db = DbNameConst::masterDBConnectName)
if($type==1){ {
$avatar=Common::getStaticFile(ImageConst::sysAvatarName,ImageConst::systemAvatar,ImageConst::imageDomain); $avatar = '';
if ($type == 1) {
$avatar = Common::getStaticFile(ImageConst::sysAvatarName, ImageConst::systemAvatar, ImageConst::imageDomain);
} }
if($type==2){ if ($type == 2) {
$avatar=Common::getStaticFile(ImageConst::orderAvatarName,ImageConst::systemAvatar); $avatar = Common::getStaticFile(ImageConst::orderAvatarName, ImageConst::systemAvatar);
} }
if($type==3){ if ($type == 3) {
$avatar=Common::getStaticFile(ImageConst::expressAvatarName,ImageConst::systemAvatar,ImageConst::imageDomain); $avatar = Common::getStaticFile(ImageConst::expressAvatarName, ImageConst::systemAvatar, ImageConst::imageDomain);
} }
if($type==4){ if ($type == 4) {
$member=\DAO\MemberModel::getInstance(); $store = \DAO\StoreModel::getInstance();
$storeId=$member->getInfo($userid,'store_id');
$store=\DAO\StoreModel::getInstance();
$store->setDb($db); $store->setDb($db);
$avatar=$store->getInfoById($storeId,'store_label','store_label'); $avatar = $store->getInfoById($userid, 'store_label', 'store_label');
$avatar=Common::getStaticFile($avatar,ImageConst::storeLabel,ImageConst::imageDomain); $avatar = Common::getStaticFile($avatar, ImageConst::storeLabel, ImageConst::imageDomain);
} }
if($type==5){ if ($type == 5) {
$member=\DAO\MemberModel::getInstance(); $member = \DAO\MemberModel::getInstance();
$memerAvatar=$member->getInfo($userid,'member_avatar'); $memerAvatar = $member->getInfo($userid, 'member_avatar');
$avatar=$member->getMemberAvatarUrl($userid,$memerAvatar); $avatar = $member->getMemberAvatarUrl($userid, $memerAvatar);
} }
return $avatar; return $avatar;
} }
/** /**
* 获得全部类型消息,每种消息一条数据,以及每种消息的未读条数 * 获得全部类型消息,每种消息一条数据,以及每种消息的未读条数
* *
* @ccw * @ccw
*/ */
public function getList($memberId,$pageIndex=ApiConst::pageIndex,$pageSize=ApiConst::pageSize){ public function getList($memberId, $pageIndex = ApiConst::pageIndex, $pageSize = ApiConst::pageSize)
$messageOneDao=\DAO\MessageOneModel::getInstance(); {
$messageOneList=$messageOneDao->getListByMemberId($memberId,'*',$pageIndex,$pageSize); $messageOneDao = \DAO\MessageOneModel::getInstance();
foreach($messageOneList['list'] as &$val){ $messageOneList = $messageOneDao->getListByMemberId($memberId, '*', $pageIndex, $pageSize);
$val['message']=unserialize($val['message']); foreach ($messageOneList['list'] as &$val) {
$val['toAvatar']=$this->getAvatar($val['toType'],$val['toId']); $self = $this->getUserByMemberIdAndSelfType($val['fromId'], $val['fromType']);
$val['fromAvatar']=$this->getAvatar($val['fromType'],$val['fromId']); $toMember = $this->getUserByMemberIdAndSelfType($val['toId'], $val['toType']);
$val['message'] = unserialize($val['message']);
$val['toAvatar'] = $self['avatar'];
$val['fromAvatar'] = $toMember['avatar'];
// $val['toAvatar']=$this->getAvatar($val['toType'],$val['toId']);
// $val['fromAvatar']=$this->getAvatar($val['fromType'],$val['fromId']);
} }
return $messageOneList; return $messageOneList;
} }
public function getUserByMemberIdAndSelfType($memberId,$type){
$member=array(); public function getUserByMemberIdAndSelfType($memberId, $type)
if($type==ApiConst::systemMessageType || $type==ApiConst::orderMessageType || $type==ApiConst::deliveryMessageType){ {
$member['uid']=$type; $member = array();
$member['name']=ArrayConst::messageName[$type]; if ($type == ApiConst::systemMessageType || $type == ApiConst::orderMessageType || $type == ApiConst::deliveryMessageType) {
} $member['uid'] = $type;
if($type==ApiConst::storeMessageType){ $member['name'] = ArrayConst::messageName[$type];
$storeDao=\DAO\StoreModel::getInstance(); }
$store=$storeDao->getInfoByMemberId($memberId,'store_id,store_name,store_label'); if ($type == ApiConst::storeMessageType) {
$member['uid']=$store['store_id']; $storeDao = \DAO\StoreModel::getInstance();
$member['name']=$store['store_name']; $store = $storeDao->getInfoByMemberId($memberId, 'store_id,store_name,store_label');
} $member['uid'] = $store['store_id'];
if($type==ApiConst::memberMessageType){ $member['name'] = $store['store_name'];
$memberDao=\DAO\MemberModel::getInstance(); }
$member= $memberDao->getOneByMemberId($memberId,'member_id,member_name'); if ($type == ApiConst::memberMessageType) {
$member['uid']=$member['member_id']; $memberDao = \DAO\MemberModel::getInstance();
$member['name']=$member['member_name']; $member = $memberDao->getOneByMemberId($memberId, 'member_id,member_name');
} $member['uid'] = $member['member_id'];
$member['type']=$type; $member['name'] = $member['member_name'];
$member['avatar']=$this->getAvatar($type,$member['uid'],DbNameConst::salveDBConnectName); }
$member['type'] = $type;
$member['avatar'] = $this->getAvatar($type, $member['uid'], DbNameConst::salveDBConnectName);
return $member; return $member;
} }
...@@ -179,27 +192,28 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -179,27 +192,28 @@ class MessageServiceModel extends \Business\AbstractModel
* *
* @ccw * @ccw
*/ */
public function getMemberList($memberId,$selfType,$toId,$toType=ApiConst::systemMessageType,$field='*',$pageIndex=ApiConst::pageIndex,$pageSize=ApiConst::pageSize){ public function getMemberList($memberId, $selfType, $toId, $toType = ApiConst::systemMessageType, $field = '*', $pageIndex = ApiConst::pageIndex, $pageSize = ApiConst::pageSize)
$messageHistory=\DAO\MessageHistoryModel::getInstance(); {
$self=$this->getUserByMemberIdAndSelfType($memberId,$selfType); $messageHistory = \DAO\MessageHistoryModel::getInstance();
$toMember=$this->getUserByMemberIdAndSelfType($toId,$toType); $self = $this->getUserByMemberIdAndSelfType($memberId, $selfType);
$returnMemeber['toId']=(int)$toId; $toMember = $this->getUserByMemberIdAndSelfType($toId, $toType);
$returnMemeber['toUserId']=(int)$toMember['uid']; $returnMemeber['toId'] = (int)$toId;
$returnMemeber['toUserName']=$toMember['name']; $returnMemeber['toUserId'] = (int)$toMember['uid'];
$returnMemeber['toType']=(int)$toMember['type']; $returnMemeber['toUserName'] = $toMember['name'];
$returnMemeber['toAvatar']=$toMember['avatar']; $returnMemeber['toType'] = (int)$toMember['type'];
$returnMemeber['fromId']=$memberId; $returnMemeber['toAvatar'] = $toMember['avatar'];
$returnMemeber['fromUserId']=(int)$self['uid']; $returnMemeber['fromId'] = $memberId;
$returnMemeber['fromUserName']=$self['name']; $returnMemeber['fromUserId'] = (int)$self['uid'];
$returnMemeber['fromType']=(int)$self['type']; $returnMemeber['fromUserName'] = $self['name'];
$returnMemeber['fromAvatar']=$self['avatar']; $returnMemeber['fromType'] = (int)$self['type'];
$memberMessages=$messageHistory->getListByMemberIdAndToIdAndToType($memberId,$selfType,$toId,$toType,$field,$pageIndex,$pageSize); $returnMemeber['fromAvatar'] = $self['avatar'];
foreach($memberMessages['list'] as &$val){ $memberMessages = $messageHistory->getListByMemberIdAndToIdAndToType($memberId, $selfType, $toId, $toType, $field, $pageIndex, $pageSize);
$val['message']=unserialize($val['message']); foreach ($memberMessages['list'] as &$val) {
$val['message']['title']=!empty($val['message']['title'])?$val['message']['title']:''; $val['message'] = unserialize($val['message']);
$val['message']['title'] = !empty($val['message']['title']) ? $val['message']['title'] : '';
} }
$memberMessages['list']=array_reverse($memberMessages['list']); $memberMessages['list'] = array_reverse($memberMessages['list']);
$returnMemeber['messages']=$memberMessages; $returnMemeber['messages'] = $memberMessages;
return $returnMemeber; return $returnMemeber;
} }
...@@ -208,22 +222,23 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -208,22 +222,23 @@ class MessageServiceModel extends \Business\AbstractModel
* *
* @ccw * @ccw
*/ */
public function remove($memberId,$messageHistoryId){ public function remove($memberId, $messageHistoryId)
$memageHistoryDao=\DAO\MessageHistoryModel::getInstance(); {
$memberHistory=$memageHistoryDao->getOneById($messageHistoryId); $memageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$isSuccess=false; $memberHistory = $memageHistoryDao->getOneById($messageHistoryId);
if($memberHistory['fromId']==$memberId){ $isSuccess = false;
if($memberHistory['status']==ApiConst::recieveRemove){ if ($memberHistory['fromId'] == $memberId) {
$isSuccess= $memageHistoryDao->update($messageHistoryId,'status',ApiConst::remove); if ($memberHistory['status'] == ApiConst::recieveRemove) {
}else{ $isSuccess = $memageHistoryDao->update($messageHistoryId, 'status', ApiConst::remove);
$isSuccess= $memageHistoryDao->update($messageHistoryId,'status',ApiConst::sendRemove); } else {
$isSuccess = $memageHistoryDao->update($messageHistoryId, 'status', ApiConst::sendRemove);
} }
} }
if($memberHistory['toId']==$memberId){ if ($memberHistory['toId'] == $memberId) {
if($memberHistory['status']==ApiConst::sendRemove){ if ($memberHistory['status'] == ApiConst::sendRemove) {
$isSuccess= $memageHistoryDao->update($messageHistoryId,'status',ApiConst::remove); $isSuccess = $memageHistoryDao->update($messageHistoryId, 'status', ApiConst::remove);
}else{ } else {
$isSuccess= $memageHistoryDao->update($messageHistoryId,'status',ApiConst::recieveRemove); $isSuccess = $memageHistoryDao->update($messageHistoryId, 'status', ApiConst::recieveRemove);
} }
} }
return $isSuccess; return $isSuccess;
...@@ -234,116 +249,120 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -234,116 +249,120 @@ class MessageServiceModel extends \Business\AbstractModel
* *
* @ccw * @ccw
*/ */
public function getMessageButton($id,$buttonId){ public function getMessageButton($id, $buttonId)
$memageHistoryDao=\DAO\MessageHistoryModel::getInstance(); {
$memberHistory=$memageHistoryDao->getOneById($id); $memageHistoryDao = \DAO\MessageHistoryModel::getInstance();
if(empty($memberHistory)){ $memberHistory = $memageHistoryDao->getOneById($id);
if (empty($memberHistory)) {
ErrorModel::throwException(CodeConfigModel::noExistMessage); ErrorModel::throwException(CodeConfigModel::noExistMessage);
} }
$message=unserialize($memberHistory['message']); $message = unserialize($memberHistory['message']);
$buttonIndex=$buttonId-ApiConst::one; $buttonIndex = $buttonId - ApiConst::one;
$button=$message['buttons'][$buttonIndex]; $button = $message['buttons'][$buttonIndex];
if(empty($button)){ if (empty($button)) {
ErrorModel::throwException(CodeConfigModel::noExistButton); ErrorModel::throwException(CodeConfigModel::noExistButton);
} }
$retrunButton=$button; $retrunButton = $button;
$button['status']=ApiConst::messageButtonIsClick; $button['status'] = ApiConst::messageButtonIsClick;
$button['showType']=ApiConst::messageButtonShowTypeGray; $button['showType'] = ApiConst::messageButtonShowTypeGray;
$message['buttons'][$buttonIndex]=$button; $message['buttons'][$buttonIndex] = $button;
$message=serialize($message); $message = serialize($message);
$messageHistoryDao=\DAO\MessageHistoryModel::getInstance(); $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$messageHistoryDao->update($id,'message',$message); $messageHistoryDao->update($id, 'message', $message);
return $retrunButton; return $retrunButton;
} }
public function update($fromId, $fromType, $toId, $toType)
{
public function update($fromId,$fromType,$toId,$toType){ $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$messageHistoryDao=\DAO\MessageHistoryModel::getInstance(); $messageOneDao = \DAO\MessageOneModel::getInstance();
$messageOneDao=\DAO\MessageOneModel::getInstance();
$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);
return $isSuccess; return $isSuccess;
} }
public function checkIsCanSend($memberId){ public function checkIsCanSend($memberId)
$memberDao=\DAO\MemberModel::getInstance(); {
$sendTime=$memberDao->getInfo($memberId,'sendTime'); $memberDao = \DAO\MemberModel::getInstance();
if(!empty($sendTime)){ $sendTime = $memberDao->getInfo($memberId, 'sendTime');
if(TIMESTAMP-$sendTime<1){ if (!empty($sendTime)) {
if (TIMESTAMP - $sendTime < 1) {
ErrorModel::throwException(CodeConfigModel::sendLimitError); ErrorModel::throwException(CodeConfigModel::sendLimitError);
} }
} }
} }
public function addMessage($fromId,$selfId,$fromName,$fromType,$message,$toId,$toUserId,$toName,$toType,$messageId=false){
$messageHistoryDao=\DAO\MessageHistoryModel::getInstance(); public function addMessage($fromId, $selfId, $fromName, $fromType, $message, $toId, $toUserId, $toName, $toType, $messageId = false)
$mesageOneDao=\DAO\MessageOneModel::getInstance(); {
$message['gmtCreate']=TIMESTAMP; $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$message['isRead']=ApiConst::unread; $mesageOneDao = \DAO\MessageOneModel::getInstance();
$message['type']=(int)$message['type']; $message['gmtCreate'] = TIMESTAMP;
$serializeMessage=serialize($message); $message['isRead'] = ApiConst::unread;
$message['type'] = (int)$message['type'];
$serializeMessage = serialize($message);
//将消息添加到表messageHistory //将消息添加到表messageHistory
$mesageHistory['fromId']=$fromId; $mesageHistory['fromId'] = $fromId;
$mesageHistory['fromType']=$fromType; $mesageHistory['fromType'] = $fromType;
$mesageHistory['toId']=$toId; $mesageHistory['toId'] = $toId;
$mesageHistory['toType']=$toType; $mesageHistory['toType'] = $toType;
$mesageHistory['title']=$message['title']; $mesageHistory['title'] = $message['title'];
$mesageHistory['message']=$serializeMessage; $mesageHistory['message'] = $serializeMessage;
$mesageHistory['type']=$message['type']; $mesageHistory['type'] = $message['type'];
$mesageHistory['gmtCreate']=time(); $mesageHistory['gmtCreate'] = time();
$mesageHistory['gmtUpdate']=time(); $mesageHistory['gmtUpdate'] = time();
if($messageId){ if ($messageId) {
$mesageHistory['id']=$messageId; $mesageHistory['id'] = $messageId;
} }
$messageHistoryDao->setDb(DbNameConst::masterDBConnectName); $messageHistoryDao->setDb(DbNameConst::masterDBConnectName);
$messageHistoryDao->db->doTransaction(); $messageHistoryDao->db->doTransaction();
$res1=$messageHistoryDao->add($mesageHistory); $res1 = $messageHistoryDao->add($mesageHistory);
//将最后一条消息更新到消息用户表messageOne //将最后一条消息更新到消息用户表messageOne
$messageOne['fromId']=$fromId; $messageOne['fromId'] = $fromId;
$messageOne['toUserId']=$toUserId; $messageOne['toUserId'] = $toUserId;
$messageOne['toUserName']=$toName; $messageOne['toUserName'] = $toName;
$messageOne['toType']=$toType; $messageOne['toType'] = $toType;
$messageOne['fromUserId']=$selfId; $messageOne['fromUserId'] = $selfId;
$messageOne['fromUserName']=$fromName; $messageOne['fromUserName'] = $fromName;
$messageOne['fromType']=$fromType; $messageOne['fromType'] = $fromType;
$messageOne['toId']=$toId; $messageOne['toId'] = $toId;
$messageOne['message']=$serializeMessage; $messageOne['message'] = $serializeMessage;
//推送补充 //推送补充
$mesageHistory['fromUserId']=$selfId; $mesageHistory['fromUserId'] = $selfId;
$mesageHistory['fromUserName']=$fromName; $mesageHistory['fromUserName'] = $fromName;
$mesageHistory['fromAvatar']=$this->getAvatar($fromType,$selfId); $mesageHistory['fromAvatar'] = $this->getAvatar($fromType, $selfId);
$mesageHistory['toUserId']=$toUserId; $mesageHistory['toUserId'] = $toUserId;
$mesageHistory['toUserName']=$toName; $mesageHistory['toUserName'] = $toName;
//register_shutdown_function(array($messageHistoryDao,'sendMessage'),array($mesageHistory,$toId)); //register_shutdown_function(array($messageHistoryDao,'sendMessage'),array($mesageHistory,$toId));
$mesageOneDao->setDb(DbNameConst::masterDBConnectName); $mesageOneDao->setDb(DbNameConst::masterDBConnectName);
$res2= $mesageOneDao->insertOrUpdate($messageOne); $res2 = $mesageOneDao->insertOrUpdate($messageOne);
$messageHistoryDao->db->doCommit(); $messageHistoryDao->db->doCommit();
unset($messageHistoryDao->db); unset($messageHistoryDao->db);
unset($messageHistoryDao); unset($messageHistoryDao);
unset($mesageOneDao); unset($mesageOneDao);
//$messageHistoryDao->sendMessage($mesageHistory,$toId); //$messageHistoryDao->sendMessage($mesageHistory,$toId);
if($res1 && $res2){ if ($res1 && $res2) {
return $res1; return $res1;
}else{ } else {
return false; return false;
} }
} }
public function addMessageCenterToDb(){ public function addMessageCenterToDb()
{
$conf = \Yaf\Registry::get('config')->get('redis.database.params'); $conf = \Yaf\Registry::get('config')->get('redis.database.params');
$redis = new \Redis(); $redis = new \Redis();
$redis->pconnect($conf['host'], $conf['port']); $redis->pconnect($conf['host'], $conf['port']);
if(!empty($conf['password'])){ if (!empty($conf['password'])) {
$redis->auth($conf['password']); $redis->auth($conf['password']);
} }
while($center=$redis->lPop('message_center')){ while ($center = $redis->lPop('message_center')) {
$addData=unserialize($center); $addData = unserialize($center);
$addData['message']=unserialize($addData['message']); $addData['message'] = unserialize($addData['message']);
$this->addMessage($addData['fromId'],$addData['fromUserId'],$addData['fromUserName'],$addData['fromType'],$addData['message'],$addData['toId'],$addData['toUserId'],$addData['toUserName'],$addData['toType'],$addData['id']); $this->addMessage($addData['fromId'], $addData['fromUserId'], $addData['fromUserName'], $addData['fromType'], $addData['message'], $addData['toId'], $addData['toUserId'], $addData['toUserName'], $addData['toType'], $addData['id']);
} }
return true; return true;
} }
...@@ -354,58 +373,55 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -354,58 +373,55 @@ class MessageServiceModel extends \Business\AbstractModel
* *
* @ccw` * @ccw`
*/ */
public function add($fromId,$selfId,$fromName,$fromType,$message,$toId,$toUserId,$toName,$toType){ public function add($fromId, $selfId, $fromName, $fromType, $message, $toId, $toUserId, $toName, $toType)
$messageHistoryDao=\DAO\MessageHistoryModel::getInstance(); {
$mesageOneDao=\DAO\MessageOneModel::getInstance(); $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$message['gmtCreate']=TIMESTAMP; $mesageOneDao = \DAO\MessageOneModel::getInstance();
$message['isRead']=ApiConst::unread; $message['gmtCreate'] = TIMESTAMP;
$message['type']=(int)$message['type']; $message['isRead'] = ApiConst::unread;
$serializeMessage=serialize($message); $message['type'] = (int)$message['type'];
//将消息添加到表messageHistory $serializeMessage = serialize($message);
$mesageHistory['fromId']=$fromId; //将消息添加到表messageHistory
$mesageHistory['fromType']=$fromType; $mesageHistory['fromId'] = $fromId;
$mesageHistory['toId']=$toId; $mesageHistory['fromType'] = $fromType;
$mesageHistory['toType']=$toType; $mesageHistory['toId'] = $toId;
$mesageHistory['title']=$message['title']; $mesageHistory['toType'] = $toType;
$mesageHistory['message']=$serializeMessage; $mesageHistory['title'] = $message['title'];
$mesageHistory['type']=$message['type']; $mesageHistory['message'] = $serializeMessage;
$mesageHistory['gmtCreate']=TIMESTAMP; $mesageHistory['type'] = $message['type'];
$mesageHistory['gmtUpdate']=TIMESTAMP; $mesageHistory['gmtCreate'] = TIMESTAMP;
$messageHistoryDao->setDb(DbNameConst::masterDBConnectName); $mesageHistory['gmtUpdate'] = TIMESTAMP;
$messageHistoryDao->db->doTransaction(); $messageHistoryDao->setDb(DbNameConst::masterDBConnectName);
$res1=$messageHistoryDao->add($mesageHistory); $messageHistoryDao->db->doTransaction();
//将最后一条消息更新到消息用户表messageOne $res1 = $messageHistoryDao->add($mesageHistory);
$messageOne['fromId']=$fromId; //将最后一条消息更新到消息用户表messageOne
$messageOne['toUserId']=$toUserId; $messageOne['fromId'] = $fromId;
$messageOne['toUserName']=$toName; $messageOne['toUserId'] = $toUserId;
$messageOne['toType']=$toType; $messageOne['toUserName'] = $toName;
$messageOne['fromUserId']=$selfId; $messageOne['toType'] = $toType;
$messageOne['fromUserName']=$fromName; $messageOne['fromUserId'] = $selfId;
$messageOne['fromType']=$fromType; $messageOne['fromUserName'] = $fromName;
$messageOne['toId']=$toId; $messageOne['fromType'] = $fromType;
$messageOne['message']=$serializeMessage; $messageOne['toId'] = $toId;
//推送补充 $messageOne['message'] = $serializeMessage;
$mesageHistory['fromUserId']=$selfId; //推送补充
$mesageHistory['fromUserName']=$fromName; $mesageHistory['fromUserId'] = $selfId;
$mesageHistory['fromAvatar']=$this->getAvatar($fromType,$selfId); $mesageHistory['fromUserName'] = $fromName;
$mesageHistory['toUserId']=$toUserId; $mesageHistory['fromAvatar'] = $this->getAvatar($fromType, $selfId);
$mesageHistory['toUserName']=$toName; $mesageHistory['toUserId'] = $toUserId;
//register_shutdown_function(array($messageHistoryDao,'sendMessage'),array($mesageHistory,$toId)); $mesageHistory['toUserName'] = $toName;
$mesageOneDao->setDb(DbNameConst::masterDBConnectName); //register_shutdown_function(array($messageHistoryDao,'sendMessage'),array($mesageHistory,$toId));
$res2= $mesageOneDao->insertOrUpdate($messageOne); $mesageOneDao->setDb(DbNameConst::masterDBConnectName);
$messageHistoryDao->db->doCommit(); $res2 = $mesageOneDao->insertOrUpdate($messageOne);
register_shutdown_function(array($messageHistoryDao, "sendMessage"),$mesageHistory,$toId); $messageHistoryDao->db->doCommit();
//$messageHistoryDao->sendMessage($mesageHistory,$toId); register_shutdown_function(array($messageHistoryDao, "sendMessage"), $mesageHistory, $toId);
if($res1 && $res2){ //$messageHistoryDao->sendMessage($mesageHistory,$toId);
return $res1; if ($res1 && $res2) {
}else{ return $res1;
return false; } else {
} return false;
}
} }
} }
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