Commit 33d3f3ba authored by 陈家荣's avatar 陈家荣

用户收藏和个人小站接口

parent 6463fd2d
...@@ -16,6 +16,8 @@ var forumCommentService = require('../../service/forumCommentService'); ...@@ -16,6 +16,8 @@ var forumCommentService = require('../../service/forumCommentService');
var forumThreadAttendService = require('../../service/forumThreadAttendService'); var forumThreadAttendService = require('../../service/forumThreadAttendService');
var httpService = require('../../service/httpService'); var httpService = require('../../service/httpService');
var redisPraiseLog = require('../../utils/redisPraiseLog'); var redisPraiseLog = require('../../utils/redisPraiseLog');
var forumUserService = require('../../service/forumUserService');
var forumFollowInfoService = require('../../service/forumFollowInfoService');
var user = require('../../utils/user'); var user = require('../../utils/user');
...@@ -952,4 +954,89 @@ router.get('/info/serachThreads', function(req, res, next) { ...@@ -952,4 +954,89 @@ router.get('/info/serachThreads', function(req, res, next) {
}); });
} }
}); });
});
//获取用户收藏的帖子,活动贴
router.get('/info/getUserFavorInfo', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var userId = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var q = {
ent_code: ent_code,
from: userId
};
forumFollowInfoService.findAll(q, null, function(err, doc){
if(err || !doc){
console.error(err);
res.json(returnCode.BUSY);
}else {
var info_ids = [];
for(var i = doc.length - 1; i >= 0; i--){
info_ids.push(doc[i].info);
}
var rs = {};
var today = new Date();
async.waterfall([
function(callback) {
var info_condition = {
ent_code: ent_code,
_id:{$in:info_ids}
}
forumInfoService.getAllByGid(info_condition, pageNo, pageSize, 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,
level: 1,
status: 1,
$or: [{
isEvent: {
$ne:1
}
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
}]
};
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.json(_.assign(rs, returnCode.SUCCESS));
}
});
}
});
}); });
\ No newline at end of file
...@@ -30,6 +30,10 @@ var ForumModeratorApply = mongoose.model('ForumModeratorApply'); ...@@ -30,6 +30,10 @@ var ForumModeratorApply = mongoose.model('ForumModeratorApply');
var forumModeratorApplyService = require('../../service/forumModeratorApplyService'); var forumModeratorApplyService = require('../../service/forumModeratorApplyService');
var redisThreadList = require('../../utils/redisThreadList'); var redisThreadList = require('../../utils/redisThreadList');
var forumFollowThreadService = require('../../service/forumFollowThreadService');
var forumFollowInfoService = require('../../service/forumFollowInfoService');
var forumFollowUserService = require('../../service/forumFollowUserService');
module.exports = function(app) { module.exports = function(app) {
app.use('/v1/forum', router); app.use('/v1/forum', router);
}; };
...@@ -2139,7 +2143,7 @@ router.get('/thread/:tid/get/subThreads/:type', function(req, res, next) { ...@@ -2139,7 +2143,7 @@ router.get('/thread/:tid/get/subThreads/:type', function(req, res, next) {
if(type == 1){ //最新 if(type == 1){ //最新
sort = '-created'; sort = '-created';
}else if(type == 2){ //最热 }else if(type == 2){ //最热
sort = '-praise_count -comment_count'; sort = '-praise_count -comment_count -created';
} }
if (tid) { if (tid) {
...@@ -2209,8 +2213,6 @@ router.get('/thread/:tid/get/subThreads/:type', function(req, res, next) { ...@@ -2209,8 +2213,6 @@ router.get('/thread/:tid/get/subThreads/:type', function(req, res, next) {
} }
}); });
//H5创建子话题文章 //H5创建子话题文章
router.post('/h5/thread/create', function(req, res, next) { router.post('/h5/thread/create', function(req, res, next) {
var pid = req.body.pid; var pid = req.body.pid;
...@@ -2294,4 +2296,82 @@ router.post('/h5/thread/create', function(req, res, next) { ...@@ -2294,4 +2296,82 @@ router.post('/h5/thread/create', function(req, res, next) {
}else{ }else{
res.json(returnCode.WRONG_PARAM); res.json(returnCode.WRONG_PARAM);
} }
});
//获取用户收藏的帖子,活动贴
router.get('/thread/getUserFavorThread/:type', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var type = req.params.type || null;
var userId = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var q = {
ent_code: ent_code,
from: userId
};
forumFollowThreadService.findAll(q, null, 'thread', function(err, doc){
if(err || !doc){
console.error(err);
res.json(returnCode.BUSY);
}else {
var thread_ids = [];
for(var i = doc.length - 1; i >= 0; i--){
thread_ids.push(doc[i].thread);
}
var today = new Date();
var conditions = {
ent_code: ent_code,
_id:{$in:thread_ids}
};
if(type == 1){
conditions.isEvent = {
$ne:1
}
}else if(type == 2){
conditions.isEvent = 1;
conditions['event.eventStartTime'] = {$lte : today};
}
queryThread(conditions, pageNo, pageSize, null, function(err, results){
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
util.loadLevel(ent_code, results.items, function() {
handleThreadList(req, results, ent_code, function(result){
res.json(_.assign(result, returnCode.SUCCESS));
});
});
}
});
}
});
});
//获取用户收藏的帖子的ID return Map
router.get('/thread/getUserFavorAllThread', function(req, res, next) {
var userId = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var q = {
ent_code: ent_code,
from: userId
};
forumFollowThreadService.findAll(q, null, 'thread', function(err, results){
if(err || !results){
console.error(err);
res.json(returnCode.BUSY);
}else {
var map = { //返回map对象,方便前端查找
data:{}
};
_.forEach(results, function(d){
map.data[d.thread] = 1;
});
res.json(_.assign(map, returnCode.SUCCESS));
}
});
}); });
\ No newline at end of file
...@@ -7,10 +7,13 @@ var express = require('express'), ...@@ -7,10 +7,13 @@ var express = require('express'),
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 forumFollowThreadService = require('../../service/forumFollowThreadService');
var forumFollowInfoService = require('../../service/forumFollowInfoService');
var forumFollowUserService = require('../../service/forumFollowUserService');
var async = require('async');
var util = require('../../utils/util');
var user = require('../../utils/user'); var user = require('../../utils/user');
module.exports = function(app) { module.exports = function(app) {
...@@ -29,18 +32,20 @@ var updateuser = function(condition, entity, callback){ ...@@ -29,18 +32,20 @@ var updateuser = function(condition, entity, callback){
}; };
//查询用户是否已收藏(板块/文章/用户) //查询用户是否已收藏(板块/文章/用户)
var queryIsFavor = function(userID, field, condition, callback){ var queryIsFavor = function(userID, field, subField, condition, callback){
forumUserService.getUserById(userID, function(err, doc) { forumUserService.getUserById(userID, function(err, doc) {
if (err) { if (err) {
callback(err, null); callback(err, null);
} else { } else {
if(doc){ if(doc){
var list = doc[field]; var list = doc[field];
if (list.indexOf(condition) > -1) { var flag = null;
callback(1); _.forEach(list, function(one, i) {
} else { if(one[subField] == condition){
callback(null); flag = 1;
} }
});
callback(flag);
}else{ }else{
callback('查询用户信息错误'); callback('查询用户信息错误');
} }
...@@ -113,25 +118,17 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) { ...@@ -113,25 +118,17 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) {
if (userID && infoID) { if (userID && infoID) {
async.waterfall([ async.waterfall([
function(callback) { function(callback) {
queryIsFavor(userID, 'favor_infos', infoID, callback); forumFollowInfoService.isNotFollow({from: userID, info:infoID, ent_code: ent_code}, callback);
}, },
function(callback) { function(callback) {
//更新用户 var obj = {
var user_condition = { _id : userID, ent_code : ent_code}; from: userID,
var user_entity = { $push: { "favor_infos": infoID} }; info: infoID,
updateuser(user_condition, user_entity, callback); ent_code: ent_code
}, };
function(user_id, callback) { forumFollowInfoService.create(obj, function(err, doc){
//更新板块 callback(err, null);
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) { ], function (err, result) {
if (err) { if (err) {
...@@ -145,7 +142,10 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) { ...@@ -145,7 +142,10 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} }
} else { } else {
res.json(returnCode.SUCCESS); var rs = {
data:true
}
res.json(_.assign(rs, returnCode.SUCCESS));
} }
}); });
} else { } else {
...@@ -153,7 +153,6 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) { ...@@ -153,7 +153,6 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) {
} }
}); });
//取消收藏板块 //取消收藏板块
router.post('/user/disfavorInfo/:infoID', function(req, res, next) { router.post('/user/disfavorInfo/:infoID', function(req, res, next) {
var userID = user.getMobileUser(req); var userID = user.getMobileUser(req);
...@@ -162,28 +161,18 @@ router.post('/user/disfavorInfo/:infoID', function(req, res, next) { ...@@ -162,28 +161,18 @@ router.post('/user/disfavorInfo/:infoID', function(req, res, next) {
if (userID && infoID) { if (userID && infoID) {
async.waterfall([ async.waterfall([
function(callback) { function(callback) {
//更新用户 forumFollowInfoService.remove({from: userID, info:infoID, ent_code: ent_code}, function(err, result){
var user_condition = { _id : userID, ent_code : ent_code}; callback(err, result);
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) { ], function (err, result) {
if (err) { if (err) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
res.json(returnCode.SUCCESS); var rs = {
data:false
}
res.json(_.assign(rs, returnCode.SUCCESS));
} }
}); });
} else { } else {
...@@ -191,7 +180,6 @@ router.post('/user/disfavorInfo/:infoID', function(req, res, next) { ...@@ -191,7 +180,6 @@ router.post('/user/disfavorInfo/:infoID', function(req, res, next) {
} }
}); });
//收藏文章 //收藏文章
router.post('/user/favorThread/:threadID', function(req, res, next) { router.post('/user/favorThread/:threadID', function(req, res, next) {
var userID = user.getMobileUser(req); var userID = user.getMobileUser(req);
...@@ -200,26 +188,18 @@ router.post('/user/favorThread/:threadID', function(req, res, next) { ...@@ -200,26 +188,18 @@ router.post('/user/favorThread/:threadID', function(req, res, next) {
if (userID && threadID) { if (userID && threadID) {
async.waterfall([ async.waterfall([
function(callback) { function(callback) {
queryIsFavor(userID, 'favor_threads', threadID, callback); forumFollowThreadService.isNotFollow({from: userID, thread: threadID, ent_code: ent_code}, callback);
}, },
function(callback) { function(callback) {
//更新用户 var obj = {
var user_condition = { _id : userID, ent_code : ent_code}; from: userID,
var user_entity = { $push: { "favor_threads": threadID} }; thread: threadID,
updateuser(user_condition, user_entity, callback); ent_code: ent_code
}, };
function(user_id, callback) { forumFollowThreadService.create(obj, function(err, doc){
//更新文章 callback(err, null);
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) { ], function (err, result) {
if (err) { if (err) {
if(err == 1){ if(err == 1){
...@@ -229,10 +209,13 @@ router.post('/user/favorThread/:threadID', function(req, res, next) { ...@@ -229,10 +209,13 @@ router.post('/user/favorThread/:threadID', function(req, res, next) {
} }
res.json(rs); res.json(rs);
}else{ }else{
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} }
} else { } else {
res.json(returnCode.SUCCESS); var rs = {
data:true
}
res.json(_.assign(rs, returnCode.SUCCESS));
} }
}); });
} else { } else {
...@@ -240,7 +223,6 @@ router.post('/user/favorThread/:threadID', function(req, res, next) { ...@@ -240,7 +223,6 @@ router.post('/user/favorThread/:threadID', function(req, res, next) {
} }
}); });
//取消收藏文章 //取消收藏文章
router.post('/user/disfavorThread/:threadID', function(req, res, next) { router.post('/user/disfavorThread/:threadID', function(req, res, next) {
var userID = user.getMobileUser(req); var userID = user.getMobileUser(req);
...@@ -249,28 +231,18 @@ router.post('/user/disfavorThread/:threadID', function(req, res, next) { ...@@ -249,28 +231,18 @@ router.post('/user/disfavorThread/:threadID', function(req, res, next) {
if (userID && threadID) { if (userID && threadID) {
async.waterfall([ async.waterfall([
function(callback) { function(callback) {
//更新用户 forumFollowThreadService.remove({from: userID, thread: threadID, ent_code: ent_code}, function(err, result){
var user_condition = { _id : userID, ent_code : ent_code}; callback(err, result);
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) { ], function (err, result) {
if (err) { if (err) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
res.json(returnCode.SUCCESS); var rs = {
data:false
}
res.json(_.assign(rs, returnCode.SUCCESS));
} }
}); });
} else { } else {
...@@ -286,26 +258,18 @@ router.post('/user/favorUser/:favorUserID', function(req, res, next) { ...@@ -286,26 +258,18 @@ router.post('/user/favorUser/:favorUserID', function(req, res, next) {
if (userID && favorUserID) { if (userID && favorUserID) {
async.waterfall([ async.waterfall([
function(callback) { function(callback) {
queryIsFavor(userID, 'favor_users', favorUserID, callback); forumFollowUserService.isNotFollow({from: userID, to: favorUserID, ent_code: ent_code}, callback);
}, },
function(callback) { function(callback) {
//更新用户 var obj = {
var user_condition = { _id : userID, ent_code : ent_code}; from: userID,
var user_entity = { $push: { "favor_users": favorUserID} }; to: favorUserID,
updateuser(user_condition, user_entity, callback); ent_code: ent_code
}, };
function(user_id, callback) { forumFollowUserService.create(obj, function(err, doc){
//更新被收藏用户 callback(err, null);
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) { ], function (err, result) {
if (err) { if (err) {
if(err == 1){ if(err == 1){
...@@ -318,7 +282,10 @@ router.post('/user/favorUser/:favorUserID', function(req, res, next) { ...@@ -318,7 +282,10 @@ router.post('/user/favorUser/:favorUserID', function(req, res, next) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} }
} else { } else {
res.json(returnCode.SUCCESS); var rs = {
data:true
}
res.json(_.assign(rs, returnCode.SUCCESS));
} }
}); });
} else { } else {
...@@ -334,31 +301,181 @@ router.post('/user/disfavorUser/:favorUserID', function(req, res, next) { ...@@ -334,31 +301,181 @@ router.post('/user/disfavorUser/:favorUserID', function(req, res, next) {
if (userID && favorUserID) { if (userID && favorUserID) {
async.waterfall([ async.waterfall([
function(callback) { function(callback) {
//更新用户 forumFollowUserService.remove({from: userID, to: favorUserID, ent_code: ent_code}, function(err, result){
var user_condition = { _id : userID, ent_code : ent_code}; callback(err, result);
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) { ], function (err, result) {
if (err) { if (err) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
res.json(returnCode.SUCCESS); var rs = {
data:false
}
res.json(_.assign(rs, returnCode.SUCCESS));
} }
}); });
} else { } else {
res.json(returnCode.WRONG_PARAM); res.json(returnCode.WRONG_PARAM);
} }
}); });
\ No newline at end of file
//获取关注的用户
router.get('/user/getUserFavorUser', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var userId = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var q = {
ent_code: ent_code,
from: userId
};
forumFollowUserService.find(pageNo, pageSize, q, null, function(err, results){
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
util.loadLevel(ent_code, results.items, function() {
res.json(_.assign(results, returnCode.SUCCESS));
});
}
});
});
//查看用户信息
router.get('/user/getUserInfo/:userId', function(req, res, next) {
var userId = req.params.userId;
var ent_code = req.session.user.ent_code;
async.waterfall([function(callback) {
//获取用户荣誉头衔
var user_conditions = {
ent_code: ent_code,
_id: userId
};
forumUserService.getByConditionsSelectyField(user_conditions, 'uid mid nickName icon honorTitles', function(err, doc) {
callback(err, doc);
});
}, function(forumUser, callback) {
async.parallel([
function(callback) {
//获取用户关注用户数
var follow_conditions = {
ent_code: ent_code,
from: userId
};
forumFollowUserService.count(follow_conditions, callback);
},
function(callback) {
//获取用户被关注数
var follow_by_conditions = {
ent_code: ent_code,
to: userId
};
forumFollowUserService.count(follow_by_conditions, callback);
},
function(callback) {
//获取用户经验值,积分
// var url = API_ADDRESS + '/v1.0/internal/member/infoAndRankInfo';
// request.post({
// url: url,
// json: {
// entCode:ent_code,
// ids:[forumUser.mid]
// }
// }, function(e, r, body) {
// if (e) {
// console.log(e)
// callback(e, null);
// }else{
// callback(null, body.data);
// }
// });
user.findMember(ent_code, forumUser.mid, callback);
}
], function(err, results) {
if (err) {
console.error(err);
callback(err, null);
} else {
if (forumUser.toObject) {
forumUser = forumUser.toObject();
}
if(results[2] && results[2][0]){
forumUser.integral = results[2][0].integral;
forumUser.exp = results[2][0].exp;
forumUser.rankName = results[2][0].rankName;
}
callback(null, forumUser)
}
});
}], function(err, result) {
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
var rs = {
data: result
};
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
});
//查看用户的收藏信息
router.get('/user/getUserFavorWithThreadAndInfo', function(req, res, next) {
var userId = user.getMobileUser(req);
var ent_code = req.session.user.ent_code;
var q = {
ent_code: ent_code,
from: userId
};
async.parallel([
function(callback) {
//获取用户收藏的帖子
forumFollowThreadService.findWithThread(q, 'isEvent event', function(err, docs){
if(err || !docs){
console.error(err);
callback(err, null);
}else{
var today = new Date();
var thread_count = 0;
var thread_event_count = 0;
_.forEach(docs, function(d, i){
if(d.thread){
if(d.thread.isEvent != 1){
thread_count++;
}else if(d.thread.isEvent == 1 && d.thread.event.eventStartTime <= today){
thread_event_count++;
}
}
});
var obj = {
follow_thread_count: thread_count,
follow_thread_event_count: thread_event_count
}
callback(null, obj);
}
});
},
function(callback) {
//获取用户收藏的圈子
forumFollowInfoService.count(q, callback);
}
], function(err, results) {
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
results[0].follow_info_count = results[1];
var rs = {
data: results[0]
};
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
});
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//收藏的板块
var ForumFollowInfoSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
from: {
type: Schema.Types.ObjectId,
require: true,
index: true,
ref: 'ForumUser'
},
info: {
type: Schema.Types.ObjectId,
require: true,
index: true,
ref: 'ForumInfo'
},
created: {
type: Date,
required: true,
default:Date.now
}
}, {
'collection': 'pisns_forum_follow_info'
});
module.exports = mongoose.model('ForumFollowInfo', ForumFollowInfoSchema);
\ No newline at end of file
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//收藏的帖子
var ForumFollowThreadSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
from: {
type: Schema.Types.ObjectId,
require: true,
index: true,
ref: 'ForumUser'
},
thread: {
type: Schema.Types.ObjectId,
require: true,
index: true,
ref: 'ForumThread'
},
created: {
type: Date,
required: true,
default:Date.now
}
}, {
'collection': 'pisns_forum_follow_thread'
});
module.exports = mongoose.model('ForumFollowThread', ForumFollowThreadSchema);
\ No newline at end of file
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//收藏的用户
var ForumFollowUserSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
from: {
type: Schema.Types.ObjectId,
require: true,
index: true,
ref: 'ForumUser'
},
to: {
type: Schema.Types.ObjectId,
require: true,
index: true,
ref: 'ForumUser'
},
created: {
type: Date,
required: true,
default:Date.now
}
}, {
'collection': 'pisns_forum_follow_user'
});
module.exports = mongoose.model('ForumFollowUser', ForumFollowUserSchema);
\ No newline at end of file
...@@ -164,10 +164,8 @@ var ForumThreadSchema = new Schema({ ...@@ -164,10 +164,8 @@ var ForumThreadSchema = new Schema({
required: true, required: true,
default:Date.now default:Date.now
} }
}, { }, {
'collection': 'pisns_forum_thread' 'collection': 'pisns_forum_thread'
}); });
module.exports = mongoose.model('ForumThread', ForumThreadSchema); module.exports = mongoose.model('ForumThread', ForumThreadSchema);
\ No newline at end of file
'use strict';
var mongoose = require('mongoose');
var ForumFollowInfo = mongoose.model('ForumFollowInfo');
exports.create=function(entity,callback){
var forum = new ForumFollowInfo(entity);
forum.save(function(err, doc) {
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,doc);
}
});
};
exports.remove=function(conditions,callback){
ForumFollowInfo.remove(conditions, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
};
//获取数量
function countAll(conditions,callback) {
ForumFollowInfo.count(conditions, function (err, count) {
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
}
//分页查询
exports.find= function(pageNo, pageSize, conditions, sort, 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);
var sortby = "-_id";
if(sort){
sortby = sort;
}
ForumFollowInfo.find(conditions).skip(skip).limit(pageSize).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;
callback(null,obj);
}
});
}
});
};
//获取列表
exports.findAll=function(conditions, sort, callback){
var sortby = "-_id";
if(sort){
sortby = sort;
}
ForumFollowInfo.find(conditions).sort(sortby).exec(function(err, docs){
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,docs);
}
});
};
exports.isNotFollow= function(conditions, callback) {
countAll(conditions,function(err,count){
if(err){
console.error(err);
callback(err,null);
}else if(count > 0){
callback(1);
}else{
callback(null);
}
});
};
//获取列表数量
exports.count=function(conditions, callback){
countAll(conditions,function(err,count){
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
};
'use strict';
var mongoose = require('mongoose');
var ForumFollowThread = mongoose.model('ForumFollowThread');
exports.create = function(entity, callback) {
var forum = new ForumFollowThread(entity);
forum.save(function(err, doc) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, doc);
}
});
};
exports.remove = function(conditions, callback) {
ForumFollowThread.remove(conditions, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
};
//获取数量
function countAll(conditions, callback) {
ForumFollowThread.count(conditions, function(err, count) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, count);
}
});
}
//分页查询
exports.find = function(pageNo, pageSize, conditions, sort, 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);
var sortby = "-_id";
if (sort) {
sortby = sort;
}
ForumFollowThread.find(conditions).skip(skip).limit(pageSize).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;
callback(null, obj);
}
});
}
});
};
//获取列表
exports.findAll = function(conditions, sort, fields, callback) {
var sortby = "-_id";
if (sort) {
sortby = sort;
}
ForumFollowThread.find(conditions).select(fields).sort(sortby).exec(function(err, docs) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, docs);
}
});
};
exports.isNotFollow = function(conditions, callback) {
countAll(conditions, function(err, count) {
if (err) {
console.error(err);
callback(err, null);
} else if (count > 0) {
callback(1);
} else {
callback(null);
}
});
};
//获取列表数量
exports.count = function(conditions, callback) {
countAll(conditions, function(err, count) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, count);
}
});
};
//获取列表
exports.findWithThread = function(conditions, subFields, callback) {
ForumFollowThread.find(conditions).populate({
path: 'thread',
select: subFields
}).exec(function(err, docs) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, docs);
}
});
};
'use strict';
var mongoose = require('mongoose');
var ForumFollowUser = mongoose.model('ForumFollowUser');
exports.create=function(entity,callback){
var forum = new ForumFollowUser(entity);
forum.save(function(err, doc) {
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,doc);
}
});
};
exports.remove=function(conditions,callback){
ForumFollowUser.remove(conditions, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
}
});
};
//获取数量
function countAll(conditions,callback) {
ForumFollowUser.count(conditions, function (err, count) {
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
}
//分页查询
exports.find= function(pageNo, pageSize, conditions, sort, 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);
var sortby = "-_id";
if(sort){
sortby = sort;
}
ForumFollowUser.find(conditions).populate({
path: 'to',
select: 'uid mid nickName icon honorTitles'
}).skip(skip).limit(pageSize).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;
callback(null,obj);
}
});
}
});
};
//获取列表
exports.findAll=function(conditions, sort, callback){
var sortby = "-_id";
if(sort){
sortby = sort;
}
ForumFollowUser.find(conditions).sort(sortby).exec(function(err, docs){
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,docs);
}
});
};
exports.isNotFollow= function(conditions, callback) {
countAll(conditions,function(err,count){
if(err){
console.error(err);
callback(err,null);
}else if(count > 0){
callback(1);
}else{
callback(null);
}
});
};
//获取列表
exports.count=function(conditions, callback){
countAll(conditions,function(err,count){
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
};
\ No newline at end of file
...@@ -19,6 +19,21 @@ exports.createUser = function(entity, callback) { ...@@ -19,6 +19,21 @@ exports.createUser = function(entity, callback) {
}); });
}; };
//根据Uid获取用户
exports.getByConditionsSelectyField = function(conditions, fields, callback) {
ForumUser.findOne(conditions).select(fields).exec(function(err, result) {
if (err) {
callback(err, null);
} else {
if (result) {
callback(null, result);
} else {
callback(null, null);
}
}
});
};
//根据Uid获取用户 //根据Uid获取用户
exports.getUserByUid = function(uid, callback) { exports.getUserByUid = function(uid, callback) {
ForumUser.findOne({ ForumUser.findOne({
...@@ -380,4 +395,15 @@ exports.searchMembersWithFields = function(q, fields, sort, callback) { ...@@ -380,4 +395,15 @@ exports.searchMembersWithFields = function(q, fields, sort, callback) {
ForumUser.find(q).select(fields).sort(sort).exec(function(err, docs) { ForumUser.find(q).select(fields).sort(sort).exec(function(err, docs) {
callback(err, docs); callback(err, docs);
}); });
};
//查询用户收藏记录
exports.getUserFavorThreadIds = function(q, fields, callback) {
ForumUser.findOne(q).select(fields).exec(function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, result);
}
});
}; };
\ No newline at end of file
'use strict'; 'use strict';
var _ = require('lodash');
var request = require('request');
var env = process.env.NODE_ENV;
var API_ADDRESS = 'http://localhost:8080';
if (env == 'sandbox') {
API_ADDRESS = 'http://rest.wxpai.cn';
} else if (env == 'production') {
API_ADDRESS = 'https://rest.wxpai.cn';
}
var forumUserService=require('../service/forumUserService'); var forumUserService=require('../service/forumUserService');
exports.getMobileUser=function(req){ exports.getMobileUser=function(req){
return req.session.mobileForumUser.userId; return req.session.mobileForumUser.userId;
// return '55015675868b65a028187c49';
} }
exports.getOpenId=function(req){ exports.getOpenId=function(req){
...@@ -83,4 +93,22 @@ exports.identifyUser=function() { ...@@ -83,4 +93,22 @@ exports.identifyUser=function() {
} }
}
exports.findMember=function(ent_code, mid, callback){
var url = API_ADDRESS + '/v1.0/internal/member/infoAndRankInfo';
request.post({
url: url,
json: {
entCode:ent_code,
ids:[mid]
}
}, function(e, r, body) {
if (e) {
console.log(e)
callback(e, null);
}else{
callback(null, body.data);
}
});
} }
\ 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