Commit 1d203d0c authored by wwccw0591's avatar wwccw0591

pc

parent 44edbf9a
...@@ -34,6 +34,217 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -34,6 +34,217 @@ class MessageServiceModel extends \Business\AbstractModel
/**
* 适配数据
*
* @ccw
*/
public function getConvertArray($memberMessage, $message, $defalt = false)
{
if ($defalt) {
return array(
'messageId' => ApiConst::zero,
'messageTitle' => '身边店',
'messageContent' => ArrayConst::meg[$message['message_type']],
'messageType' => $message['message_type'],
'gmtCreate' => TIMESTAMP,
'isRead' => ApiConst::one,
'unReadCount' => ApiConst::zero,
'id' => ApiConst::zero,
'messageTplId' => ApiConst::zero,
);
} else {
return array(
'messageId' => $message['message_id'],
'messageTitle' => $message['message_title'] ? $message['message_title'] : '',
'messageContent' => $message['message_body'],
'messageType' => $message['message_type'],
'gmtCreate' => $memberMessage['gmt_create'],
'isRead' => $memberMessage['status'],
'id' => $message['record_id'],
'messageTplId' => $message['tpl_type'],
);
}
}
public function getUnreadCountByMemberIdAndType($toId)
{
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$count = $messageHistoryDao->getUnreadCountByToIdAndToType($toId);
return $count;
}
/**
* 根据消息类型获得一条消息,已经未读消息数量
*
* @ccw
*/
public function getOneByType($memberId, $type)
{
$this->memberMessageDao = MemberMessageModel::getInstance();
$this->messageDao = MessageModel::getInstance();
$memberMessage = $this->memberMessageDao->getOneByMemberIdAndType($memberId, $type);
if ($memberMessage) {
$message = $this->messageDao->getOneById($memberMessage['message_id'], $this->memberMessageField);
//获得未读的消息数量
$count = $this->memberMessageDao->getUnreadCountByMemberIdAndType($memberId, $type);
if ($message) {
$messages = $this->getConvertArray($memberMessage, $message);
}
}
if ($messages) {
$data['unreadCount'] = $count;
$data['list'] = $messages;
return $data;
}
return new \stdClass();
}
public function getAvatar($type, $userid = 0, $db = DbNameConst::masterDBConnectName)
{
$avatar = '';
if ($type == ApiConst::systemMessageType) {
$avatar = Common::getStaticFile(ImageConst::sysAvatarName, ImageConst::systemAvatar, ImageConst::imageDomain);
}
if ($type == ApiConst::orderMessageType) {
$avatar = Common::getStaticFile(ImageConst::orderAvatarName, ImageConst::systemAvatar);
}
if ($type == ApiConst::deliveryMessageType) {
$avatar = Common::getStaticFile(ImageConst::expressAvatarName, ImageConst::systemAvatar, ImageConst::imageDomain);
}
if ($type == ApiConst::storeMessageType) {
$store = \DAO\StoreModel::getInstance();
$storeData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$store, 'getInfoById'), array($userid, $store->detailField), \Our\ApiConst::oneDaySecond);
$avatar = $storeData['storeLabel'];
// $avatar = $store->getInfoById($userid, 'store_label', 'store_label');
$avatar = Common::getStaticFile($avatar, ImageConst::storeLabel, ImageConst::imageDomain);
}
if ($type == ApiConst::memberMessageType || $type == ApiConst::serviceMessageType) {
$member = \DAO\MemberModel::getInstance();
$memerAvatar = $member->getInfo($userid, 'member_avatar');
$avatar = $member->getMemberAvatarUrl($userid, $memerAvatar);
}
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();
}
/**
* 获得全部类型消息,每种消息一条数据,以及每种消息的未读条数
*
* @ccw
*/
public function getList($memberId, $pageIndex = ApiConst::pageIndex, $pageSize = ApiConst::pageSize)
{
$messageOneDao = \DAO\MessageOneModel::getInstance();
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$messageOneList = $messageOneDao->getListByMemberId($memberId, '*', $pageIndex, $pageSize);
foreach ($messageOneList['list'] as &$val) {
$self = $this->getUserByMemberIdAndSelfType($val['fromId'], $val['fromType']);
$toMember = $this->getUserByMemberIdAndSelfType($val['toId'], $val['toType']);
$val['toAvatar'] = $toMember['avatar'];
$val['message'] = $messageHistoryDao->convertMessage($val['message']);
$val['fromAvatar'] = $self['avatar'];
// $val['toAvatar']=$this->getAvatar($val['toType'],$val['toId']);
// $val['fromAvatar']=$this->getAvatar($val['fromType'],$val['fromId']);
}
return $messageOneList;
}
public function getUserByMemberIdAndSelfType($memberId, $type)
{
$member = array();
if ($type == ApiConst::systemMessageType || $type == ApiConst::orderMessageType || $type == ApiConst::deliveryMessageType) {
$member['uid'] = $type;
$member['name'] = ArrayConst::messageName[$type];
}
if ($type == ApiConst::storeMessageType) {
$storeDao = \DAO\StoreModel::getInstance();
$store = $storeDao->getInfoByMemberId($memberId, 'store_id,store_name,store_label');
$member['uid'] = $store['store_id'];
$member['name'] = $store['store_name'];
}
if ($type == ApiConst::memberMessageType || $type == ApiConst::serviceMessageType) {
$memberDao = \DAO\MemberModel::getInstance();
$member = $memberDao->getOneByMemberId($memberId, 'member_id,member_name');
$member['uid'] = $member['member_id'];
$member['name'] = $member['member_name'];
}
$member['type'] = $type;
$member['avatar'] = $this->getAvatar($type, $member['uid'], DbNameConst::salveDBConnectName);
return $member;
}
public function getMemberIdByOtherIdAndType($otherId, $type)
{
if($type==ApiConst::storeMessageType){
$storeDao=\DAO\StoreModel::getInstance();
$condition['store_id'] = $otherId;
$store = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getInfo'), array($condition), ApiConst::oneDaySecond, array($otherId));
return $store['member_id'];
}
ErrorModel::throwException(CodeConfigModel::paramsError);
}
/**
* 根据用户的消息类型获得消息列表
*
* @ccw
*/
public function getMemberList($memberId, $selfType, $toId, $otherId, $toType = ApiConst::systemMessageType, $field = '*', $pageIndex = ApiConst::pageIndex, $pageSize = ApiConst::pageSize)
{
$messageHistory = \DAO\MessageHistoryModel::getInstance();
$self = $this->getUserByMemberIdAndSelfType($memberId, $selfType);
$toMember = $this->getUserByMemberIdAndSelfType($toId, $toType);
if (empty($toId)) {
$toId =$this->getMemberIdByOtherIdAndType($otherId,$toType);
}
$returnMemeber['toId'] = (int)$toId;
$returnMemeber['toUserId'] = (int)$toMember['uid'];
$returnMemeber['toUserName'] = $toMember['name'];
$returnMemeber['toType'] = (int)$toMember['type'];
$returnMemeber['toAvatar'] = $toMember['avatar'];
$returnMemeber['fromId'] = $memberId;
$returnMemeber['fromUserId'] = (int)$self['uid'];
$returnMemeber['fromUserName'] = $self['name'];
$returnMemeber['fromType'] = (int)$self['type'];
$returnMemeber['fromAvatar'] = $self['avatar'];
$memberMessages = $messageHistory->getListByMemberIdAndToIdAndToType($memberId, $selfType, $toId, $toType, $field, $pageIndex, $pageSize);
foreach ($memberMessages['list'] as &$val) {
$val['message'] = $messageHistory->convertMessage($val['message']);
}
$memberMessages['list'] = array_reverse($memberMessages['list']);
$returnMemeber['messages'] = $memberMessages;
return $returnMemeber;
}
/** /**
* 登录业务 * 登录业务
* *
......
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