Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pisns-forum-api
Project
Project
Details
Activity
Releases
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
scrmGroup
pisns-forum-api
Commits
b3ee42cc
Commit
b3ee42cc
authored
Dec 31, 2015
by
strong
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit '
d687e750
' into SANDBOX
# Conflicts: # app/models/forumUser.js
parents
1953d4e0
d687e750
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
749 additions
and
0 deletions
+749
-0
forumMessage.js
app/controllers/admin/forumMessage.js
+247
-0
forumMessage.js
app/controllers/mobile/forumMessage.js
+169
-0
forumMessage.js
app/models/forumMessage.js
+51
-0
forumUser.js
app/models/forumUser.js
+15
-0
forumMessageService.js
app/service/forumMessageService.js
+267
-0
No files found.
app/controllers/admin/forumMessage.js
0 → 100644
View file @
b3ee42cc
'use strict'
;
var
express
=
require
(
'express'
),
router
=
express
.
Router
(),
returnCode
=
require
(
'../../utils/returnCode'
),
then
=
require
(
'thenjs'
),
async
=
require
(
'async'
),
_
=
require
(
'lodash'
);
var
mongoose
=
require
(
'mongoose'
);
var
ForumMessage
=
mongoose
.
model
(
'ForumMessage'
);
var
forumMessageService
=
require
(
'../../service/forumMessageService'
);
var
forumUserService
=
require
(
'../../service/forumUserService'
);
module
.
exports
=
function
(
app
)
{
app
.
use
(
'/admin/forum'
,
router
);
};
//新增
router
.
post
(
'/message/create'
,
function
(
req
,
res
,
next
)
{
var
object
=
req
.
body
;
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
uid
=
req
.
session
.
user
.
uid
;
object
.
ent_code
=
ent_code
;
var
to_user_ids
=
object
.
to
;
//接受者ID
if
(
to_user_ids
){
async
.
waterfall
([
function
(
callback
)
{
//获取管理员信息
forumUserService
.
getUserByUid
(
uid
,
function
(
err
,
user
){
if
(
err
){
callback
(
err
,
null
);
}
else
if
(
user
){
callback
(
null
,
user
.
_id
);
}
else
{
callback
(
'管理员信息错误'
,
null
);
}
});
},
function
(
userID
,
callback
)
{
//创建消息
object
.
from
=
userID
;
forumMessageService
.
create
(
object
,
function
(
err
,
doc
){
if
(
doc
)
{
callback
(
null
,
doc
.
_id
);
}
else
{
callback
(
null
,
null
);
}
});
},
function
(
message_id
,
callback
)
{
//更新用户消息
var
obj_msg
=
{
msg
:
message_id
,
status
:
0
}
var
entity
=
{
$push
:{
messages
:
obj_msg
}
}
var
update_tasks
=
[];
_
.
forEach
(
to_user_ids
,
function
(
id
)
{
update_tasks
.
push
(
function
(
cont
)
{
var
match
=
{
ent_code
:
object
.
ent_code
,
_id
:
id
}
forumUserService
.
updateUserById
(
match
,
entity
,
function
(
err
,
doc
){
if
(
err
)
{
cont
(
err
,
null
);
}
else
{
cont
(
null
,
doc
);
}
});
});
});
then
.
parallel
(
update_tasks
).
then
(
function
(
cont
,
datas
)
{
callback
(
null
,
null
);
}).
fail
(
function
(
err
,
cont
)
{
callback
(
err
,
null
);
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//获取
router
.
get
(
'/message/:id/get'
,
function
(
req
,
res
,
next
)
{
var
id
=
req
.
params
.
id
||
null
;
var
rs
=
{};
if
(
id
)
{
forumMessageService
.
getById
(
id
,
function
(
err
,
entity
){
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
rs
.
data
=
entity
;
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//删除
router
.
post
(
'/message/:id/delete'
,
function
(
req
,
res
,
next
)
{
var
msgID
=
req
.
params
.
id
;
var
ent_code
=
req
.
session
.
user
.
ent_code
;
if
(
msgID
){
async
.
waterfall
([
function
(
callback
)
{
//获取用户IDs
var
q
=
{
ent_code
:
ent_code
,
_id
:
msgID
}
forumMessageService
.
getMessageToNotPage
(
q
,
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
result
);
}
});
},
function
(
userIDs
,
callback
)
{
//更新用户消息
var
entity
=
{
$pull
:
{
'messages'
:
{
msg
:
msgID
}
}
}
var
pull_tasks
=
[];
_
.
forEach
(
userIDs
,
function
(
id
)
{
pull_tasks
.
push
(
function
(
cont
)
{
var
match
=
{
ent_code
:
ent_code
,
_id
:
id
}
forumUserService
.
updateUserById
(
match
,
entity
,
function
(
err
,
doc
){
if
(
err
)
{
cont
(
err
,
null
);
}
else
{
cont
(
null
,
doc
);
}
});
});
});
then
.
parallel
(
pull_tasks
).
then
(
function
(
cont
,
datas
)
{
callback
(
null
,
null
);
}).
fail
(
function
(
err
,
cont
)
{
callback
(
err
,
null
);
});
},
function
(
message_id
,
callback
)
{
//删除消息
forumMessageService
.
deleteById
(
msgID
,
function
(
err
,
entity
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//更新
router
.
post
(
'/message/:id/update'
,
function
(
req
,
res
,
next
)
{
var
id
=
req
.
params
.
id
;
var
entity
=
req
.
body
;
if
(
id
&&
entity
){
forumMessageService
.
update
({
_id
:
id
},
entity
,
function
(
err
,
entity
){
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//查询列表
router
.
get
(
'/message/searchList'
,
function
(
req
,
res
,
next
)
{
var
pageNo
=
req
.
query
.
pageNo
||
1
,
pageSize
=
req
.
query
.
pageSize
||
10
,
ent_code
=
req
.
session
.
user
.
ent_code
,
status
=
req
.
query
.
status
||
null
;
//查询用户条件
var
q
=
{
ent_code
:
ent_code
}
if
(
status
){
q
.
status
=
Number
(
status
);
}
forumMessageService
.
getAll
(
q
,
pageNo
,
pageSize
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
_
.
assign
(
result
,
returnCode
.
SUCCESS
));
}
});
});
//获取消息的用户列表
router
.
get
(
'/message/:id/userList'
,
function
(
req
,
res
,
next
)
{
var
pageNo
=
req
.
query
.
pageNo
||
1
,
pageSize
=
req
.
query
.
pageSize
||
10
,
id
=
req
.
params
.
id
,
ent_code
=
req
.
session
.
user
.
ent_code
;
if
(
id
){
//查询用户条件
var
q
=
{
ent_code
:
ent_code
,
_id
:
id
}
forumMessageService
.
getMessageTo
(
q
,
pageNo
,
pageSize
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
_
.
assign
(
result
,
returnCode
.
SUCCESS
));
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
\ No newline at end of file
app/controllers/mobile/forumMessage.js
0 → 100644
View file @
b3ee42cc
'use strict'
;
var
express
=
require
(
'express'
),
router
=
express
.
Router
(),
returnCode
=
require
(
'../../utils/returnCode'
),
moment
=
require
(
'moment'
),
_
=
require
(
'lodash'
),
then
=
require
(
'thenjs'
);
var
forumUserService
=
require
(
'../../service/forumUserService'
);
var
forumMessageService
=
require
(
'../../service/forumMessageService'
);
var
async
=
require
(
'async'
);
var
user
=
require
(
'../../utils/user'
);
module
.
exports
=
function
(
app
)
{
app
.
use
(
'/v1/forum'
,
router
);
};
//分页用户查询消息
router
.
get
(
'/message/searchMesage'
,
function
(
req
,
res
,
next
)
{
//参数
var
pageNo
=
req
.
query
.
pageNo
||
1
,
pageSize
=
req
.
query
.
pageSize
||
10
,
from
=
user
.
getMobileUser
(
req
),
ent_code
=
req
.
session
.
user
.
ent_code
;
async
.
waterfall
([
function
(
callback
)
{
//获取消息列表
var
q
=
{
ent_code
:
ent_code
,
_id
:
from
}
var
status
=
2
;
//过滤的状态,2 用户自己屏蔽的消息
forumMessageService
.
getMessages
(
q
,
status
,
pageNo
,
pageSize
,
function
(
err
,
total
,
messages
){
if
(
err
){
callback
(
err
,
null
,
null
);
}
else
{
callback
(
null
,
total
,
messages
);
}
});
},
function
(
total
,
messages
,
callback
)
{
var
getMessage_tasks
=
[];
_
.
forEach
(
messages
,
function
(
message
,
key
)
{
getMessage_tasks
.
push
(
function
(
cont
)
{
forumMessageService
.
getByIdWithSelect
(
message
.
msg
,
function
(
err
,
doc
){
if
(
err
)
{
cont
(
err
,
null
);
}
else
{
if
(
messages
[
key
].
toObject
)
{
messages
[
key
]
=
messages
[
key
].
toObject
();
}
messages
[
key
].
msg
=
doc
;
cont
(
null
,
null
);
}
});
});
});
then
.
parallel
(
getMessage_tasks
).
then
(
function
(
cont
,
datas
)
{
callback
(
null
,
total
,
messages
);
}).
fail
(
function
(
err
,
cont
)
{
callback
(
err
,
null
,
null
);
});
}
],
function
(
err
,
total
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
obj
=
{};
obj
.
total
=
total
;
obj
.
pageNo
=
pageNo
;
obj
.
pageSize
=
pageSize
;
obj
.
items
=
result
;
res
.
json
(
_
.
assign
(
obj
,
returnCode
.
SUCCESS
));
}
});
});
//读取单条消息
router
.
get
(
'/message/:mid/get'
,
function
(
req
,
res
,
next
)
{
//消息参数
var
mid
=
req
.
params
.
mid
||
null
;
var
userID
=
user
.
getMobileUser
(
req
);
if
(
mid
){
var
condition
=
{
_id
:
mid
}
async
.
parallel
([
function
(
cb
)
{
//获取消息
forumMessageService
.
getByIdWithSelect
(
condition
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
cb
(
err
,
null
);
}
else
{
cb
(
null
,
result
);
}
});
},
function
(
cb
)
{
//更新用户的消息状态为未读
forumMessageService
.
updateUserMessageStatus
({
_id
:
userID
},
mid
,
1
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
cb
(
err
,
null
);
}
else
{
cb
(
null
,
result
);
}
});
}
],
function
(
err
,
results
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
_
.
assign
(
results
[
0
],
returnCode
.
SUCCESS
));
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//读取用户未读消息
router
.
get
(
'/message/unReadMsg'
,
function
(
req
,
res
,
next
)
{
//消息参数
var
userID
=
user
.
getMobileUser
(
req
);
if
(
userID
){
var
condition
=
{
_id
:
userID
}
forumMessageService
.
countUnReadMessage
(
condition
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
rs
=
{
data
:
result
}
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//用户把消息改成删除(修改状态)
router
.
post
(
'/message/:mid/unShowMsg'
,
function
(
req
,
res
,
next
)
{
//消息参数
var
mid
=
req
.
params
.
mid
||
null
;
var
userID
=
user
.
getMobileUser
(
req
);
if
(
mid
&&
userID
){
//更新用户的消息状态为未读
forumMessageService
.
updateUserMessageStatus
({
_id
:
userID
},
mid
,
2
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
\ No newline at end of file
app/models/forumMessage.js
0 → 100644
View file @
b3ee42cc
'use strict'
;
var
mongoose
=
require
(
'mongoose'
),
Schema
=
mongoose
.
Schema
;
//消息
var
ForumMessageSchema
=
new
Schema
({
ent_code
:
{
type
:
Number
,
require
:
true
,
index
:
true
},
from
:
{
//发消息者
type
:
Schema
.
Types
.
ObjectId
,
require
:
true
,
index
:
true
,
ref
:
'ForumUser'
},
to
:
[{
//收消息者
type
:
Schema
.
Types
.
ObjectId
,
require
:
true
,
index
:
true
,
ref
:
'ForumUser'
}],
title
:
{
//标题
type
:
String
,
require
:
true
},
type
:{
//类型
type
:
Number
,
require
:
false
},
content
:
{
//话题内容
type
:
String
},
status
:
{
//状态,0显示,1屏蔽
type
:
Number
,
require
:
true
,
default
:
0
},
created
:
{
type
:
Date
,
required
:
true
,
default
:
Date
.
now
}
},
{
'collection'
:
'pisns_forum_message'
});
module
.
exports
=
mongoose
.
model
(
'ForumMessage'
,
ForumMessageSchema
);
\ No newline at end of file
app/models/forumUser.js
View file @
b3ee42cc
...
...
@@ -2,6 +2,20 @@
var
mongoose
=
require
(
'mongoose'
),
Schema
=
mongoose
.
Schema
;
//消息封装
var
subMsgSchema
=
mongoose
.
Schema
({
msg
:
{
//消息
type
:
Schema
.
Types
.
ObjectId
,
ref
:
'ForumMessage'
},
status
:
{
//状态,0未读,1已读, 2用户屏蔽
type
:
Number
,
require
:
true
,
default
:
0
}
},{
_id
:
true
});
//论坛用户
var
ForumUserSchema
=
new
Schema
({
ent_code
:
{
...
...
@@ -72,6 +86,7 @@ var ForumUserSchema = new Schema({
type
:
Schema
.
Types
.
ObjectId
,
ref
:
'ForumThread'
}],
messages
:
[
subMsgSchema
],
created
:
{
type
:
Date
,
required
:
true
,
...
...
app/service/forumMessageService.js
0 → 100644
View file @
b3ee42cc
'use strict'
;
var
mongoose
=
require
(
'mongoose'
);
var
ForumMessage
=
mongoose
.
model
(
'ForumMessage'
);
var
ForumUser
=
mongoose
.
model
(
'ForumUser'
);
var
_
=
require
(
'lodash'
);
//创建
exports
.
create
=
function
(
entity
,
callback
){
var
forum
=
new
ForumMessage
(
entity
);
forum
.
save
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
};
//根据ID获取
exports
.
getById
=
function
(
tid
,
callback
){
ForumMessage
.
findById
(
tid
,
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
};
//根据条件更新
exports
.
update
=
function
(
condition
,
entity
,
callback
){
ForumMessage
.
update
(
condition
,
entity
,
null
,
function
(
err
,
result
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
};
//根据ID删除标签
exports
.
deleteById
=
function
(
tid
,
callback
){
ForumMessage
.
remove
({
_id
:
tid
},
function
(
err
,
result
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
};
//获取消息and更新状态为已读
exports
.
findOneAndUpdate
=
function
(
condition
,
entity
,
callback
){
ForumMessage
.
findOneAndUpdate
(
condition
,
entity
,
null
,
function
(
err
,
result
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
result
);
}
});
};
//获取数量
function
countAll
(
conditions
,
callback
)
{
ForumMessage
.
count
(
conditions
,
function
(
err
,
count
)
{
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
count
);
}
});
}
//分页查询
exports
.
getAll
=
function
(
conditions
,
pageNo
,
pageSize
,
callback
)
{
countAll
(
conditions
,
function
(
err
,
count
){
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
var
skip
=
(
pageNo
-
1
)
*
pageSize
;
var
limit
=
count
-
skip
>
pageSize
?
pageSize
:
(
count
-
skip
);
ForumMessage
.
find
(
conditions
).
skip
(
skip
).
limit
(
limit
).
sort
({
created
:
-
1
}).
exec
(
function
(
err
,
docs
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
var
obj
=
{};
obj
.
total
=
count
;
obj
.
pageNo
=
pageNo
;
obj
.
pageSize
=
pageSize
;
obj
.
items
=
docs
;
callback
(
null
,
obj
);
}
});
}
});
};
//获取数量
function
countTo
(
conditions
,
callback
)
{
ForumMessage
.
findOne
(
conditions
).
select
(
'to'
).
exec
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
0
);
}
else
{
var
count
=
doc
?
doc
.
to
.
length
:
0
;
callback
(
null
,
count
);
}
});
}
//分页查询
exports
.
getMessageTo
=
function
(
conditions
,
pageNo
,
pageSize
,
callback
)
{
countTo
(
conditions
,
function
(
err
,
count
){
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
var
skip
=
(
pageNo
-
1
)
*
pageSize
;
var
limit
=
count
-
skip
>
pageSize
?
pageSize
:
(
count
-
skip
);
ForumMessage
.
findOne
(
conditions
).
populate
({
path
:
'to'
,
options
:
{
skip
:
skip
,
limit
:
limit
,
sort
:
{
created
:
-
1
}
}
}).
select
(
'to'
).
exec
(
function
(
err
,
docs
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
var
obj
=
{};
obj
.
total
=
count
;
obj
.
pageNo
=
pageNo
;
obj
.
pageSize
=
pageSize
;
obj
.
items
=
docs
.
to
;
callback
(
null
,
obj
);
}
});
}
});
};
//不分页查询To
exports
.
getMessageToNotPage
=
function
(
conditions
,
callback
)
{
ForumMessage
.
findOne
(
conditions
).
select
(
'to'
).
exec
(
function
(
err
,
docs
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
docs
.
to
);
}
});
};
//-----------------------------前端 start-------------------------//
//获取用户的消息(不联查消息实体)
function
getUserMessages
(
conditions
,
callback
)
{
ForumUser
.
findOne
(
conditions
).
select
(
'messages'
).
exec
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
.
messages
);
}
});
}
//获取消息数组
exports
.
getMessages
=
function
(
conditions
,
status
,
pageNo
,
pageSize
,
callback
)
{
ForumUser
.
findOne
(
conditions
).
select
(
'messages'
).
exec
(
function
(
err
,
docs
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
,
null
);
}
else
{
var
messages
=
[];
for
(
var
i
=
docs
.
messages
.
length
-
1
;
i
>=
0
;
i
--
)
{
if
(
docs
.
messages
[
i
].
status
!=
status
){
messages
.
push
(
docs
.
messages
[
i
]);
}
};
var
total
=
messages
.
length
;
var
skip
=
(
pageNo
-
1
)
*
pageSize
;
var
limit
=
total
-
skip
>
pageSize
?
pageSize
:
(
total
-
skip
);
//获取分页后的数组
messages
=
messages
.
slice
(
skip
,
limit
);
callback
(
null
,
total
,
messages
);
}
});
};
//更新用户消息状态为已读
exports
.
updateUserMessageStatus
=
function
(
condition
,
msgID
,
status
,
callback
)
{
getUserMessages
(
condition
,
function
(
err
,
docs
){
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
for
(
var
i
in
docs
){
if
(
docs
[
i
].
msg
==
msgID
)
{
if
(
docs
[
i
].
toObject
)
{
docs
[
i
]
=
docs
[
i
].
toObject
();
}
docs
[
i
].
status
=
status
;
break
;
}
}
//更新用户
ForumUser
.
update
(
condition
,
{
messages
:
docs
},
null
,
function
(
err
,
result
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
}
});
};
//前端根据ID获取
exports
.
getByIdWithSelect
=
function
(
mid
,
callback
){
ForumMessage
.
findOne
({
_id
:
mid
}).
select
(
'_id from title content created status'
).
exec
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
};
//获取未读消息数量
exports
.
countUnReadMessage
=
function
(
conditions
,
callback
)
{
ForumUser
.
findOne
(
conditions
).
populate
({
path
:
'messages.msg'
,
match
:
{
'status'
:
0
},
select
:
'status'
}).
select
(
'messages'
).
exec
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
0
);
}
else
{
var
count
=
0
;
_
.
forEach
(
doc
.
messages
,
function
(
msg
,
key
)
{
if
(
msg
.
msg
&&
msg
.
status
==
0
){
count
++
;
}
});
callback
(
null
,
count
);
}
});
};
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