Commit 0bb11017 authored by 刘文胜's avatar 刘文胜

Merge branch 'remould_0120_page_style' of...

Merge branch 'remould_0120_page_style' of git.wxpai.cn:scrmgroup/pisns-forum-api into remould_0120_page_style
parents d046aa8e 5be86ac8
...@@ -25,7 +25,7 @@ module.exports = function(app) { ...@@ -25,7 +25,7 @@ module.exports = function(app) {
app.use('/v1/forum', router); app.use('/v1/forum', router);
}; };
//新增论坛板块 //论坛板块
router.get('/info/list/all', function(req, res, next) { router.get('/info/list/all', function(req, res, next) {
var rs = {}; var rs = {};
var ent_code = req.session.user.ent_code; var ent_code = req.session.user.ent_code;
...@@ -794,3 +794,56 @@ router.get('/info/myAttend', function(req, res, next) { ...@@ -794,3 +794,56 @@ router.get('/info/myAttend', function(req, res, next) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
}) })
}); });
//论坛板块
router.get('/info/list/allWithThreadCount', function(req, res, next) {
var rs = {};
var ent_code = req.session.user.ent_code;
async.waterfall([
function(callback) {
forumInfoService.getAllByGid({ent_code: ent_code}, 1, 100, function(err, datas) {
callback(err, datas.items);
});
},
function(infos, callback) { //获取用户
var asyncTasks = [];
_.forEach(infos, function(info, i) {
asyncTasks.push(function(cont) {
var conditions = {
ent_code: ent_code,
info: info._id
};
forumThreadService.getAllCountByFid(conditions, function(err, count) {
if (err) {
console.error(err);
cont(err, null);
} else {
if (infos[i].toObject) {
infos[i] = infos[i].toObject();
}
infos[i].favor_by = infos[i].favor_by.length;
infos[i].threadCount = count;
cont(null, info);
}
});
});
});
then.parallel(asyncTasks).then(function(cont, datas) {
callback(null, infos);
}).fail(function(err, cont) {
callback(err, null);
});
}
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
rs.data = result;
res.setHeader('Cache-Control', 'public, max-age=3600'); // 公共缓存一个小时
res.setHeader('Expires', new Date(Date.now() + 3600000).toUTCString());
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
});
\ No newline at end of file
...@@ -1776,54 +1776,127 @@ router.post('/thread/:tid/disable', function(req, res, next) { ...@@ -1776,54 +1776,127 @@ router.post('/thread/:tid/disable', function(req, res, next) {
//获取推荐文章 //获取推荐文章
router.get('/thread/getThreadWithEssence', function(req, res, next) { router.get('/thread/getThreadWithEssence', function(req, res, next) {
var pageNo = req.query.pageNo || 1, var pageNo = req.query.pageNo || 1;
pageSize = req.query.pageSize || 10, var pageSize = req.query.pageSize || 10;
ent_code = req.session.user.ent_code; var sort = '-new_recommend_time';
if (pageNo && pageSize) { var ent_code = req.session.user.ent_code;
var q = { var today = new Date();
ent_code: ent_code, var conditions = {
new_recommend: 1 ent_code: ent_code,
}; level: 1,
status: 1,
new_recommend: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
}]
};
forumThreadService.getThreadWithNotPopulateComment(conditions, pageNo, pageSize, sort, function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
util.loadLevel(req.session.user.ent_code, results.items, function() {
redisPraiseLog.get(ent_code, user.getMobileUser(req), 'thread', function(error, docs) {
_.forEach(results.items, function(d, i) {
if (results.items[i].toObject) {
results.items[i] = results.items[i].toObject();
}
forumThreadService.findThread(pageNo, pageSize, q, '-new_recommend_time', function(err, result) { //设置帖子的活动
if (err) { if(results.items[i].isEvent && results.items[i].isEvent == 1){
console.error(err); if(results.items[i].event.eventEndTime < today){
res.json(returnCode.BUSY); results.items[i].eventStatus = 2; //'已结束';
} }else{
res.json(_.assign(result, returnCode.SUCCESS)); results.items[i].eventStatus = 1; //'进行中';
}); }
} else { }
res.json(returnCode.WRONG_PARAM);
}
});
//获取等级最高的荣誉
if(results.items[i].from.honorTitles && results.items[i].from.honorTitles.length > 0){
var temp_honorTitles = _.sortBy(results.items[i].from.honorTitles, 'order_idx')
results.items[i].from.honorTitles = temp_honorTitles[temp_honorTitles.length - 1];
}
//分页查询帖子列表,按时间排序 results.items[i].isPraise = false;
router.get('/thread/searchThread', function(req, res, next) { for (var k = docs.length - 1; k >= 0; k--) {
if (results.items[i]._id == docs[k]) {
results.items[i].isPraise = true;
break;
}
};
//参数 });
var pageNo = req.query.pageNo, res.json(_.assign(results, returnCode.SUCCESS));
pageSize = req.query.pageSize, });
status = 1, });
ent_code = req.session.user.ent_code; }
});
});
//查询帖子列表数据,不获取评论,话题获取参与用
router.get('/thread/getThreadWithNotPopulateComment', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var sort = '-_id';
var ent_code = req.session.user.ent_code;
var today = new Date(); var today = new Date();
if (pageNo && pageSize) { var conditions = {
var q = { ent_code: ent_code,
ent_code: ent_code level: 1,
}; status: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
}]
};
forumThreadService.getThreadWithNotPopulateComment(conditions, pageNo, pageSize, sort, function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
util.loadLevel(req.session.user.ent_code, results.items, function() {
redisPraiseLog.get(ent_code, user.getMobileUser(req), 'thread', function(error, docs) {
_.forEach(results.items, function(d, i) {
if (results.items[i].toObject) {
results.items[i] = results.items[i].toObject();
}
forumThreadService.findThreadByPage(pageNo, pageSize, q, function(err, result) { //设置帖子的活动
if (err) { if(results.items[i].isEvent && results.items[i].isEvent == 1){
console.error(err); if(results.items[i].event.eventEndTime < today){
} results.items[i].eventStatus = 2; //'已结束';
res.json(result); }else{
}); results.items[i].eventStatus = 1; //'进行中';
} else { }
console.error('params error'); }
res.json({
result: false, //获取等级最高的荣誉
err: 'params error' if(results.items[i].from.honorTitles && results.items[i].from.honorTitles.length > 0){
}); var temp_honorTitles = _.sortBy(results.items[i].from.honorTitles, 'order_idx')
} results.items[i].from.honorTitles = temp_honorTitles[temp_honorTitles.length - 1];
}
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));
});
});
}
});
}); });
\ No newline at end of file
...@@ -720,7 +720,6 @@ function populateSubComment(subComments, callback) { ...@@ -720,7 +720,6 @@ function populateSubComment(subComments, callback) {
//获取数量 //获取数量
function countAllByFid(conditions, callback) { function countAllByFid(conditions, callback) {
// callback(null, 21);
ForumThread.count(conditions, function(err, count) { ForumThread.count(conditions, function(err, count) {
if (err) { if (err) {
console.error(err); console.error(err);
...@@ -1255,4 +1254,68 @@ exports.updateByIdWithOptions = function(condition, entity, options, callback) { ...@@ -1255,4 +1254,68 @@ exports.updateByIdWithOptions = function(condition, entity, options, callback) {
callback(null, null); callback(null, null);
} }
}); });
};
//查询列表数据,不获取评论,话题获取参与用户
exports.getThreadWithNotPopulateComment = function(conditions, pageNo, pageSize, sort, callback) {
countAllByFid(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);
var sortBy = '-topTime -quality -created';
if (sort) {
sortBy = sort;
}
ForumThread.find(conditions).populate({
path: 'from',
select: 'uid mid nickName icon honorTitles',
options: {
populate:"honorTitles" //继续查荣誉
}
}).populate('info','name icon pv_count').limit(limit).skip(skip).sort(sortBy).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;
if (docs && docs.length > 0) {
var asyncTasks = [];
docs.forEach(function(doc) {
if (doc.type === 1 || doc.level !== 1) { //非照片墙或文章时获取评论
asyncTasks.push(function(callback) {
callback(null, doc);
});
} else {
asyncTasks.push(function(callback) {
getSubThreads(doc, null, callback);
});
}
});
async.parallel(asyncTasks, function(err, results) {
if (err) {
console.error(err);
callback(null, null);
} else {
obj.items = results;
callback(null, obj);
}
});
} else {
callback(null, obj);
}
}
});
}
});
}; };
\ No newline at end of file
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