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) {
app.use('/v1/forum', router);
};
//新增论坛板块
//论坛板块
router.get('/info/list/all', function(req, res, next) {
var rs = {};
var ent_code = req.session.user.ent_code;
......@@ -794,3 +794,56 @@ router.get('/info/myAttend', function(req, res, next) {
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) {
//获取推荐文章
router.get('/thread/getThreadWithEssence', function(req, res, next) {
var pageNo = req.query.pageNo || 1,
pageSize = req.query.pageSize || 10,
ent_code = req.session.user.ent_code;
if (pageNo && pageSize) {
var q = {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var sort = '-new_recommend_time';
var ent_code = req.session.user.ent_code;
var today = new Date();
var conditions = {
ent_code: ent_code,
new_recommend: 1
level: 1,
status: 1,
new_recommend: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
}]
};
forumThreadService.findThread(pageNo, pageSize, q, '-new_recommend_time', function(err, result) {
forumThreadService.getThreadWithNotPopulateComment(conditions, pageNo, pageSize, sort, function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}
res.json(_.assign(result, returnCode.SUCCESS));
});
} else {
res.json(returnCode.WRONG_PARAM);
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();
}
});
//设置帖子的活动
if(results.items[i].isEvent && results.items[i].isEvent == 1){
if(results.items[i].event.eventEndTime < today){
results.items[i].eventStatus = 2; //'已结束';
}else{
results.items[i].eventStatus = 1; //'进行中';
}
}
//分页查询帖子列表,按时间排序
router.get('/thread/searchThread', function(req, res, next) {
//获取等级最高的荣誉
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];
}
//参数
var pageNo = req.query.pageNo,
pageSize = req.query.pageSize,
status = 1,
ent_code = req.session.user.ent_code;
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));
});
});
}
});
});
//查询帖子列表数据,不获取评论,话题获取参与用
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();
if (pageNo && pageSize) {
var q = {
ent_code: ent_code
var conditions = {
ent_code: ent_code,
level: 1,
status: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
}]
};
forumThreadService.findThreadByPage(pageNo, pageSize, q, function(err, result) {
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();
}
res.json(result);
//设置帖子的活动
if(results.items[i].isEvent && results.items[i].isEvent == 1){
if(results.items[i].event.eventEndTime < today){
results.items[i].eventStatus = 2; //'已结束';
}else{
results.items[i].eventStatus = 1; //'进行中';
}
}
//获取等级最高的荣誉
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));
});
} else {
console.error('params error');
res.json({
result: false,
err: 'params error'
});
}
});
});
\ No newline at end of file
......@@ -720,7 +720,6 @@ function populateSubComment(subComments, callback) {
//获取数量
function countAllByFid(conditions, callback) {
// callback(null, 21);
ForumThread.count(conditions, function(err, count) {
if (err) {
console.error(err);
......@@ -1256,3 +1255,67 @@ exports.updateByIdWithOptions = function(condition, entity, options, callback) {
}
});
};
//查询列表数据,不获取评论,话题获取参与用户
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