Commit df044b44 authored by 陈家荣's avatar 陈家荣

导出评论数据

parent 8e43c323
...@@ -3,7 +3,9 @@ var express = require('express'), ...@@ -3,7 +3,9 @@ var express = require('express'),
router = express.Router(), router = express.Router(),
returnCode = require('../../utils/returnCode'), returnCode = require('../../utils/returnCode'),
_ = require('lodash'), _ = require('lodash'),
then = require('thenjs'); then = require('thenjs'),
moment = require('moment'),
nodeExcel = require('excel-export');
var mongoose = require('mongoose'); var mongoose = require('mongoose');
var ForumThread = mongoose.model('ForumThread'), var ForumThread = mongoose.model('ForumThread'),
ForumPVLog = mongoose.model('ForumPVLog'); ForumPVLog = mongoose.model('ForumPVLog');
...@@ -43,6 +45,11 @@ var getClientIP = function(req) { ...@@ -43,6 +45,11 @@ var getClientIP = function(req) {
return ipAddress; return ipAddress;
}; };
//格式化日期 (格式:年-月-日)
function date_format(date) {
return moment(date).format('YYYY-MM-DD hh:mm:ss');
}
//新增论坛文章 //新增论坛文章
router.post('/thread/create', function(req, res, next) { router.post('/thread/create', function(req, res, next) {
var rs = {}, var rs = {},
...@@ -1011,102 +1018,137 @@ router.get('/thread/:tid/spreadchain', function(req, res, next) { ...@@ -1011,102 +1018,137 @@ router.get('/thread/:tid/spreadchain', function(req, res, next) {
}); });
//给以前的已一级评论添加楼层 // 导出文章评论内容
// router.get('/thread/updateConmentFloor', function(req, res, next) { router.get('/thread/:tid/exportComments', function(req, res, next) {
// res.json(returnCode.SUCCESS); var tid = req.params.tid || null;
// var conditions = {
// // ent_code: ent_code // var ent_code = req.query.ent_code;
// }; if(req.query.ent_code){
// async.waterfall([ var ent_code = req.query.ent_code;
// function(callback) { // 查找文章的总数 }else{
// forumThreadService.getAllCountByFid(conditions,function(err, count){ var ent_code = 100056;
// if(err){ }
// callback(err, null);
// }else{
// callback(null, count); if(tid){
// }
// }); var conditions = {
// }, ent_code: ent_code,
// function(count, callback) { //查找所有文章 thread: tid
// forumThreadService.getAllThreadByFidNoLimit(conditions, 1, count, null, function(err, datas){ };
// if(err){
// callback(err, null); //查询所有评论
// }else{ forumCommentService.getAllCommentByThread(conditions, function(err, results) {
// callback(null, datas); if (err) {
// } console.log(err);
// }); res.json(returnCode.BUSY);
// } } else {
// ], function (err, result) { //查询每个一级评论点赞
// var asyncTasks = []; var asyncTasks = [];
// result.items.forEach(function(doc, t) { //遍历文章 _.forEach(results, function(e) {
// asyncTasks.push(function(callback2) { asyncTasks.push(function(cb) {
// //获取文章所有一级评论 if (e.level != 1) {
// var conditions = { cb(null, e);
// thread: doc._id, } else {
// level: '1' var con = {
// }; ent_code:ent_code,
// async.waterfall([ thread:tid,
// function(callback) { type:2,
// //统计评论数 comment:e._id
// forumCommentService.count(conditions, function(err, count) { }
// if (err) {
// console.log(err); forumPraiseLogService.queryPraiseLogV2(con, function(err, results){
// callback(err, null); if(err){
// } else { console.log(err);
// callback(null, count); cb(null, e);
// } }else{
// }); if(results){
// }, var praiseNames = [];
// function(count, callback) { _.forEach(results, function(e2) {
// //获取所有评论 praiseNames.push(e2.user.nickName);
// forumCommentService.getAllComment(conditions, 1, count, function(err, results) { });
// if (err) { e.praiseNames = praiseNames;
// console.log(err); e.praiseCount = results.length;
// callback(err, null); }
// } else { cb(null, e);
// callback(null, results.items); }
// } });
// }); }
// }, });
// function(comments, callback) { });
// comments = _.sortBy(comments, function(comment){ async.parallel(asyncTasks, function(err, items) {
// return comment.created;
// }); //表头
// if(comments.length > 0){ var conf = {};
// // 给每一个评论添加楼层 conf.cols = [
// comments.forEach(function(comment,i){ {caption:'楼层', type:'number'},
// forumCommentService.updateCommentFloorById(comment._id, i + 1, function(err,docc){ {caption:'发布时间', type:'Date'},
// if (err) { {caption:'会员名', type:'string'},
// console.error(err); {caption:'内容', type:'string'},
// // callback(err,null); {caption:'点赞数', type:'number'},
// } else { {caption:'点赞人', type:'string'},
// console.log('update '+i+1+' comment'); ];
// // callback(null,null);
// } //内容
var rows = [];
// })
// }); for (var i = items.length - 1; i >= 0; i--) {
// } var comment = items[i];
// }
// ], function(err, resultsss) { var floor = comment.floor;
// if (err) { var time = date_format(comment.created);
// console.error(err); var nickName = comment.from.nickName;
// // callback(err,null); var content = comment.content;
// } else { var praiseCount = comment.praiseCount || 0;
// // callback2(null,null); var praiseNames = '';
// } if(comment.praiseNames){
// }); praiseNames = comment.praiseNames.toString();
// }); }
// }); var this_row = [floor, time, nickName, content, praiseCount, praiseNames];
// async.parallel(asyncTasks, function(err, results) { rows.push(this_row);
// if (err) {
// console.error(err); if(comment.comments.length > 0){
// res.json(returnCode.BUSY); for (var i = comment.comments.length - 1; i >= 0; i--) {
// } else { var sub_comment = comment.comments[i];
// // console.log("------------update done!-------------");
// res.json(returnCode.SUCCESS); 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);
}
});
...@@ -32,3 +32,14 @@ exports.queryPraiseLog=function(tid,cid,user,type,callback){ ...@@ -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);
}
});
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment