Commit 2dc3591a authored by 陈家荣's avatar 陈家荣

update 评论

parent 2735b943
...@@ -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);
} }
...@@ -2378,3 +2478,25 @@ router.get('/thread/getUserFavorAllThread', function(req, res, next) { ...@@ -2378,3 +2478,25 @@ 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 {
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
\ No newline at end of file
...@@ -192,6 +192,45 @@ exports.getAllComment = function(conditions, pageNo, pageSize, callback) { ...@@ -192,6 +192,45 @@ 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: {
where:{status:1},
limit: 3,
sort: '-created',
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) {
...@@ -731,3 +770,29 @@ function populateComment_allstatus(doc, callback) { ...@@ -731,3 +770,29 @@ 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: {
where:{status:1},
skip: skip,
limit: limit,
sort: '-created',
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
...@@ -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) {
......
...@@ -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,
......
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