Commit 691235a5 authored by 张淼's avatar 张淼

1

parent 2bc95dfd
...@@ -29,6 +29,41 @@ router.post('/group/create', function(req, res, next) { ...@@ -29,6 +29,41 @@ router.post('/group/create', function(req, res, next) {
}); });
}); });
//
router.post('/group/:gid/update', function(req, res, next) {
var rs = {};
var gid=req.params.gid;
if(gid){
forumGroupService.updateGroupById(gid,req.body,function(err,group){
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
}else{
res.json(returnCode.WRONG_PARAM);
}
});
//
router.post('/group/:gid/delete', function(req, res, next) {
var gid=req.params.gid;
if(gid){
forumGroupService.deleteGroupById(gid,function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(returnCode.SUCCESS);
}
});
}else{
res.json(returnCode.WRONG_PARAM);
}
});
//获取目标论坛组信息 //获取目标论坛组信息
router.get('/group/:gid/info', function(req, res, next) { router.get('/group/:gid/info', function(req, res, next) {
var gid = req.params.gid || null; var gid = req.params.gid || null;
...@@ -50,6 +85,26 @@ router.get('/group/:gid/info', function(req, res, next) { ...@@ -50,6 +85,26 @@ router.get('/group/:gid/info', function(req, res, next) {
} }
}); });
/**
* 获取论坛组列表
* @param {[type]} req [description]
* @param {[type]} res [description]
* @param {[type]} next) { var pageNo [description]
* @return {[type]} [description]
*/
router.get('/group/list', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
forumGroupService.getAll(req.session.user.ent_code,pageNo,pageSize,function(err,results){
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
res.json(_.assign(results, returnCode.SUCCESS));
}
});
});
/** /**
* 获取板块列表 * 获取板块列表
* @param {[type]} req [description] * @param {[type]} req [description]
......
...@@ -93,7 +93,7 @@ router.get('/info/:fid/threads', function(req, res, next) { ...@@ -93,7 +93,7 @@ router.get('/info/:fid/threads', function(req, res, next) {
var fid=req.params.fid; var fid=req.params.fid;
if(fid){ if(fid){
forumThreadService.getAll(req.session.user.ent_code,fid,pageNo,pageSize,function(err,results){ forumThreadService.getAllThreadByFid(req.session.user.ent_code,fid,pageNo,pageSize,function(err,results){
if(err){ if(err){
console.error(err); console.error(err);
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
...@@ -105,3 +105,24 @@ router.get('/info/:fid/threads', function(req, res, next) { ...@@ -105,3 +105,24 @@ router.get('/info/:fid/threads', function(req, res, next) {
res.json(returnCode.WRONG_PARAM); res.json(returnCode.WRONG_PARAM);
} }
}); });
/**
* [description]
* @param {[type]}
* @param {[type]}
* @param {[type]}
* @return {[type]}
*/
router.get('/threads/list', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
forumThreadService.getAllThread(req.session.user.ent_code,pageNo,pageSize,function(err,results){
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
res.json(_.assign(results, returnCode.SUCCESS));
}
});
});
'use strict';
var express = require('express'),
router = express.Router(),
returnCode = require('../../utils/returnCode'),
_ = require('lodash');
var mongoose = require('mongoose');
var forumOptionsService=require('../../service/forumOptionsService');
module.exports = function(app) {
app.use('/admin/forum', router);
};
//文章收藏
router.post('/options/create', function(req, res, next) {
var rs = {};
forumOptionsService.setShuffling(req.session.user.ent_code,req.body.value,function(err,entity){
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
rs.data = {'id':entity._id};
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
});
\ No newline at end of file
...@@ -9,6 +9,9 @@ var ForumInfo = mongoose.model('ForumInfo'); ...@@ -9,6 +9,9 @@ var ForumInfo = mongoose.model('ForumInfo');
var forumGroupService=require('../../service/forumGroupService'); var forumGroupService=require('../../service/forumGroupService');
var forumInfoService=require('../../service/forumInfoService'); var forumInfoService=require('../../service/forumInfoService');
var forumOptionsService=require('../../service/forumOptionsService');
var async=require('async');
module.exports = function(app) { module.exports = function(app) {
app.use('/v1/forum', router); app.use('/v1/forum', router);
...@@ -50,6 +53,27 @@ router.get('/group/:gid/info', function(req, res, next) { ...@@ -50,6 +53,27 @@ router.get('/group/:gid/info', function(req, res, next) {
} }
}); });
/**
* 获取论坛组列表
* @param {[type]} req [description]
* @param {[type]} res [description]
* @param {[type]} next) { var pageNo [description]
* @return {[type]} [description]
*/
router.get('/group/list', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
forumGroupService.getAll(req.session.user.ent_code,pageNo,pageSize,function(err,results){
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
res.json(_.assign(results, returnCode.SUCCESS));
}
});
});
/** /**
* 获取板块列表 * 获取板块列表
* @param {[type]} req [description] * @param {[type]} req [description]
...@@ -75,3 +99,47 @@ router.get('/group/:gid/forumInfos', function(req, res, next) { ...@@ -75,3 +99,47 @@ router.get('/group/:gid/forumInfos', function(req, res, next) {
res.json(returnCode.WRONG_PARAM); res.json(returnCode.WRONG_PARAM);
} }
}); });
/**
* 获取板块列表及轮播图
* @param {[type]} req [description]
* @param {[type]} res [description]
* @param {[type]} next) { var pageNo [description]
* @return {[type]} [description]
*/
router.get('/group/:gid/forumInfosAndShuffling', function(req, res, next) {
async.parallel([
function(callback){
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var gid=req.params.gid;
if(gid){
forumInfoService.getAll(req.session.user.ent_code,gid,pageNo,pageSize,function(err,results){
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,results);
}
});
}else{
callback('not find gid',null);
}
},
function(callback){
forumOptionsService.getShuffling(req.session.user.ent_code,callback);
}
],function(err,results){
if(err){
res.json(returnCode.BUSY);
}else{
var infos=results[0];
var shuffling=results[1];
var rs={};
rs.infos=infos;
rs.shuffling=shuffling;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
});
\ No newline at end of file
...@@ -33,6 +33,27 @@ router.post('/thread/create', function(req, res, next) { ...@@ -33,6 +33,27 @@ router.post('/thread/create', function(req, res, next) {
}); });
}); });
/**
* [description]
* @param {[type]}
* @param {[type]}
* @param {[type]}
* @return {[type]}
*/
router.get('/threads/list', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
forumThreadService.getAllThread(req.session.user.ent_code,pageNo,pageSize,function(err,results){
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
res.json(_.assign(results, returnCode.SUCCESS));
}
});
});
//获取目标论坛文章 //获取目标论坛文章
router.get('/thread/:tid/get', function(req, res, next) { router.get('/thread/:tid/get', function(req, res, next) {
var tid = req.params.tid || null; var tid = req.params.tid || null;
......
...@@ -26,6 +26,11 @@ var ForumGroupSchema = new Schema({ ...@@ -26,6 +26,11 @@ var ForumGroupSchema = new Schema({
type: Number, type: Number,
require: true, require: true,
default: 1 default: 1
},
created: {
type: Date,
required: true,
default:Date.now
} }
}, { }, {
......
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//社区配置
var ForumOptionsSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
key: {
type: String,
require: true,
index: true
},
value: {
type: String,
require: true
}
}, {
'collection': 'pisns_forum_options'
});
module.exports = mongoose.model('ForumOptions', ForumOptionsSchema);
\ No newline at end of file
...@@ -54,9 +54,7 @@ var ForumThreadSchema = new Schema({ ...@@ -54,9 +54,7 @@ var ForumThreadSchema = new Schema({
tag: { //话题归属标签 tag: { //话题归属标签
type: Array type: Array
}, },
comments: { //评论内容列表 comments: [{type: Schema.Types.ObjectId, ref: 'ForumComment'}], //评论内容列表
type: Array
},
share: { //自定义分享 share: { //自定义分享
type: Schema.Types.ObjectId, type: Schema.Types.ObjectId,
ref: 'ForumShare' ref: 'ForumShare'
...@@ -85,6 +83,11 @@ var ForumThreadSchema = new Schema({ ...@@ -85,6 +83,11 @@ var ForumThreadSchema = new Schema({
type: Number, type: Number,
require: true, require: true,
default: 1 default: 1
},
created: {
type: Date,
required: true,
default:Date.now
} }
}, { }, {
......
...@@ -15,6 +15,30 @@ exports.createGroup=function(entity,callback){ ...@@ -15,6 +15,30 @@ exports.createGroup=function(entity,callback){
}); });
}; };
//根据ID更新论坛板块
exports.updateGroupById=function(gid,entity,callback){
ForumGroup.update({ _id: fid}, entity,null,function(err,result){
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,null);
}
});
};
//根据ID更新论坛组
exports.deleteGroupById=function(gid,callback){
ForumGroup.remove({ _id: gid},function(err,result){
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,null);
}
});
};
//根据ID获取论坛组 //根据ID获取论坛组
exports.getGroupById=function(gid,callback){ exports.getGroupById=function(gid,callback){
ForumGroup.findById(gid, function(err, thread) { ForumGroup.findById(gid, function(err, thread) {
...@@ -50,3 +74,41 @@ exports.deleteGroupById=function(gid,callback){ ...@@ -50,3 +74,41 @@ exports.deleteGroupById=function(gid,callback){
} }
}); });
}; };
//获取数量
function countAll(ent_code,callback) {
ForumGroup.count({ent_code:ent_code}, function (err, count) {
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
}
//获取全部列表数据
exports.getAll= function(ent_code,pageNo,pageSize,callback) {
countAll(ent_code,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);
ForumGroup.find({ent_code:ent_code}, null, {skip: skip,limit:limit,sort:'created'},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);
}
});
}
});
};
...@@ -53,7 +53,7 @@ exports.deleteInfoById=function(fid,callback){ ...@@ -53,7 +53,7 @@ exports.deleteInfoById=function(fid,callback){
//获取数量 //获取数量
function countAll(ent_code,gid,callback) { function countAll(ent_code,gid,callback) {
ForumRolePermission.count({ent_code:ent_code,group:gid}, function (err, count) { ForumInfo.count({ent_code:ent_code,group:gid}, function (err, count) {
if(err){ if(err){
console.error(err); console.error(err);
callback(err,null); callback(err,null);
...@@ -65,14 +65,14 @@ function countAll(ent_code,gid,callback) { ...@@ -65,14 +65,14 @@ function countAll(ent_code,gid,callback) {
//获取全部列表数据 //获取全部列表数据
exports.getAll= function(ent_code,gid,pageNo,pageSize,callback) { exports.getAll= function(ent_code,gid,pageNo,pageSize,callback) {
countAll(ent_code,function(err,count){ countAll(ent_code,gid,function(err,count){
if(err){ if(err){
console.error(err); console.error(err);
callback(err,null); callback(err,null);
}else{ }else{
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);
ForumRolePermission.find({ent_code:ent_code,group:gid}, null, {skip: skip,limit:limit},function(err,docs){ ForumInfo.find({ent_code:ent_code,group:gid}, null, {skip: skip,limit:limit},function(err,docs){
if (err) { if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err,null);
......
'use strict';
var mongoose = require('mongoose');
var ForumOptions = mongoose.model('ForumOptions');
var optionsKey = require('../utils/optionsKey')
//设置轮播图
exports.setShuffling=function(ent_code,value,callback){
ForumOptions.find({ent_code:ent_code,key:optionsKey.shuffling}, null, {},function(err,docs){
if (err) {
console.error(err);
callback(err,null);
} else {
if(err){
console.error(err);
callback(err,null);
}else{
if(docs && docs.length>0){
var entity=docs[0];
ForumOptions.update({ _id: entity._id}, {value:value},null,function(err,result){
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,null);
}
});
}else{
var forum = new ForumOptions({ent_code:ent_code,key:optionsKey.shuffling,value:value});
forum.save(function(err, forum) {
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,forum);
}
});
}
}
}
});
};
//获取轮播图
exports.getShuffling=function(ent_code,callback){
ForumOptions.find({ent_code:ent_code,key:optionsKey.shuffling}, null, {},function(err,docs){
if (err) {
console.error(err);
callback(err,null);
} else {
if(err){
console.error(err);
callback(err,null);
}else{
if(docs && docs.length>0){
callback(null,docs[0].value);
}else{
callback(null,null);
}
}
}
});
};
'use strict'; 'use strict';
var mongoose = require('mongoose'); var mongoose = require('mongoose');
var ForumThread = mongoose.model('ForumThread'); var ForumThread = mongoose.model('ForumThread');
var ForumComment = mongoose.model('ForumComment');
var async = require('async');
//创建文章 //创建文章
exports.createThread=function(entity,callback){ exports.createThread=function(entity,callback){
...@@ -51,9 +53,79 @@ exports.deleteThreadById=function(tid,callback){ ...@@ -51,9 +53,79 @@ exports.deleteThreadById=function(tid,callback){
}); });
}; };
function populateComment(doc, callback){
if (doc && doc.comments.length > 0) {
var asyncTasks = [];
doc.comments.forEach(function(comment){
asyncTasks.push(function(callback) {
ForumComment.populate(comment, {path:'from to', select:'uid nickName icon'} , function(err, c){
if (err) {
console.error(err);
callback(null, null);
} else{
callback(null ,null);
}
});
});
});
async.parallel(asyncTasks, function(err, results) {
if (err) {
console.log(err);
callback(null, null);
} else {
callback(null, null);
}
});
} else{
callback(null, null);
}
}
//获取数量
function countAllByFid(ent_code,fid,callback) {
ForumThread.count({ent_code:ent_code,info:fid}, function (err, count) {
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
}
//获取全部列表数据
exports.getAllThreadByFid= function(ent_code,fid,pageNo,pageSize,callback) {
countAllByFid(ent_code,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);
ForumThread.find({ent_code:ent_code,info:fid}, null, {skip: skip,limit:limit},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 countAll(ent_code,fid,callback) { function countAll(ent_code,callback) {
ForumRolePermission.count({ent_code:ent_code,info:fid}, function (err, count) { ForumThread.count({ent_code:ent_code}, function (err, count) {
if(err){ if(err){
console.error(err); console.error(err);
callback(err,null); callback(err,null);
...@@ -63,8 +135,9 @@ function countAll(ent_code,fid,callback) { ...@@ -63,8 +135,9 @@ function countAll(ent_code,fid,callback) {
}); });
} }
//获取全部列表数据 //获取全部列表数据
exports.getAll= function(ent_code,fid,pageNo,pageSize,callback) { exports.getAllThread= function(ent_code,pageNo,pageSize,callback) {
countAll(ent_code,function(err,count){ countAll(ent_code,function(err,count){
if(err){ if(err){
console.error(err); console.error(err);
...@@ -72,7 +145,7 @@ exports.getAll= function(ent_code,fid,pageNo,pageSize,callback) { ...@@ -72,7 +145,7 @@ exports.getAll= function(ent_code,fid,pageNo,pageSize,callback) {
}else{ }else{
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);
ForumRolePermission.find({ent_code:ent_code,info:fid}, null, {skip: skip,limit:limit},function(err,docs){ ForumThread.find({ent_code:ent_code}).populate('from').populate({path:'comments',options:{limit:5}, select:'from to created content'}).limit(limit).skip(skip).exec(function(err, docs) {
if (err) { if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err,null);
...@@ -82,9 +155,39 @@ exports.getAll= function(ent_code,fid,pageNo,pageSize,callback) { ...@@ -82,9 +155,39 @@ exports.getAll= function(ent_code,fid,pageNo,pageSize,callback) {
obj.pageNo=pageNo; obj.pageNo=pageNo;
obj.pageSize=pageSize; obj.pageSize=pageSize;
obj.items=docs; obj.items=docs;
if (docs && docs.length > 0) {
var asyncTasks = [];
docs.forEach(function(doc){
asyncTasks.push(function(callback) {
populateComment(doc, callback);
});
});
async.parallel(asyncTasks, function(err, results) {
if (err) {
console.log(err);
callback(null, null);
} else {
callback(null,obj); callback(null,obj);
} }
}); });
}
}
});
// ForumThread.find({ent_code:ent_code}, null, {skip: skip,limit:limit},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);
// }
// });
} }
}); });
}; };
'use strict';
module.exports = {
shuffling: {
key: '_forum_index_head_carousel',
desc: '轮播图设置'
}
};
\ 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