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
e93dc73f
Commit
e93dc73f
authored
Jun 24, 2016
by
strong
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit '
32dbf692
'
parents
c02906a1
32dbf692
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
531 additions
and
115 deletions
+531
-115
forumThread.js
app/controllers/mobile/forumThread.js
+284
-115
forumCommentService.js
app/service/forumCommentService.js
+96
-0
forumThreadService.js
app/service/forumThreadService.js
+147
-0
returnCode.js
app/utils/returnCode.js
+4
-0
No files found.
app/controllers/mobile/forumThread.js
View file @
e93dc73f
...
@@ -627,6 +627,100 @@ router.get('/thread/:tid/get', function(req, res, next) {
...
@@ -627,6 +627,100 @@ router.get('/thread/:tid/get', function(req, res, next) {
}
}
});
});
//获取文章,二级评论只查询三条
router
.
get
(
'/thread/:tid/getV2'
,
function
(
req
,
res
,
next
)
{
var
tid
=
req
.
params
.
tid
||
null
;
var
ent_code
=
req
.
session
.
user
.
ent_code
;
if
(
tid
)
{
async
.
waterfall
([
function
(
callback
)
{
forumThreadService
.
getThreadByIdWithThree2Comment
(
tid
,
function
(
err
,
thread
)
{
//文章类型 1、文章 2、话题 3、照片墙
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
thread
);
}
if
(
thread
&&
thread
.
info
){
var
info_id
=
thread
.
info
.
_id
,
pid
=
thread
.
pid
,
source
=
req
.
session
.
mobileForumUser
.
source
;
if
(
thread
.
type
==
1
&&
thread
.
level
==
1
)
{
httpService
.
createLog
(
req
,
source
,
info_id
,
3
,
1
,
tid
);
}
else
if
(
thread
.
type
==
1
&&
thread
.
level
==
2
)
{
httpService
.
createLog
(
req
,
source
,
info_id
,
3
,
4
,
tid
,
pid
);
}
else
if
(
thread
.
type
==
2
&&
thread
.
level
==
1
)
{
httpService
.
createLog
(
req
,
source
,
info_id
,
3
,
2
,
tid
);
}
else
if
(
thread
.
type
==
3
&&
thread
.
level
==
1
)
{
httpService
.
createLog
(
req
,
source
,
info_id
,
3
,
3
,
tid
);
}
}
});
forumThreadService
.
updateThreadPvCount
(
tid
,
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
}
});
},
],
function
(
err
,
thread
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
if
(
thread
.
toObject
)
{
thread
=
thread
.
toObject
();
}
var
threads
=
[];
threads
.
push
(
thread
);
util
.
loadLevel
(
req
.
session
.
user
.
ent_code
,
threads
,
function
()
{
if
(
threads
&&
threads
.
length
>
0
)
{
thread
=
threads
[
0
];
}
if
(
thread
.
type
==
2
&&
thread
.
level
==
1
&&
thread
.
subThreads
.
items
.
length
>
0
)
{
util
.
loadLevel
(
req
.
session
.
user
.
ent_code
,
thread
.
subThreads
.
items
,
function
()
{
redisPraiseLog
.
get
(
ent_code
,
user
.
getMobileUser
(
req
),
'thread'
,
function
(
error
,
docs
)
{
if
(
thread
.
toObject
)
{
thread
=
thread
.
toObject
();
}
thread
.
isPraise
=
false
;
for
(
var
k
=
docs
.
length
-
1
;
k
>=
0
;
k
--
)
{
if
(
thread
.
_id
==
docs
[
k
])
{
thread
.
isPraise
=
true
;
break
;
}
};
var
rs
=
{};
rs
.
data
=
thread
;
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
});
});
}
else
{
redisPraiseLog
.
get
(
ent_code
,
user
.
getMobileUser
(
req
),
'thread'
,
function
(
error
,
docs
)
{
if
(
thread
.
toObject
)
{
thread
=
thread
.
toObject
();
}
thread
.
isPraise
=
false
;
for
(
var
k
=
docs
.
length
-
1
;
k
>=
0
;
k
--
)
{
if
(
thread
.
_id
==
docs
[
k
])
{
thread
.
isPraise
=
true
;
break
;
}
};
var
rs
=
{};
rs
.
data
=
thread
;
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
});
}
});
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//获取文章
//获取文章
router
.
get
(
'/thread/photo/:pid/get'
,
function
(
req
,
res
,
next
)
{
router
.
get
(
'/thread/photo/:pid/get'
,
function
(
req
,
res
,
next
)
{
var
pid
=
req
.
params
.
pid
||
null
,
var
pid
=
req
.
params
.
pid
||
null
,
...
@@ -945,6 +1039,11 @@ router.post('/thread/:tid/comment/create', function(req, res, next) {
...
@@ -945,6 +1039,11 @@ router.post('/thread/:tid/comment/create', function(req, res, next) {
if
(
result
)
{
//有操作权限
if
(
result
)
{
//有操作权限
var
content
=
req
.
body
.
content
;
var
content
=
req
.
body
.
content
;
if
(
content
)
{
//评论不能为空
if
(
content
)
{
//评论不能为空
var
temp_content
=
content
;
temp_content
=
temp_content
.
replace
(
/<img
\/?
.+
?
border="0">/g
,
""
);
if
(
temp_content
.
length
>
500
){
//超出500字数
res
.
json
(
returnCode
.
COMTENT_OVERSTEP
);
}
else
{
//2.获取论坛文章
//2.获取论坛文章
forumThreadService
.
getThreadById
(
tid
,
function
(
err
,
thread
)
{
forumThreadService
.
getThreadById
(
tid
,
function
(
err
,
thread
)
{
if
(
err
)
{
if
(
err
)
{
...
@@ -1074,6 +1173,7 @@ router.post('/thread/:tid/comment/create', function(req, res, next) {
...
@@ -1074,6 +1173,7 @@ router.post('/thread/:tid/comment/create', function(req, res, next) {
});
});
}
}
});
});
}
}
else
{
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
}
...
@@ -1542,6 +1642,51 @@ router.get('/thread/:tid/comment/list/all', function(req, res, next) {
...
@@ -1542,6 +1642,51 @@ router.get('/thread/:tid/comment/list/all', function(req, res, next) {
}
}
});
});
router
.
get
(
'/thread/:tid/comment/list/allV2'
,
function
(
req
,
res
,
next
)
{
var
tid
=
req
.
params
.
tid
||
null
;
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
tid
=
req
.
params
.
tid
||
null
;
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
pageSize
=
req
.
query
.
pageSize
||
10
;
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
conditions
=
{
ent_code
:
ent_code
,
thread
:
tid
,
level
:
'1'
};
if
(
tid
)
{
//获取最新5条评论
forumCommentService
.
getAllComment_allstatus_v2
(
conditions
,
pageNo
,
pageSize
,
function
(
err
,
results
)
{
if
(
err
)
{
console
.
log
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
//判断是否已经点赞
util
.
loadLevel
(
req
.
session
.
user
.
ent_code
,
results
.
items
,
function
()
{
redisPraiseLog
.
get
(
ent_code
,
user
.
getMobileUser
(
req
),
'comment'
,
function
(
error
,
docs
)
{
_
.
forEach
(
results
.
items
,
function
(
d
,
i
)
{
if
(
results
.
items
[
i
].
toObject
)
{
results
.
items
[
i
]
=
results
.
items
[
i
].
toObject
();
}
results
.
items
[
i
].
isPraise
=
false
;
for
(
var
k
=
docs
.
length
-
1
;
k
>=
0
;
k
--
)
{
if
(
results
.
items
[
i
].
_id
==
docs
[
k
])
{
results
.
items
[
i
].
isPraise
=
true
;
break
;
}
};
});
res
.
json
(
_
.
assign
(
results
,
returnCode
.
SUCCESS
));
});
});
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//不过滤掉已删除的二级评论
//不过滤掉已删除的二级评论
router
.
get
(
'/thread/:tid/comment/list/byFloor/all'
,
function
(
req
,
res
,
next
)
{
router
.
get
(
'/thread/:tid/comment/list/byFloor/all'
,
function
(
req
,
res
,
next
)
{
...
@@ -2378,3 +2523,27 @@ router.get('/thread/getUserFavorAllThread', function(req, res, next) {
...
@@ -2378,3 +2523,27 @@ router.get('/thread/getUserFavorAllThread', function(req, res, next) {
}
}
});
});
});
});
//获取一级评论详情以及二级评论列表
router
.
get
(
'/thread/comment/:cid/get'
,
function
(
req
,
res
,
next
)
{
var
userId
=
user
.
getMobileUser
(
req
);
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
cid
=
req
.
params
.
cid
;
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
pageSize
=
req
.
query
.
pageSize
||
10
;
var
q
=
{
ent_code
:
ent_code
,
_id
:
cid
};
forumCommentService
.
getCommentByIdWhitChirdentComment
(
q
,
pageNo
,
pageSize
,
function
(
err
,
result
){
if
(
err
||
!
result
){
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
rs
=
{};
rs
.
data
=
result
;
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
});
\ No newline at end of file
app/service/forumCommentService.js
View file @
e93dc73f
...
@@ -192,6 +192,44 @@ exports.getAllComment = function(conditions, pageNo, pageSize, callback) {
...
@@ -192,6 +192,44 @@ exports.getAllComment = function(conditions, pageNo, pageSize, callback) {
});
});
};
};
//获取一级评论列表,二级评论列表查询三条
exports
.
getAllCommentWithThreeeChildrenComment
=
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
);
ForumComment
.
find
(
conditions
,
listCommentFields
).
populate
({
path
:
'from'
,
select
:
'uid mid nickName icon exp honorTitles'
}).
populate
(
'to'
,
'uid mid nickName icon exp'
)
.
populate
({
path
:
'comments'
,
options
:
{
limit
:
3
,
sort
:
'-_id'
,
populate
:
'from to'
}
}).
limit
(
limit
).
skip
(
skip
).
sort
(
'-created'
).
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
populateComment
(
doc
,
callback
)
{
function
populateComment
(
doc
,
callback
)
{
if
(
doc
&&
doc
.
comments
.
length
>
0
)
{
if
(
doc
&&
doc
.
comments
.
length
>
0
)
{
...
@@ -687,6 +725,39 @@ exports.getAllComment_allstatus = function(conditions, pageNo, pageSize, callbac
...
@@ -687,6 +725,39 @@ exports.getAllComment_allstatus = function(conditions, pageNo, pageSize, callbac
});
});
};
};
exports
.
getAllComment_allstatus_v2
=
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
);
ForumComment
.
find
(
conditions
,
listCommentFields
).
populate
(
'from'
,
'uid mid nickName icon exp honorTitles'
).
populate
({
path
:
'comments'
,
options
:
{
limit
:
3
,
sort
:
'-_id'
,
populate
:
'from to'
}
}).
populate
(
'to'
,
'uid mid nickName icon exp'
).
limit
(
limit
).
skip
(
skip
).
sort
(
'-created'
).
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
populateComment_allstatus
(
doc
,
callback
)
{
function
populateComment_allstatus
(
doc
,
callback
)
{
if
(
doc
&&
doc
.
comments
.
length
>
0
)
{
if
(
doc
&&
doc
.
comments
.
length
>
0
)
{
...
@@ -731,3 +802,28 @@ function populateComment_allstatus(doc, callback) {
...
@@ -731,3 +802,28 @@ function populateComment_allstatus(doc, callback) {
callback
(
null
,
null
);
callback
(
null
,
null
);
}
}
}
}
//获取单个评论和子评论
exports
.
getCommentByIdWhitChirdentComment
=
function
(
conditions
,
pageNo
,
pageSize
,
callback
)
{
var
skip
=
(
pageNo
-
1
)
*
pageSize
;
var
limit
=
pageSize
;
ForumComment
.
findOne
(
conditions
,
listCommentFields
).
populate
({
path
:
'from'
,
select
:
'uid mid nickName icon exp honorTitles'
}).
populate
(
'to'
,
'uid mid nickName icon exp'
).
populate
({
path
:
'comments'
,
options
:
{
skip
:
skip
,
limit
:
limit
,
sort
:
'-_id'
,
populate
:
'from to'
}
}).
exec
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
};
\ No newline at end of file
app/service/forumThreadService.js
View file @
e93dc73f
...
@@ -441,6 +441,153 @@ exports.getThreadById = function(tid, callback) {
...
@@ -441,6 +441,153 @@ exports.getThreadById = function(tid, callback) {
}
}
});
});
};
};
//根据ID获取文章,二级评论只查询三条
exports
.
getThreadByIdWithThree2Comment
=
function
(
tid
,
callback
)
{
ForumThread
.
findOne
({
_id
:
tid
}).
populate
({
path
:
'from'
,
select
:
'uid mid nickName icon exp honorTitles'
}).
populate
(
'info'
,
'name icon'
).
populate
(
'share'
).
exec
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
if
(
doc
)
{
async
.
parallel
([
function
(
cb
)
{
if
(
doc
.
type
!==
1
)
{
cb
(
null
,
null
);
return
;
}
var
conditions
=
{
thread
:
tid
,
level
:
'1'
};
forumCommentService
.
getAllCommentWithThreeeChildrenComment
(
conditions
,
1
,
10
,
function
(
err
,
results
)
{
if
(
err
)
{
console
.
log
(
err
);
cb
(
err
,
null
);
}
else
{
cb
(
null
,
results
);
}
});
},
function
(
cb
)
{
//获取话题子文章列表
if
(
doc
.
type
!==
2
)
{
cb
(
null
,
null
);
return
;
}
var
conditions
=
{
pid
:
tid
,
type
:
2
,
status
:
1
};
getAllThreadByFidHelp
(
conditions
,
1
,
10
,
null
,
function
(
err
,
threads
)
{
if
(
err
)
{
console
.
error
(
err
);
cb
(
err
,
null
);
}
else
{
// console.log(threads);
cb
(
null
,
threads
);
}
});
},
function
(
cb
)
{
//获取照片墙最新文章列表
if
(
doc
.
type
!==
3
)
{
cb
(
null
,
null
);
return
;
}
var
conditions
=
{
pid
:
tid
,
type
:
3
,
status
:
1
,
images
:
{
$exists
:
true
,
$not
:
{
$size
:
0
}}
};
getAllThreadByFidHelp
(
conditions
,
1
,
10
,
'-created'
,
function
(
err
,
threads
)
{
if
(
err
)
{
console
.
error
(
err
);
cb
(
err
,
null
);
}
else
{
cb
(
null
,
threads
);
}
});
},
function
(
cb
)
{
//获取照片墙最热文章列表
if
(
doc
.
type
!==
3
)
{
cb
(
null
,
null
);
return
;
}
var
conditions
=
{
pid
:
tid
,
type
:
3
,
status
:
1
,
images
:
{
$exists
:
true
,
$not
:
{
$size
:
0
}}
};
getAllThreadByFidHelp
(
conditions
,
1
,
10
,
'-praise_count'
,
function
(
err
,
threads
)
{
if
(
err
)
{
console
.
error
(
err
);
cb
(
err
,
null
);
}
else
{
cb
(
null
,
threads
);
}
});
},
function
(
cb
)
{
//获取发帖人数
ForumThread
.
aggregate
({
$match
:
{
pid
:
mongoose
.
Types
.
ObjectId
(
tid
)
}
},
{
$group
:
{
_id
:
{
from
:
'$from'
},
count
:
{
$sum
:
1
}
}
},
function
(
err
,
data
)
{
if
(
err
)
{
cb
(
err
,
null
);
}
else
{
cb
(
null
,
data
.
length
);
}
});
}
],
function
(
err
,
results
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
var
thread
=
doc
;
var
comments
=
results
[
0
]
||
[];
var
subThreads
=
results
[
1
]
||
[];
//话题子文章列表
var
latestPhotos
=
results
[
2
]
||
[];
//最新照片墙列表
var
hotPhotos
=
results
[
3
]
||
[];
//最热照片墙列表
var
canyuPeopleCount
=
results
[
4
]
||
0
;
//参与人数
var
threadObj
=
thread
&&
thread
.
toObject
()
||
{};
threadObj
.
comments
=
comments
;
threadObj
.
subThreads
=
subThreads
;
threadObj
.
latestPhotos
=
latestPhotos
;
threadObj
.
hotPhotos
=
hotPhotos
;
threadObj
.
canyuPeopleCount
=
canyuPeopleCount
;
callback
(
null
,
threadObj
);
}
});
}
else
{
callback
(
null
,
{});
}
}
});
};
//根据ID获取文章
//根据ID获取文章
exports
.
getThreadByIdSimple
=
function
(
conditions
,
callback
)
{
exports
.
getThreadByIdSimple
=
function
(
conditions
,
callback
)
{
ForumThread
.
findOne
(
conditions
).
populate
(
'from info share pid'
).
exec
(
function
(
err
,
doc
)
{
ForumThread
.
findOne
(
conditions
).
populate
(
'from info share pid'
).
exec
(
function
(
err
,
doc
)
{
...
...
app/utils/returnCode.js
View file @
e93dc73f
...
@@ -42,6 +42,10 @@ module.exports = {
...
@@ -42,6 +42,10 @@ module.exports = {
errorcode
:
10007
,
errorcode
:
10007
,
errormsg
:
'已被禁言'
errormsg
:
'已被禁言'
},
},
COMTENT_OVERSTEP
:
{
errorcode
:
10008
,
errormsg
:
'内容超出限制'
},
UNCHECK_ERROR
:
function
(
msg
){
UNCHECK_ERROR
:
function
(
msg
){
return
{
return
{
errorcode
:
9999
,
errorcode
:
9999
,
...
...
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