Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
my-yaf-project
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenchuanwen
my-yaf-project
Commits
1d203d0c
Commit
1d203d0c
authored
Sep 30, 2018
by
wwccw0591
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pc
parent
44edbf9a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
211 additions
and
0 deletions
+211
-0
MessageService.php
application/models/Business/Message/MessageService.php
+211
-0
No files found.
application/models/Business/Message/MessageService.php
View file @
1d203d0c
...
...
@@ -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
;
}
/**
* 登录业务
*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment