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

1

parent 2bc95dfd
......@@ -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) {
var gid = req.params.gid || null;
......@@ -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]
......
......@@ -93,7 +93,7 @@ router.get('/info/:fid/threads', function(req, res, next) {
var fid=req.params.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){
console.error(err);
res.json(returnCode.BUSY);
......@@ -105,3 +105,24 @@ router.get('/info/:fid/threads', function(req, res, next) {
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');
var forumGroupService=require('../../service/forumGroupService');
var forumInfoService=require('../../service/forumInfoService');
var forumOptionsService=require('../../service/forumOptionsService');
var async=require('async');
module.exports = function(app) {
app.use('/v1/forum', router);
......@@ -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]
......@@ -74,4 +98,48 @@ router.get('/group/:gid/forumInfos', function(req, res, next) {
}else{
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) {
});
});
/**
* [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) {
var tid = req.params.tid || null;
......
......@@ -26,6 +26,11 @@ var ForumGroupSchema = new Schema({
type: Number,
require: true,
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({
tag: { //话题归属标签
type: Array
},
comments: { //评论内容列表
type: Array
},
comments: [{type: Schema.Types.ObjectId, ref: 'ForumComment'}], //评论内容列表
share: { //自定义分享
type: Schema.Types.ObjectId,
ref: 'ForumShare'
......@@ -85,6 +83,11 @@ var ForumThreadSchema = new Schema({
type: Number,
require: true,
default: 1
},
created: {
type: Date,
required: true,
default:Date.now
}
}, {
......
......@@ -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获取论坛组
exports.getGroupById=function(gid,callback){
ForumGroup.findById(gid, function(err, thread) {
......@@ -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){
//获取数量
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){
console.error(err);
callback(err,null);
......@@ -65,14 +65,14 @@ function countAll(ent_code,gid,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){
console.error(err);
callback(err,null);
}else{
var skip = (pageNo - 1) * pageSize;
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) {
console.error(err);
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';
var mongoose = require('mongoose');
var ForumThread = mongoose.model('ForumThread');
var ForumComment = mongoose.model('ForumComment');
var async = require('async');
//创建文章
exports.createThread=function(entity,callback){
......@@ -51,9 +53,41 @@ 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 countAll(ent_code,fid,callback) {
ForumRolePermission.count({ent_code:ent_code,info:fid}, function (err, count) {
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);
......@@ -64,15 +98,15 @@ function countAll(ent_code,fid,callback) {
}
//获取全部列表数据
exports.getAll= function(ent_code,fid,pageNo,pageSize,callback) {
countAll(ent_code,function(err,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);
ForumRolePermission.find({ent_code:ent_code,info:fid}, null, {skip: skip,limit:limit},function(err,docs){
ForumThread.find({ent_code:ent_code,info:fid}, null, {skip: skip,limit:limit},function(err,docs){
if (err) {
console.error(err);
callback(err,null);
......@@ -88,3 +122,72 @@ exports.getAll= function(ent_code,fid,pageNo,pageSize,callback) {
}
});
};
//获取数量
function countAll(ent_code,callback) {
ForumThread.count({ent_code:ent_code}, function (err, count) {
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
}
//获取全部列表数据
exports.getAllThread= 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);
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) {
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){
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);
}
});
}
}
});
// 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