Commit aa700ba2 authored by 陈志良's avatar 陈志良

评论下载

parent e2c8aa70
'use strict'; 'use strict';
//插件
var express = require('express'), 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'), moment = require('moment'),
nodeExcel = require('excel-export'); nodeExcel = require('excel-export'),
var mongoose = require('mongoose'); mongoose = require('mongoose'),
async = require('async');
//模型
var ForumThread = mongoose.model('ForumThread'), var ForumThread = mongoose.model('ForumThread'),
ForumPVLog = mongoose.model('ForumPVLog'); ForumPVLog = mongoose.model('ForumPVLog');
var forumThreadService = require('../../service/forumThreadService'); //服务
var forumRolePermissionService = require('../../service/forumRolePermissionService'); var forumThreadService = require('../../service/forumThreadService'),
var forumPraiseLogService = require('../../service/forumPraiseLogService'); forumRolePermissionService = require('../../service/forumRolePermissionService'),
var forumShareLogService = require('../../service/forumShareLogService'); forumPraiseLogService = require('../../service/forumPraiseLogService'),
var forumCommentService = require('../../service/forumCommentService'); forumShareLogService = require('../../service/forumShareLogService'),
var forumTagService = require('../../service/forumTagService'); forumCommentService = require('../../service/forumCommentService'),
var forumUserService = require('../../service/forumUserService'); forumTagService = require('../../service/forumTagService'),
forumUserService = require('../../service/forumUserService'),
// var forumLimitActionRefService = require('../../service/forumLimitActionRefService'); // var forumLimitActionRefService = require('../../service/forumLimitActionRefService');
var forumLimitOperationService = require('../../service/forumLimitOperationService'); forumLimitOperationService = require('../../service/forumLimitOperationService'),
var forumAboutMEService = require('../../service/forumAboutMEService'); forumAboutMEService = require('../../service/forumAboutMEService'),
var httpService = require('../../service/httpService'); httpService = require('../../service/httpService');
var userUtil = require('../../utils/user'); var userUtil = require('../../utils/user');
var async = require('async');
module.exports = function(app) { module.exports = function(app) {
app.use('/admin/forum', router); app.use('/admin/forum', router);
...@@ -1020,37 +1023,34 @@ router.get('/thread/:tid/spreadchain', function(req, res, next) { ...@@ -1020,37 +1023,34 @@ router.get('/thread/:tid/spreadchain', function(req, res, next) {
// 导出文章评论内容 // 导出文章评论内容
router.get('/thread/:tid/exportComments', function(req, res, next) { router.get('/thread/:tid/exportComments', function(req, res, next) {
var tid = req.params.tid || null; var tid = req.params.tid || null,
var ent_code = req.query.ent_code || null; ent_code = req.query.ent_code || null;
then(function(cont){
if(tid && ent_code){ if(tid && ent_code){
var conditions = { var conditions = {
ent_code: ent_code, ent_code: ent_code,
thread: tid, thread: tid,
level:1 level:1
}; };
//查询所有评论 //查询所有评论
forumCommentService.getAllCommentByThread(conditions, function(err, results) { forumCommentService.getAllCommentByThread(conditions, function(err, docs) {
if (err) { cont(err,docs);
console.log(err); });
res.json(returnCode.BUSY); }else{
} else { cont('params error');
//查询每个一级评论点赞 }
}).then(function(cont,comments){
//获取点赞信息
var asyncTasks = []; var asyncTasks = [];
_.forEach(results, function(e) { _.forEach(comments, function(e) {
asyncTasks.push(function(cb) { asyncTasks.push(function(cb) {
if (e.level != 1) { var conditions = {
cb(null, e);
} else {
var con = {
ent_code:ent_code, ent_code:ent_code,
thread:tid, thread:tid,
type:2, type:2,
comment:e._id comment:e._id
} }
forumPraiseLogService.queryPraiseLogV2(conditions, function(err, results){
forumPraiseLogService.queryPraiseLogV2(con, function(err, results){
if(err){ if(err){
console.log(err); console.log(err);
cb(null, e); cb(null, e);
...@@ -1059,8 +1059,10 @@ router.get('/thread/:tid/exportComments', function(req, res, next) { ...@@ -1059,8 +1059,10 @@ router.get('/thread/:tid/exportComments', function(req, res, next) {
var praiseNames = []; var praiseNames = [];
var praiseOpenIds = []; var praiseOpenIds = [];
_.forEach(results, function(e2) { _.forEach(results, function(e2) {
if(e2.user){
praiseNames.push(e2.user.nickName || '游客'); praiseNames.push(e2.user.nickName || '游客');
praiseOpenIds.push(e2.user.uid); praiseOpenIds.push(e2.user.uid);
}
}); });
e.praiseNames = praiseNames; e.praiseNames = praiseNames;
e.praiseOpenIds = praiseOpenIds; e.praiseOpenIds = praiseOpenIds;
...@@ -1069,11 +1071,12 @@ router.get('/thread/:tid/exportComments', function(req, res, next) { ...@@ -1069,11 +1071,12 @@ router.get('/thread/:tid/exportComments', function(req, res, next) {
cb(null, e); cb(null, e);
} }
}); });
}
}); });
}); });
async.parallel(asyncTasks, function(err, items) { async.parallel(asyncTasks, function(err, items) {
cont(err,items);
});
}).then(function(cont,items){
//表头 //表头
var conf = {}; var conf = {};
conf.cols = [ conf.cols = [
...@@ -1086,17 +1089,14 @@ router.get('/thread/:tid/exportComments', function(req, res, next) { ...@@ -1086,17 +1089,14 @@ router.get('/thread/:tid/exportComments', function(req, res, next) {
{caption:'点赞人', type:'string'}, {caption:'点赞人', type:'string'},
{caption:'点赞人openId', type:'string'} {caption:'点赞人openId', type:'string'}
]; ];
//内容 //内容
var rows = []; var rows = [];
for (var i = items.length - 1; i >= 0; i--) { for (var i = items.length - 1; i >= 0; i--) {
var comment = items[i]; var comment = items[i];
var floor = comment.floor, var floor = comment.floor,
time = date_format(comment.created), time = date_format(comment.created),
openId = comment.from.uid || '', openId = '',
nickName = comment.from.nickName || '游客', nickName = '',
content = comment.content || '', content = comment.content || '',
praiseCount = comment.praiseCount || 0, praiseCount = comment.praiseCount || 0,
praiseNames = '', praiseNames = '',
...@@ -1105,6 +1105,10 @@ router.get('/thread/:tid/exportComments', function(req, res, next) { ...@@ -1105,6 +1105,10 @@ router.get('/thread/:tid/exportComments', function(req, res, next) {
praiseNames = comment.praiseNames.toString(); praiseNames = comment.praiseNames.toString();
praiseOpenIds = comment.praiseOpenIds.toString(); praiseOpenIds = comment.praiseOpenIds.toString();
} }
if(comment.from){
openId = comment.from.uid || '';
nickName = comment.from.nickName || '游客';
}
var this_row = [floor + '', time,openId, nickName, content, praiseCount, praiseNames,praiseOpenIds]; var this_row = [floor + '', time,openId, nickName, content, praiseCount, praiseNames,praiseOpenIds];
rows.push(this_row); rows.push(this_row);
...@@ -1113,28 +1117,36 @@ router.get('/thread/:tid/exportComments', function(req, res, next) { ...@@ -1113,28 +1117,36 @@ router.get('/thread/:tid/exportComments', function(req, res, next) {
for (var k = 0; k < comment.comments.length; k++) { for (var k = 0; k < comment.comments.length; k++) {
var sub_comment = comment.comments[k]; var sub_comment = comment.comments[k];
var time = date_format(sub_comment.created); var time = date_format(sub_comment.created),
var openId = sub_comment.from.uid || ''; openId = '',
var nickName = sub_comment.from.nickName || '游客'; nickName = '',
var content = sub_comment.content || ''; content = sub_comment.content || '',
to = '';
var this_row = ['回复', time,openId, nickName, content, null, null,null]; if(comment.from){
openId = sub_comment.from.uid || '';
nickName = sub_comment.from.nickName || '游客';
}
if(comment.to){
to = sub_comment.to.nickName || '游客';
}
var this_row = [nickName + ' 回复 ' + to, time,openId, nickName, content, 0, null,null];
rows.push(this_row); rows.push(this_row);
}; };
} }
}; };
conf.rows = rows; conf.rows = rows;
var result = nodeExcel.execute(conf); var result = nodeExcel.execute(conf);
res.setHeader('Content-Type', 'application/vnd.ms-excel'); res.setHeader('Content-Type', 'application/vnd.ms-excel');
res.setHeader('Content-Disposition', 'attachment; filename=commentsReport.xlsx'); res.setHeader('Content-Disposition', 'attachment; filename=commentsReport.xlsx');
res.end(result, 'binary'); res.end(result, 'binary');
}); }).fail(function(cont,err){
} console.error(err);
}); if(err === 'params error'){
}else{
res.json(returnCode.WRONG_PARAM); res.json(returnCode.WRONG_PARAM);
}else{
res.json(returnCode.BUSY);
} }
});
}); });
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