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
2a9c0d56
Commit
2a9c0d56
authored
Oct 03, 2018
by
chenchuanwen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into master_dev
parents
e7592c17
8594183a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
5 deletions
+35
-5
MessageService.php
application/models/Business/Message/MessageService.php
+16
-4
MemberService.php
application/models/Business/User/MemberService.php
+1
-0
Abstract.php
application/models/Redis/Abstract.php
+6
-0
MemberRedis.php
application/models/Redis/Db0/MemberRedis.php
+8
-0
news_server.php
scripts/crontab/push/news_server.php
+4
-1
No files found.
application/models/Business/Message/MessageService.php
View file @
2a9c0d56
...
...
@@ -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
;
}
/**
...
...
@@ -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
;
}
...
...
application/models/Business/User/MemberService.php
View file @
2a9c0d56
...
...
@@ -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'
);
}
...
...
application/models/Redis/Abstract.php
View file @
2a9c0d56
...
...
@@ -34,6 +34,12 @@ class AbstractModel {
*/
static
$redis
;
public
function
__destruct
(){
if
(
!
empty
(
self
::
$redis
)){
self
::
$redis
->
close
();
}
}
/**
* 获取redis连接
*
...
...
application/models/Redis/Db0/MemberRedis.php
View file @
2a9c0d56
...
...
@@ -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
;
}
/**
* 类实例
...
...
scripts/crontab/push/news_server.php
View file @
2a9c0d56
...
...
@@ -115,12 +115,13 @@ $serv->on('Message', function($server, $frame) use($conf){
$redis
->
hSet
(
KEY_PRE
.
$memberId
,
'sendTime'
,
time
());
$server
->
push
(
$frame
->
fd
,
responseJson
(
1
,
"sendMsg"
,
"success"
,
$sendMessage
));
$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
();
...
...
@@ -231,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
());
...
...
@@ -244,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
());
...
...
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