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
df044b44
Commit
df044b44
authored
Oct 08, 2015
by
陈家荣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
导出评论数据
parent
8e43c323
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
153 additions
and
100 deletions
+153
-100
forumThread.js
app/controllers/admin/forumThread.js
+142
-100
forumPraiseLogService.js
app/service/forumPraiseLogService.js
+11
-0
No files found.
app/controllers/admin/forumThread.js
View file @
df044b44
...
...
@@ -3,7 +3,9 @@ var express = require('express'),
router
=
express
.
Router
(),
returnCode
=
require
(
'../../utils/returnCode'
),
_
=
require
(
'lodash'
),
then
=
require
(
'thenjs'
);
then
=
require
(
'thenjs'
),
moment
=
require
(
'moment'
),
nodeExcel
=
require
(
'excel-export'
);
var
mongoose
=
require
(
'mongoose'
);
var
ForumThread
=
mongoose
.
model
(
'ForumThread'
),
ForumPVLog
=
mongoose
.
model
(
'ForumPVLog'
);
...
...
@@ -43,6 +45,11 @@ var getClientIP = function(req) {
return
ipAddress
;
};
//格式化日期 (格式:年-月-日)
function
date_format
(
date
)
{
return
moment
(
date
).
format
(
'YYYY-MM-DD hh:mm:ss'
);
}
//新增论坛文章
router
.
post
(
'/thread/create'
,
function
(
req
,
res
,
next
)
{
var
rs
=
{},
...
...
@@ -1011,102 +1018,137 @@ router.get('/thread/:tid/spreadchain', function(req, res, next) {
});
//给以前的已一级评论添加楼层
// router.get('/thread/updateConmentFloor', function(req, res, next) {
// res.json(returnCode.SUCCESS);
// var conditions = {
// // ent_code: ent_code
// };
// async.waterfall([
// function(callback) { // 查找文章的总数
// forumThreadService.getAllCountByFid(conditions,function(err, count){
// if(err){
// callback(err, null);
// }else{
// callback(null, count);
// }
// });
// },
// function(count, callback) { //查找所有文章
// forumThreadService.getAllThreadByFidNoLimit(conditions, 1, count, null, function(err, datas){
// if(err){
// callback(err, null);
// }else{
// callback(null, datas);
// }
// });
// }
// ], function (err, result) {
// var asyncTasks = [];
// result.items.forEach(function(doc, t) { //遍历文章
// asyncTasks.push(function(callback2) {
// //获取文章所有一级评论
// var conditions = {
// thread: doc._id,
// level: '1'
// };
// async.waterfall([
// function(callback) {
// //统计评论数
// forumCommentService.count(conditions, function(err, count) {
// if (err) {
// console.log(err);
// callback(err, null);
// } else {
// callback(null, count);
// }
// });
// },
// function(count, callback) {
// //获取所有评论
// forumCommentService.getAllComment(conditions, 1, count, function(err, results) {
// if (err) {
// console.log(err);
// callback(err, null);
// } else {
// callback(null, results.items);
// }
// });
// },
// function(comments, callback) {
// comments = _.sortBy(comments, function(comment){
// return comment.created;
// });
// if(comments.length > 0){
// // 给每一个评论添加楼层
// comments.forEach(function(comment,i){
// forumCommentService.updateCommentFloorById(comment._id, i + 1, function(err,docc){
// if (err) {
// console.error(err);
// // callback(err,null);
// } else {
// console.log('update '+i+1+' comment');
// // callback(null,null);
// }
// })
// });
// }
// }
// ], function(err, resultsss) {
// if (err) {
// console.error(err);
// // callback(err,null);
// } else {
// // callback2(null,null);
// }
// });
// });
// });
// async.parallel(asyncTasks, function(err, results) {
// if (err) {
// console.error(err);
// res.json(returnCode.BUSY);
// } else {
// // console.log("------------update done!-------------");
// res.json(returnCode.SUCCESS);
// }
// });
// });
// });
// 导出文章评论内容
router
.
get
(
'/thread/:tid/exportComments'
,
function
(
req
,
res
,
next
)
{
var
tid
=
req
.
params
.
tid
||
null
;
// var ent_code = req.query.ent_code;
if
(
req
.
query
.
ent_code
){
var
ent_code
=
req
.
query
.
ent_code
;
}
else
{
var
ent_code
=
100056
;
}
if
(
tid
){
var
conditions
=
{
ent_code
:
ent_code
,
thread
:
tid
};
//查询所有评论
forumCommentService
.
getAllCommentByThread
(
conditions
,
function
(
err
,
results
)
{
if
(
err
)
{
console
.
log
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
//查询每个一级评论点赞
var
asyncTasks
=
[];
_
.
forEach
(
results
,
function
(
e
)
{
asyncTasks
.
push
(
function
(
cb
)
{
if
(
e
.
level
!=
1
)
{
cb
(
null
,
e
);
}
else
{
var
con
=
{
ent_code
:
ent_code
,
thread
:
tid
,
type
:
2
,
comment
:
e
.
_id
}
forumPraiseLogService
.
queryPraiseLogV2
(
con
,
function
(
err
,
results
){
if
(
err
){
console
.
log
(
err
);
cb
(
null
,
e
);
}
else
{
if
(
results
){
var
praiseNames
=
[];
_
.
forEach
(
results
,
function
(
e2
)
{
praiseNames
.
push
(
e2
.
user
.
nickName
);
});
e
.
praiseNames
=
praiseNames
;
e
.
praiseCount
=
results
.
length
;
}
cb
(
null
,
e
);
}
});
}
});
});
async
.
parallel
(
asyncTasks
,
function
(
err
,
items
)
{
//表头
var
conf
=
{};
conf
.
cols
=
[
{
caption
:
'楼层'
,
type
:
'number'
},
{
caption
:
'发布时间'
,
type
:
'Date'
},
{
caption
:
'会员名'
,
type
:
'string'
},
{
caption
:
'内容'
,
type
:
'string'
},
{
caption
:
'点赞数'
,
type
:
'number'
},
{
caption
:
'点赞人'
,
type
:
'string'
},
];
//内容
var
rows
=
[];
for
(
var
i
=
items
.
length
-
1
;
i
>=
0
;
i
--
)
{
var
comment
=
items
[
i
];
var
floor
=
comment
.
floor
;
var
time
=
date_format
(
comment
.
created
);
var
nickName
=
comment
.
from
.
nickName
;
var
content
=
comment
.
content
;
var
praiseCount
=
comment
.
praiseCount
||
0
;
var
praiseNames
=
''
;
if
(
comment
.
praiseNames
){
praiseNames
=
comment
.
praiseNames
.
toString
();
}
var
this_row
=
[
floor
,
time
,
nickName
,
content
,
praiseCount
,
praiseNames
];
rows
.
push
(
this_row
);
if
(
comment
.
comments
.
length
>
0
){
for
(
var
i
=
comment
.
comments
.
length
-
1
;
i
>=
0
;
i
--
)
{
var
sub_comment
=
comment
.
comments
[
i
];
var
floor
=
sub_comment
.
floor
;
var
time
=
date_format
(
sub_comment
.
created
);
var
nickName
=
sub_comment
.
from
.
nickName
||
''
;
var
content
=
sub_comment
.
content
||
''
;
var
praiseCount
=
sub_comment
.
praiseCount
||
0
;
var
praiseNames
=
''
;
if
(
comment
.
praiseNames
){
praiseNames
=
comment
.
praiseNames
.
toString
();
}
var
this_row
=
[
null
,
time
,
nickName
,
content
,
praiseCount
,
praiseNames
];
rows
.
push
(
this_row
);
// console.log(time);
// console.log(nickName);
// console.log(content);
// console.log(praiseNames);
// console.log(praiseCount);
};
}
};
conf
.
rows
=
rows
;
var
result
=
nodeExcel
.
execute
(
conf
);
res
.
setHeader
(
'Content-Type'
,
'application/vnd.ms-excel'
);
res
.
setHeader
(
'Content-Disposition'
,
'attachment; filename=commentsReport.xlsx'
);
res
.
end
(
result
,
'binary'
);
});
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
app/service/forumPraiseLogService.js
View file @
df044b44
...
...
@@ -32,3 +32,14 @@ exports.queryPraiseLog=function(tid,cid,user,type,callback){
}
});
};
exports
.
queryPraiseLogV2
=
function
(
conditions
,
callback
){
ForumPraiseLog
.
find
(
conditions
).
populate
(
'user'
).
exec
(
function
(
err
,
docs
){
if
(
err
){
callback
(
err
,
null
);
}
else
{
callback
(
null
,
docs
);
}
});
};
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