Commit 4aba2f23 authored by 陈家荣's avatar 陈家荣

开发前端收藏(板块,文章,用户)调用api

parent f6a98233
...@@ -158,4 +158,31 @@ router.post('/member/:mid/update', function(req, res, next) { ...@@ -158,4 +158,31 @@ router.post('/member/:mid/update', function(req, res, next) {
}else{ }else{
res.json(returnCode.WRONG_PARAM); res.json(returnCode.WRONG_PARAM);
} }
});
//获取用户收藏记录
router.get('/member/:uid/favors', function(req, res, next) {
var uid = req.params.uid || null;
var ent_code = req.session.user.ent_code;
if (uid) {
var condition = {
_id : uid,
ent_code : ent_code
}
forumUserService.getFavors(condition,function(err,result){
if(err){
console.log(err);
res.json(returnCode.BUSY);
}else{
var rs ={data : result};
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
} else {
console.error('params error');
res.json({
result: false,
err: 'params error'
});
}
}); });
\ No newline at end of file
'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');
var mongoose = require('mongoose'); var mongoose = require('mongoose');
var forumUserService=require('../../service/forumUserService'); var forumUserService = require('../../service/forumUserService');
var forumThreadService=require('../../service/forumThreadService'); var forumThreadService = require('../../service/forumThreadService');
var forumInfoService = require('../../service/forumInfoService');
var async=require('async'); var async = require('async');
var user=require('../../utils/user'); var user = require('../../utils/user');
module.exports = function(app) { module.exports = function(app) {
app.use('/v1/forum', router); app.use('/v1/forum', router);
};
//更新用户收藏信息
var updateuser = function(condition, entity, callback){
forumUserService.updateByIdWithOptions(condition, entity, {upsert: false}, function(err, user_id) {
if (err) {
callback(err, null);
} else {
callback(null, user_id);
}
});
};
//查询用户是否已收藏(板块/文章/用户)
var queryIsFavor = function(userID, field, condition, callback){
forumUserService.getUserById(userID, function(err, doc) {
if (err) {
callback(err, null);
} else {
if(doc){
var list = doc[field];
if (list.indexOf(condition) > -1) {
callback(1);
} else {
callback(null);
}
}else{
callback('查询用户信息错误');
}
}
});
}; };
//获取用户信息 //获取用户信息
router.get('/user/:fid/get', function(req, res, next) { router.get('/user/:fid/get', function(req, res, next) {
var fid = req.params.fid || null; var fid = req.params.fid || null;
var rs = {}; var rs = {};
async.parallel([ async.parallel([
function(cb){ function(cb) {
forumUserService.getUserById(user.getMobileUser(req),function(err,entity){ forumUserService.getUserById(user.getMobileUser(req), function(err, entity) {
if (err) { if (err) {
cb(err,null); cb(err, null);
} else { } else {
cb(null,entity); cb(null, entity);
}
});
},
function(cb) {
var conditions = {
ent_code: req.session.user.ent_code,
from: user.getMobileUser(req),
status: 1,
info: fid
};
forumThreadService.getAllCountByFid(conditions, function(err, count) {
if (err) {
cb(err, null);
} else {
cb(null, count);
}
});
}
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
rs.data = results[0] || {};
rs.myThreadCount = results[1] || 0;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
});
//更新用户信息
router.post('/user/:uid/update', function(req, res, next) {
var uid = req.params.uid;
if (uid) {
forumUserService.updateUserById(uid, req.body, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
} else {
res.json(returnCode.SUCCESS);
}
});
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//收藏板块
router.post('/user/favorInfo/:infoID', function(req, res, next) {
var userID = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var infoID = req.params.infoID;
if (userID && infoID) {
async.waterfall([
function(callback) {
queryIsFavor(userID, 'favor_infos', infoID, callback);
},
function(callback) {
//更新用户
var user_condition = { _id : userID, ent_code : ent_code};
var user_entity = { $push: { "favor_infos": infoID} };
updateuser(user_condition, user_entity, callback);
},
function(user_id, callback) {
//更新板块
var info_condition = { _id : infoID, ent_code : ent_code};
var info_entity = { $push: { "favor_by": user_id} };
forumInfoService.updateByIdWithOptions(info_condition, info_entity, {upsert: true}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
], function (err, result) {
if (err) {
if(err == 1){
var rs = {
'errorcode': 1,
'errormsg': '已收藏'
}
res.json(rs);
}else{
res.json(returnCode.BUSY);
}
} else {
res.json(returnCode.SUCCESS);
}
});
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//取消收藏板块
router.post('/user/disfavorInfo/:infoID', function(req, res, next) {
var userID = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var infoID = req.params.infoID;
if (userID && infoID) {
async.waterfall([
function(callback) {
//更新用户
var user_condition = { _id : userID, ent_code : ent_code};
var user_entity = { $pull: { "favor_infos": infoID} };
updateuser(user_condition, user_entity, callback);
},
function(user_id, callback) {
//更新板块
var info_condition = { _id : infoID, ent_code : ent_code};
var info_entity = { $pull: { "favor_by": user_id} };
forumInfoService.updateByIdWithOptions(info_condition, info_entity, {upsert: true}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
], function (err, result) {
if (err) {
res.json(returnCode.BUSY);
} else {
res.json(returnCode.SUCCESS);
}
});
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//收藏文章
router.post('/user/favorThread/:threadID', function(req, res, next) {
var userID = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var threadID = req.params.threadID;
if (userID && threadID) {
async.waterfall([
function(callback) {
queryIsFavor(userID, 'favor_threads', threadID, callback);
},
function(callback) {
//更新用户
var user_condition = { _id : userID, ent_code : ent_code};
var user_entity = { $push: { "favor_threads": threadID} };
updateuser(user_condition, user_entity, callback);
},
function(user_id, callback) {
//更新文章
var thread_condition = { _id : threadID, ent_code : ent_code};
var thread_entity = { $push: { "favor_by": user_id} };
forumThreadService.updateByIdWithOptions(thread_condition, thread_entity, {upsert: true}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
], function (err, result) {
if (err) {
if(err == 1){
var rs = {
'errorcode': 1,
'errormsg': '已收藏'
} }
}); res.json(rs);
}, }else{
function(cb){ res.json(returnCode.BUSY);
var conditions={ }
ent_code:req.session.user.ent_code, } else {
from:user.getMobileUser(req), res.json(returnCode.SUCCESS);
status:1, }
info:fid });
}; } else {
forumThreadService.getAllCountByFid(conditions,function(err,count){ res.json(returnCode.WRONG_PARAM);
if (err) { }
cb(err,null); });
} else {
cb(null,count);
//取消收藏文章
router.post('/user/disfavorThread/:threadID', function(req, res, next) {
var userID = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var threadID = req.params.threadID;
if (userID && threadID) {
async.waterfall([
function(callback) {
//更新用户
var user_condition = { _id : userID, ent_code : ent_code};
var user_entity = { $pull: { "favor_threads": threadID} };
updateuser(user_condition, user_entity, callback);
},
function(user_id, callback) {
//更新文章
var thread_condition = { _id : threadID, ent_code : ent_code};
var thread_entity = { $pull: { "favor_by": user_id} };
forumThreadService.updateByIdWithOptions(thread_condition, thread_entity, {upsert: true}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
], function (err, result) {
if (err) {
res.json(returnCode.BUSY);
} else {
res.json(returnCode.SUCCESS);
}
});
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//收藏用户
router.post('/user/favorUser/:favorUserID', function(req, res, next) {
var userID = user.getMobileUser(req);// 收藏的用户
var ent_code = req.session.user.ent_code;
var favorUserID = req.params.favorUserID; //被收藏的用户
if (userID && favorUserID) {
async.waterfall([
function(callback) {
queryIsFavor(userID, 'favor_users', favorUserID, callback);
},
function(callback) {
//更新用户
var user_condition = { _id : userID, ent_code : ent_code};
var user_entity = { $push: { "favor_users": favorUserID} };
updateuser(user_condition, user_entity, callback);
},
function(user_id, callback) {
//更新被收藏用户
var favor_condition = { _id : favorUserID, ent_code : ent_code};
var favor_entity = { $push: { "favor_by": user_id} };
forumUserService.updateByIdWithOptions(favor_condition, favor_entity, {upsert: false}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
], function (err, result) {
if (err) {
if(err == 1){
var rs = {
'errorcode': 1,
'errormsg': '已收藏'
} }
}); res.json(rs);
} }else{
],function(err,results){ res.json(returnCode.BUSY);
if (err) { }
console.error(err); } else {
res.json(returnCode.BUSY); res.json(returnCode.SUCCESS);
} else { }
rs.data = results[0] || {}; });
rs.myThreadCount=results[1] || 0; } else {
res.json(_.assign(rs, returnCode.SUCCESS)); res.json(returnCode.WRONG_PARAM);
} }
});
}); });
//获取用户信息 //取消收藏用户
router.post('/user/:uid/update', function(req, res, next) { router.post('/user/disfavorUser/:favorUserID', function(req, res, next) {
var uid=req.params.uid; var userID = user.getMobileUser(req);// 收藏的用户
if(uid){ var ent_code = req.session.user.ent_code;
forumUserService.updateUserById(uid,req.body,function(err,result){ var favorUserID = req.params.favorUserID; //被收藏的用户
if(err){ if (userID && favorUserID) {
res.json(returnCode.BUSY); async.waterfall([
}else{ function(callback) {
res.json(returnCode.SUCCESS); //更新用户
} var user_condition = { _id : userID, ent_code : ent_code};
var user_entity = { $pull: { "favor_users": favorUserID} };
updateuser(user_condition, user_entity, callback);
},
function(user_id, callback) {
//更新被收藏用户
var favor_condition = { _id : favorUserID, ent_code : ent_code};
var favor_entity = { $pull: { "favor_by": user_id} };
forumUserService.updateByIdWithOptions(favor_condition, favor_entity, {upsert: true}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
], function (err, result) {
if (err) {
res.json(returnCode.BUSY);
} else {
res.json(returnCode.SUCCESS);
}
}); });
}else{ } else {
res.json(returnCode.WRONG_PARAM); res.json(returnCode.WRONG_PARAM);
} }
}); });
\ No newline at end of file
...@@ -50,6 +50,10 @@ var ForumInfoSchema = new Schema({ ...@@ -50,6 +50,10 @@ var ForumInfoSchema = new Schema({
type: Object, type: Object,
default:{} default:{}
}, },
favor_by: [{ //被收藏用户列表
type: Schema.Types.ObjectId,
ref: 'ForumUser'
}],
created: { created: {
type: Date, type: Date,
required: true, required: true,
......
...@@ -118,6 +118,10 @@ var ForumThreadSchema = new Schema({ ...@@ -118,6 +118,10 @@ var ForumThreadSchema = new Schema({
require: true, require: true,
default: 100 default: 100
}, },
favor_by: [{ //被收藏用户列表
type: Schema.Types.ObjectId,
ref: 'ForumUser'
}],
created: { created: {
type: Date, type: Date,
required: true, required: true,
......
...@@ -56,6 +56,22 @@ var ForumUserSchema = new Schema({ ...@@ -56,6 +56,22 @@ var ForumUserSchema = new Schema({
type: Schema.Types.ObjectId, type: Schema.Types.ObjectId,
ref: 'ForumHonorTitle' ref: 'ForumHonorTitle'
}], }],
favor_by: [{ //被收藏用户列表
type: Schema.Types.ObjectId,
ref: 'ForumUser'
}],
favor_users: [{ //收藏用户列表
type: Schema.Types.ObjectId,
ref: 'ForumUser'
}],
favor_infos: [{ //收藏板块列表
type: Schema.Types.ObjectId,
ref: 'ForumInfo'
}],
favor_threads: [{ //收藏文章列表
type: Schema.Types.ObjectId,
ref: 'ForumThread'
}],
created: { created: {
type: Date, type: Date,
required: true, required: true,
......
...@@ -39,6 +39,18 @@ exports.updateInfoById=function(fid,entity,callback){ ...@@ -39,6 +39,18 @@ exports.updateInfoById=function(fid,entity,callback){
}); });
}; };
//根据ID更新论坛板块2
exports.updateByIdWithOptions=function(condition, entity, options, callback){
ForumInfo.findOneAndUpdate(condition, entity, options, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
};
//根据ID更新论坛组 //根据ID更新论坛组
exports.deleteInfoById=function(fid,callback){ exports.deleteInfoById=function(fid,callback){
ForumInfo.remove({ _id: fid},function(err,result){ ForumInfo.remove({ _id: fid},function(err,result){
......
...@@ -1198,4 +1198,16 @@ exports.updateThread = function(condition, entity, callback) { ...@@ -1198,4 +1198,16 @@ exports.updateThread = function(condition, entity, callback) {
callback(null, doc); callback(null, doc);
} }
}); });
};
//根据ID更新文章2
exports.updateByIdWithOptions = function(condition, entity, options, callback) {
ForumThread.findOneAndUpdate(condition, entity, options, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
}; };
\ No newline at end of file
...@@ -7,80 +7,122 @@ var async = require('async'); ...@@ -7,80 +7,122 @@ var async = require('async');
var forumLimitOperationService = require('../service/forumLimitOperationService'); var forumLimitOperationService = require('../service/forumLimitOperationService');
//创建用户 //创建用户
exports.createUser=function(entity,callback){ exports.createUser = function(entity, callback) {
var forum = new ForumUser(entity); var forum = new ForumUser(entity);
forum.save(function(err, forum) { forum.save(function(err, forum) {
if (err) { if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err, null);
} else { } else {
callback(null,forum); callback(null, forum);
} }
}); });
}; };
//根据Uid获取用户 //根据Uid获取用户
exports.getUserByUid=function(uid,callback){ exports.getUserByUid = function(uid, callback) {
ForumUser.findOne({uid:uid}).populate({ ForumUser.findOne({
path: 'honorTitles', uid: uid
match: { status: { $ne: 0 }}, }).populate({
options: { sort:{order_idx:-1} } path: 'honorTitles',
}).exec(function(err,result){ match: {
if(err){ status: {
callback(err,null); $ne: 0
}else{ }
if(result ){ },
callback(null,result); options: {
}else{ sort: {
callback(null,null); order_idx: -1
} }
} }
}); }).exec(function(err, result) {
if (err) {
callback(err, null);
} else {
if (result) {
callback(null, result);
} else {
callback(null, null);
}
}
});
}; };
//根据id获取用户 //根据id获取用户
exports.getUserById=function(id,callback){ exports.getUserById = function(id, callback) {
ForumUser.findOne({_id:id}).populate({ ForumUser.findOne({
path: 'honorTitles', _id: id
match: { status: { $ne: 0 }}, }).populate({
options: { sort:{order_idx:-1} } path: 'honorTitles',
}).exec(function(err,result){ match: {
if(err){ status: {
callback(err,null); $ne: 0
}else{ }
if(result ){ },
callback(null,result); options: {
}else{ sort: {
callback(null,null); order_idx: -1
} }
} }
}); }).exec(function(err, result) {
if (err) {
callback(err, null);
} else {
if (result) {
callback(null, result);
} else {
callback(null, null);
}
}
});
}; };
//根据ID更新用户信息 //根据ID更新用户信息
exports.updateUserById=function(uid,entity,callback){ exports.updateUserById = function(uid, entity, callback) {
ForumUser.update({ _id: uid}, entity,null,function(err,result){ ForumUser.update({
if (err) { _id: uid
console.error(err); }, entity, null, function(err, result) {
callback(err,null); if (err) {
} else { console.error(err);
callback(null,null); callback(err, null);
} } else {
}); callback(null, null);
}
});
};
//根据ID更新用户信息2
exports.updateByIdWithOptions = function(condition, entity, options, callback) {
ForumUser.findOneAndUpdate(condition, entity, options, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, result._id);
}
});
}; };
//查询用户信息 //查询用户信息
exports.searchMembers=function(pageNo, pageSize, q, callback){ exports.searchMembers = function(pageNo, pageSize, q, callback) {
then(function(cont) { then(function(cont) {
ForumUser.find(q).count(cont); ForumUser.find(q).count(cont);
}).then(function(cont, count) { }).then(function(cont, count) {
var skip = (pageNo - 1) * pageSize; var skip = (pageNo - 1) * pageSize;
var limit = count - skip > pageSize ? pageSize : (count - skip); var limit = count - skip > pageSize ? pageSize : (count - skip);
ForumUser.find(q).skip(skip).limit(limit).sort('-created').populate({ ForumUser.find(q).skip(skip).limit(limit).sort('-created').populate({
path: 'honorTitles', path: 'honorTitles',
match: { status: { $ne: 0 }}, match: {
options: { sort:{order_idx:-1} } status: {
}).exec(function(err, docs) { $ne: 0
}
},
options: {
sort: {
order_idx: -1
}
}
}).exec(function(err, docs) {
cont(err, count, docs); cont(err, count, docs);
}); });
}).then(function(cont, count, members) { }).then(function(cont, count, members) {
...@@ -101,114 +143,146 @@ exports.searchMembers=function(pageNo, pageSize, q, callback){ ...@@ -101,114 +143,146 @@ exports.searchMembers=function(pageNo, pageSize, q, callback){
}; };
//根据nickName查询用户 //根据nickName查询用户
exports.searchMembersByNickName=function(nickName, callback){ exports.searchMembersByNickName = function(nickName, callback) {
var name = { var name = {
$or : [ $or: [{
{nickName : { $regex: nickName, $options: 'i' }}, nickName: {
{displayName : { $regex: nickName, $options: 'i' }} $regex: nickName,
] $options: 'i'
}; }
}, {
displayName: {
$regex: nickName,
$options: 'i'
}
}]
};
ForumUser.find(name).populate({ ForumUser.find(name).populate({
path: 'honorTitles', path: 'honorTitles',
match: { status: { $ne: 0 }}, match: {
options: { sort:{order_idx:-1} } status: {
}).exec(function(err,result){ $ne: 0
if(err){ }
callback(err,null); },
}else{ options: {
callback(null,result); sort: {
} order_idx: -1
}); }
}
}).exec(function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, result);
}
});
}; };
//根据mid查询用户 //根据mid查询用户
exports.searchMembersByMid=function(mid, callback){ exports.searchMembersByMid = function(mid, callback) {
ForumUser.find({mid:mid}).populate({ ForumUser.find({
path: 'honorTitles', mid: mid
match: { status: { $ne: 0 }}, }).populate({
options: { sort:{order_idx:-1} } path: 'honorTitles',
}).exec(function(err,result){ match: {
if(err){ status: {
callback(err,null); $ne: 0
}else{ }
callback(null,result); },
} options: {
}); sort: {
order_idx: -1
}
}
}).exec(function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, result);
}
});
}; };
//查询用户和行为限制信息 //查询用户和行为限制信息
exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){ exports.searchMembersAndLimitActions = function(pageNo, pageSize, q, callback) {
then(function(cont) { then(function(cont) {
ForumUser.find(q).count(cont); ForumUser.find(q).count(cont);
}).then(function(cont, count) { }).then(function(cont, count) {
var skip = (pageNo - 1) * pageSize; var skip = (pageNo - 1) * pageSize;
var limit = count - skip > pageSize ? pageSize : (count - skip); var limit = count - skip > pageSize ? pageSize : (count - skip);
ForumUser.find(q).skip(skip).limit(limit).sort('-created').populate({ ForumUser.find(q).skip(skip).limit(limit).sort('-created').populate({
path: 'honorTitles', path: 'honorTitles',
match: { status: { $ne: 0 }}, match: {
options: { sort:{order_idx:-1} } status: {
}).exec(function(err, docs) { $ne: 0
}
},
options: {
sort: {
order_idx: -1
}
}
}).exec(function(err, docs) {
cont(err, count, docs); cont(err, count, docs);
}); });
}).then(function(cont, count, members) { }).then(function(cont, count, members) {
if (count > 0) { if (count > 0) {
var asyncTasks = []; var asyncTasks = [];
members.forEach(function(member) { members.forEach(function(member) {
asyncTasks.push(function(callback) { asyncTasks.push(function(callback) {
forumLimitOperationService.getLimitOperationByUserId(member._id, function(err, forumLimitOperation) { forumLimitOperationService.getLimitOperationByUserId(member._id, function(err, forumLimitOperation) {
if (err) { if (err) {
console.error(err); console.error(err);
callback(null, null); callback(null, null);
} else { } else {
if(forumLimitOperation){ if (forumLimitOperation) {
var limit_actions = forumLimitOperation.limit_actions; var limit_actions = forumLimitOperation.limit_actions;
var array = []; var array = [];
for (var i = 0; i < limit_actions.length; i += 1) { for (var i = 0; i < limit_actions.length; i += 1) {
var limit_action = limit_actions[i]; var limit_action = limit_actions[i];
var name = ''; var name = '';
switch(limit_action.limit_type) switch (limit_action.limit_type) {
{ case 1:
case 1: name = '禁言';
name = '禁言'; break;
break; case 2:
case 2: name = '不加积分';
name = '不加积分'; break;
break; }
} array.push(name);
array.push(name); }
} member = member.toObject();
member = member.toObject(); member.limitActions = array;
member.limitActions = array; callback(null, member);
callback(null, member); } else {
}else{ callback(null, member);
callback(null, member); }
} }
} });
}); });
}); });
}); async.parallel(asyncTasks, function(err, results) {
async.parallel(asyncTasks, function(err, results) { if (err) {
if (err) { console.log(err);
console.log(err); callback(null, null);
callback(null, null); } else {
} else { var rsJson = {
var rsJson = { result: true,
result: true, total: count,
total: count, datas: results
datas: results };
}; callback(null, rsJson);
callback(null, rsJson); }
} });
});
} else { } else {
var rsJson = { var rsJson = {
result: true, result: true,
total: count, total: count,
datas: members datas: members
}; };
callback(null, rsJson); callback(null, rsJson);
} }
}).fail(function(cont, err) { }).fail(function(cont, err) {
console.error(err); console.error(err);
var rsJson = { var rsJson = {
...@@ -221,13 +295,41 @@ exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){ ...@@ -221,13 +295,41 @@ exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){
//根据UID和entCode更新用户信息 //根据UID和entCode更新用户信息
exports.updateUserByUIdAndEntCode=function(condition,entity,callback){ exports.updateUserByUIdAndEntCode = function(condition, entity, callback) {
ForumUser.update(condition, entity,null,function(err,result){ ForumUser.update(condition, entity, null, function(err, result) {
if (err) { if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err, null);
} else { } else {
callback(null,null); callback(null, null);
} }
}); });
};
//查询用户收藏记录
exports.getFavors = function(condition, callback) {
ForumUser.findOne(condition).populate({
path: 'favor_by',
select: '_id nickName displayName'
}).populate({
path: 'favor_users',
select: '_id nickName displayName'
}).populate({
path: 'favor_infos',
select: '_id name',
options: {sort: {created: -1}}
}).populate({
path: 'favor_threads',
select: '_id title info from created status',
options: {
sort: {created: -1},
populate:"info from" //继续查文章里面的板块信息
}
}).exec(function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, result);
}
});
}; };
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