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
4c6e5d2e
Commit
4c6e5d2e
authored
Sep 30, 2018
by
wwccw0591
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pc
parent
1d203d0c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
218 additions
and
11 deletions
+218
-11
MessageService.php
application/models/Business/Message/MessageService.php
+218
-11
No files found.
application/models/Business/Message/MessageService.php
View file @
4c6e5d2e
...
@@ -132,17 +132,7 @@ class MessageServiceModel extends \Business\AbstractModel
...
@@ -132,17 +132,7 @@ class MessageServiceModel extends \Business\AbstractModel
return
$avatar
;
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
()
public
function
unsetDb
()
{
{
...
@@ -245,6 +235,223 @@ class MessageServiceModel extends \Business\AbstractModel
...
@@ -245,6 +235,223 @@ class MessageServiceModel extends \Business\AbstractModel
return
$returnMemeber
;
return
$returnMemeber
;
}
}
/**
* 删除用户消息
*
* @ccw
*/
public
function
remove
(
$memberId
,
$messageHistoryId
)
{
$memageHistoryDao
=
\DAO\MessageHistoryModel
::
getInstance
();
$memberHistory
=
$memageHistoryDao
->
getOneById
(
$messageHistoryId
);
$isSuccess
=
false
;
if
(
$memberHistory
[
'fromId'
]
==
$memberId
)
{
if
(
$memberHistory
[
'isDel'
]
==
ApiConst
::
recieveRemove
)
{
$isSuccess
=
$memageHistoryDao
->
update
(
$messageHistoryId
,
'isDel'
,
ApiConst
::
remove
);
}
else
{
$isSuccess
=
$memageHistoryDao
->
update
(
$messageHistoryId
,
'isDel'
,
ApiConst
::
sendRemove
);
}
}
if
(
$memberHistory
[
'toId'
]
==
$memberId
)
{
if
(
$memberHistory
[
'isDel'
]
==
ApiConst
::
sendRemove
)
{
$isSuccess
=
$memageHistoryDao
->
update
(
$messageHistoryId
,
'isDel'
,
ApiConst
::
remove
);
}
else
{
$isSuccess
=
$memageHistoryDao
->
update
(
$messageHistoryId
,
'isDel'
,
ApiConst
::
recieveRemove
);
}
}
return
$isSuccess
;
}
/**
* 获得消息按钮
*
* @ccw
*/
public
function
getMessageButton
(
$id
,
$buttonId
)
{
$memageHistoryDao
=
\DAO\MessageHistoryModel
::
getInstance
();
$memberHistory
=
$memageHistoryDao
->
getOneById
(
$id
);
if
(
empty
(
$memberHistory
))
{
ErrorModel
::
throwException
(
CodeConfigModel
::
noExistMessage
);
}
$message
=
unserialize
(
$memberHistory
[
'message'
]);
$buttonIndex
=
$buttonId
-
ApiConst
::
one
;
$button
=
$message
[
'buttons'
][
$buttonIndex
];
if
(
empty
(
$button
))
{
ErrorModel
::
throwException
(
CodeConfigModel
::
noExistButton
);
}
$retrunButton
=
$button
;
$button
[
'status'
]
=
ApiConst
::
messageButtonIsClick
;
$button
[
'showType'
]
=
ApiConst
::
messageButtonShowTypeGray
;
$message
[
'buttons'
][
$buttonIndex
]
=
$button
;
$message
=
serialize
(
$message
);
$messageHistoryDao
=
\DAO\MessageHistoryModel
::
getInstance
();
$messageHistoryDao
->
update
(
$id
,
'message'
,
$message
);
return
$retrunButton
;
}
public
function
update
(
$fromId
,
$fromType
,
$toId
,
$toType
)
{
$messageHistoryDao
=
\DAO\MessageHistoryModel
::
getInstance
();
$messageOneDao
=
\DAO\MessageOneModel
::
getInstance
();
$messageOneDao
->
setDb
(
DbNameConst
::
masterDBConnectName
);
$messageOneDao
->
updateUnreadField
(
$fromId
,
$fromType
,
$toId
,
$toType
);
$isSuccess
=
$messageHistoryDao
->
updateByFromIdAndSelfTypeAndToIdAndToType
(
$fromId
,
$fromType
,
$toId
,
$toType
);
return
$isSuccess
;
}
public
function
checkIsCanSend
(
$memberId
)
{
$memberDao
=
\DAO\MemberModel
::
getInstance
();
$sendTime
=
$memberDao
->
getInfo
(
$memberId
,
'sendTime'
);
if
(
!
empty
(
$sendTime
))
{
if
(
TIMESTAMP
-
$sendTime
<
1
)
{
ErrorModel
::
throwException
(
CodeConfigModel
::
sendLimitError
);
}
}
}
public
function
addMessage
(
$fromId
,
$selfId
,
$fromName
,
$fromType
,
$message
,
$toId
,
$toUserId
,
$toName
,
$toType
,
$messageId
=
false
)
{
$messageHistoryDao
=
\DAO\MessageHistoryModel
::
getInstance
();
$mesageOneDao
=
\DAO\MessageOneModel
::
getInstance
();
$message
[
'gmtCreate'
]
=
TIMESTAMP
;
$message
[
'isRead'
]
=
ApiConst
::
unread
;
$message
[
'type'
]
=
(
int
)
$message
[
'type'
];
$message
[
'content'
]
=
base64_encode
(
$message
[
'content'
]);
$serializeMessage
=
serialize
(
$message
);
//将消息添加到表messageHistory
$mesageHistory
[
'fromId'
]
=
$fromId
;
$mesageHistory
[
'fromType'
]
=
$fromType
;
$mesageHistory
[
'toId'
]
=
$toId
;
$mesageHistory
[
'toType'
]
=
$toType
;
$mesageHistory
[
'title'
]
=
$message
[
'title'
];
$mesageHistory
[
'message'
]
=
$serializeMessage
;
$mesageHistory
[
'type'
]
=
$message
[
'type'
];
$mesageHistory
[
'gmtCreate'
]
=
time
();
$mesageHistory
[
'gmtUpdate'
]
=
time
();
if
(
$messageId
)
{
$mesageHistory
[
'id'
]
=
$messageId
;
}
$messageHistoryDao
->
setDb
(
DbNameConst
::
masterDBConnectName
);
$messageHistoryDao
->
db
->
doTransaction
();
$res1
=
$messageHistoryDao
->
add
(
$mesageHistory
);
//将最后一条消息更新到消息用户表messageOne
$messageOne
[
'fromId'
]
=
$fromId
;
$messageOne
[
'toUserId'
]
=
$toUserId
;
$messageOne
[
'toUserName'
]
=
$toName
;
$messageOne
[
'toType'
]
=
$toType
;
$messageOne
[
'fromUserId'
]
=
$selfId
;
$messageOne
[
'fromUserName'
]
=
$fromName
;
$messageOne
[
'fromType'
]
=
$fromType
;
$messageOne
[
'toId'
]
=
$toId
;
$messageOne
[
'message'
]
=
$serializeMessage
;
//推送补充
$mesageHistory
[
'fromUserId'
]
=
$selfId
;
$mesageHistory
[
'fromUserName'
]
=
$fromName
;
$mesageHistory
[
'fromAvatar'
]
=
$this
->
getAvatar
(
$fromType
,
$selfId
);
$mesageHistory
[
'toUserId'
]
=
$toUserId
;
$mesageHistory
[
'toUserName'
]
=
$toName
;
//register_shutdown_function(array($messageHistoryDao,'sendMessage'),array($mesageHistory,$toId));
$mesageOneDao
->
setDb
(
DbNameConst
::
masterDBConnectName
);
$res2
=
$mesageOneDao
->
insertOrUpdate
(
$messageOne
);
$messageHistoryDao
->
db
->
doCommit
();
unset
(
$messageHistoryDao
->
db
);
unset
(
$messageHistoryDao
);
unset
(
$mesageOneDao
);
//$messageHistoryDao->sendMessage($mesageHistory,$toId);
if
(
$res1
&&
$res2
)
{
return
$res1
;
}
else
{
return
false
;
}
}
public
function
addMessageCenterToDb
()
{
$conf
=
\Yaf\Registry
::
get
(
'config'
)
->
get
(
'redis.database.params'
);
$this
->
baseRedis
=
new
\Redis
();
$this
->
baseRedis
->
pconnect
(
$conf
[
'host'
],
$conf
[
'port'
]);
if
(
!
empty
(
$conf
[
'password'
]))
{
$this
->
baseRedis
->
auth
(
$conf
[
'password'
]);
}
while
(
$center
=
$this
->
baseRedis
->
lPop
(
'message_center'
))
{
$this
->
baseRedis
->
rPush
(
'push_center'
,
$center
);
$addData
=
unserialize
(
$center
);
$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'
]);
}
return
true
;
}
/**
* 新增用户消息
*
* @ccw`
*/
public
function
add
(
$fromId
,
$selfId
,
$fromName
,
$fromType
,
$message
,
$toId
,
$toUserId
,
$toName
,
$toType
)
{
$messageHistoryDao
=
\DAO\MessageHistoryModel
::
getInstance
();
$mesageOneDao
=
\DAO\MessageOneModel
::
getInstance
();
$message
[
'gmtCreate'
]
=
TIMESTAMP
;
$message
[
'isRead'
]
=
ApiConst
::
unread
;
$message
[
'type'
]
=
(
int
)
$message
[
'type'
];
$serializeMessage
=
serialize
(
$message
);
//将消息添加到表messageHistory
$mesageHistory
[
'fromId'
]
=
$fromId
;
$mesageHistory
[
'fromType'
]
=
$fromType
;
$mesageHistory
[
'toId'
]
=
$toId
;
$mesageHistory
[
'toType'
]
=
$toType
;
$mesageHistory
[
'title'
]
=
$message
[
'title'
];
$mesageHistory
[
'message'
]
=
$serializeMessage
;
$mesageHistory
[
'type'
]
=
$message
[
'type'
];
$mesageHistory
[
'gmtCreate'
]
=
TIMESTAMP
;
$mesageHistory
[
'gmtUpdate'
]
=
TIMESTAMP
;
$messageHistoryDao
->
setDb
(
DbNameConst
::
masterDBConnectName
);
$messageHistoryDao
->
db
->
doTransaction
();
$res1
=
$messageHistoryDao
->
add
(
$mesageHistory
);
//将最后一条消息更新到消息用户表messageOne
$messageOne
[
'fromId'
]
=
$fromId
;
$messageOne
[
'toUserId'
]
=
$toUserId
;
$messageOne
[
'toUserName'
]
=
$toName
;
$messageOne
[
'toType'
]
=
$toType
;
$messageOne
[
'fromUserId'
]
=
$selfId
;
$messageOne
[
'fromUserName'
]
=
$fromName
;
$messageOne
[
'fromType'
]
=
$fromType
;
$messageOne
[
'toId'
]
=
$toId
;
$messageOne
[
'message'
]
=
$serializeMessage
;
//推送补充
$mesageHistory
[
'fromUserId'
]
=
$selfId
;
$mesageHistory
[
'fromUserName'
]
=
$fromName
;
$mesageHistory
[
'fromAvatar'
]
=
$this
->
getAvatar
(
$fromType
,
$selfId
);
$mesageHistory
[
'toUserId'
]
=
$toUserId
;
$mesageHistory
[
'toUserName'
]
=
$toName
;
//register_shutdown_function(array($messageHistoryDao,'sendMessage'),array($mesageHistory,$toId));
$mesageOneDao
->
setDb
(
DbNameConst
::
masterDBConnectName
);
$res2
=
$mesageOneDao
->
insertOrUpdate
(
$messageOne
);
$messageHistoryDao
->
db
->
doCommit
();
register_shutdown_function
(
array
(
$messageHistoryDao
,
"sendMessage"
),
$mesageHistory
,
$toId
);
//$messageHistoryDao->sendMessage($mesageHistory,$toId);
if
(
$res1
&&
$res2
)
{
return
$res1
;
}
else
{
return
false
;
}
}
public
function
set
(
$memberId
,
$pushData
)
{
$memberDao
=
\DAO\MemberModel
::
getInstance
(
DbNameConst
::
masterDBConnectName
);
if
(
$memberDao
->
setIsWxsend
(
$memberId
,
$pushData
)
!==
false
)
{
return
true
;
}
return
false
;
}
/**
/**
* 登录业务
* 登录业务
*
*
...
...
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