Commit 0189d7b3 authored by 陈家荣's avatar 陈家荣

Merge branch 'development' of git.wxpai.cn:scrmgroup/pisns-forum-api into development

Conflicts:
	app/controllers/admin/forumThread.js
	app/controllers/mobile/forumThread.js
parents 1bc91e62 f2a61e4b
'use strict';
var express = require('express'),
router = express.Router(),
returnCode = require('../../utils/returnCode'),
_ = require('lodash');
var ForumBlackListService=require('../../service/forumBlackListService');
var ForumUserService=require('../../service/forumUserService');
module.exports = function(app) {
app.use('/admin/forum', router);
};
//增加黑名单
router.post('/blacklist', function(req, res, next) {
var ent_code=req.session.user.ent_code;
ForumBlackListService.addBlack(req.body,ent_code,function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
//导入黑名单excel
router.post('/importExcelBlacklist', function(req, res, next) {
var blacks = req.body.blacks;
var ent_code=req.session.user.ent_code;
ForumBlackListService.addBlacks(blacks,ent_code,function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
//获取黑名单分页列表
router.get('/blacklist', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var status=req.query.status;
var blackOpenId = req.query.blackOpenId;
var conditions={
ent_code:req.session.user.ent_code
};
if(status){
conditions.status = status;
}
if(blackOpenId){
conditions.blackOpenId = {
$regex: blackOpenId,
$options: 'i'
};
}
ForumBlackListService.getBlackPageList(conditions,pageNo,pageSize,function(err,results){
if(err){
console.error(err);
res.json(returnCode.BUSY);
}else{
res.json(_.assign(results, returnCode.SUCCESS));
}
});
});
//获取黑名单根据id
router.get('/blacklist/:id', function(req, res, next) {
var id = req.params.id;
ForumBlackListService.getBlackById(id,function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
//删除黑名单根据id
router.get('/blacklist/:id/del', function(req, res, next) {
var id = req.params.id;
ForumBlackListService.removeBlackById(id,function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
//更新
router.post('/blacklist/:id', function(req, res, next) {
var id = req.params.id;
ForumBlackListService.updateBlackById(id,req.body,function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
router.get('/userList', function(req, res, next) {
var obj={total:0};
obj.items=[];
ForumUserService.getUsers(req.query.pageNo,req.query.pageSize,
function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
obj.items = result.items;
obj.total = result.total;
res.json(_.assign(obj, returnCode.SUCCESS));
}
});
});
\ No newline at end of file
......@@ -7,6 +7,7 @@ var express = require('express'),
var mongoose = require('mongoose');
var forumUserService=require('../../service/forumUserService');
var forumThreadService=require('../../service/forumThreadService');
var httpService=require('../../service/httpService');
var async=require('async');
......@@ -52,3 +53,11 @@ router.post('/user/identifyUser',function(req,res,next){
res.json('success');
}
});
//微信分享带来用户
router.get('/user/from/share', function(req, res, next) {
var mid = req.query.mid,
action = req.query.action,
ent_code = req.query.ent_code;
httpService.sendRequest(ent_code,mid,action);
res.status(200).end();
});
\ No newline at end of file
'use strict';
var express = require('express'),
router = express.Router(),
returnCode = require('../../utils/returnCode'),
_ = require('lodash'),
then = require('thenjs'),
moment = require('moment'),
mongoose = require('mongoose');
//模型
var ForumPvLog = mongoose.model('ForumPVLog'),
ForumUvLog = mongoose.model('ForumUVLog'),
ForumThread = mongoose.model('ForumThread');
module.exports = function(app) {
app.use('/admin/forum', router);
};
//社区情况(首页)
router.get('/statistic',function(req, res, next) {
var yesterday = moment(new Date().getTime() - 24*3600*1000).format('YYYY-MM-DD'),
before_yesterday = moment(new Date().getTime() - 2*24*3600*1000).format('YYYY-MM-DD');
var y_begin = yesterday,
y_end = yesterday+' 23:59:59',
by_begin = before_yesterday,
by_end = before_yesterday+' 23:59:59';
var q = {ent_code:req.session.user.ent_code};
then.parallel([
function(cont){
//昨天访问用户
q.created = {$gte:y_begin,$lte:y_end};
ForumUvLog.count(q,cont);
},function(cont){
//前天访问用户
q.created = {$gte:by_begin,$lte:by_end};
ForumUvLog.count(q,cont);
},
function(cont){
//昨天发帖数
q.created = {$gte:y_begin,$lte:y_end};
ForumThread.count(q,cont);
},
function(cont){
//前天发帖数
q.created = {$gte:by_begin,$lte:by_end};
ForumThread.count(q,cont);
}
]).then(function(cont,datas){
var y_user = datas[0],
by_user = datas[1],
y_thread = datas[2],
by_thread = datas[3];
var user_rate = (by_user === 0)?y_user:(y_user/by_user).toFixed(4)-1,
thread_rate = (by_thread === 0)?y_thread:(y_thread/by_thread).toFixed(4)-1;
cont(null,y_user,user_rate,y_thread,thread_rate);
}).then(function(cont,y_user,user_rate,y_thread,thread_rate){
res.json({result:true,data:{
user:y_user,
user_rate:Math.round(user_rate>1?100:user_rate<0?0:user_rate*100),
thread:y_thread,
thread_rate:Math.round(thread_rate>1?100:thread_rate<0?0:thread_rate*100)
}})
}).fail(function(cont,err){
console.error(err);
res.json({result:false,err:err});
});
});
'use strict';
var express = require('express'),
router = express.Router(),
returnCode = require('../../utils/returnCode'),
_ = require('lodash');
var mongoose = require('mongoose');
//var forumThreadService = require('../../service/forumThreadService');
var forumShareConfigService = require('../../service/forumShareConfigService');
//var forumShareService = require('../../service/forumShareService');
//var config = require('../../../config/config');
var then = require('thenjs');
module.exports = function(app) {
app.use('/admin/forum', router);
};
//type:类型(板块,照片墙等); key:类型里面的标题(title,desc等);value:值
function getForumConfig(key, value, ent_code) {
var forumConfig = {};
forumConfig.meta_key = key;
forumConfig.meta_value = value;
forumConfig.ent_code = ent_code;
return forumConfig;
}
//批量创建默认分享设置
router.post('/forumConfig/put', function(req, res, next) {
var model = req.body;
var ent_code = req.session.user.ent_code;
model.ent_code = ent_code;
if (model.ent_code) {
forumShareConfigService.create(model, function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
res.json(_.assign(result, returnCode.SUCCESS));
}
});
} else {
res.json(returnCode.BUSY);
}
});
//初始化默认分享数据
router.get('/forumConfig/getConfig', function(req, res, next) {
var ent_code = req.session.user.ent_code;
forumShareConfigService.getByKey(ent_code, req.query.meta_key, function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
res.json({message:'success',data:result});
}
});
});
......@@ -294,9 +294,8 @@ router.post('/thread/comment/add', function(req, res, next) {
if(err){
res.json(returnCode.BUSY);
}else{
res.json(returnCode.SUCCESS,comment:result);
res.json(returnCode.SUCCESS);
}
});
}
});
\ No newline at end of file
......@@ -6,13 +6,14 @@ var express = require('express'),
var mongoose = require('mongoose');
var ForumInfo = mongoose.model('ForumInfo');
var forumInfoService=require('../../service/forumInfoService');
var forumThreadService=require('../../service/forumThreadService');
var forumUserThreadControlService=require('../../service/forumUserThreadControlService');
var forumInfoService = require('../../service/forumInfoService');
var forumThreadService = require('../../service/forumThreadService');
var forumUserThreadControlService = require('../../service/forumUserThreadControlService');
var httpService = require('../../service/httpService');
var user=require('../../utils/user');
var user = require('../../utils/user');
var async=require('async');
var async = require('async');
module.exports = function(app) {
app.use('/v1/forum', router);
......@@ -21,64 +22,69 @@ module.exports = function(app) {
//新增论坛板块
router.post('/info/create', function(req, res, next) {
var rs = {};
req.body.ent_code=req.session.user.ent_code;
forumInfoService.createInfo(req.body,function(err,info){
req.body.ent_code = req.session.user.ent_code;
forumInfoService.createInfo(req.body, function(err, info) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
rs.data = {'id':info._id};
rs.data = {
'id': info._id
};
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
});
//获取目标论坛板块
router.get('/info/:fid/get', function(req, res, next) {
var fid = req.params.fid || null;
if (fid) {
httpService.createLog(req,fid,2);
async.waterfall([
function(callback){
function(callback) {
//更新浏览数
forumInfoService.updateInfoPvCount(fid,function(err,result){
if(err){
callback(err,null);
}else{
callback(null,null);
forumInfoService.updateInfoPvCount(fid, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
},
function(data,callback){
forumInfoService.getInfoById(fid,function(err,info){
function(data, callback) {
forumInfoService.getInfoById(fid, function(err, info) {
if (err) {
callback(err,null);
callback(err, null);
} else {
callback(null,info);
callback(null, info);
}
});
},
function(info,callback){
forumThreadService.getAllCountByFid({info:fid},function(err,threadCount){
if(err){
callback(err,null,null);
}else{
callback(null,info,threadCount);
function(info, callback) {
forumThreadService.getAllCountByFid({
info: fid
}, function(err, threadCount) {
if (err) {
callback(err, null, null);
} else {
callback(null, info, threadCount);
}
});
}
],function(err,info,threadCount){
], function(err, info, threadCount) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
var rs={};
var rs = {};
rs.data = info;
rs.data.threadCount=threadCount;
rs.data.threadCount = threadCount;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
......@@ -86,32 +92,32 @@ router.get('/info/:fid/get', function(req, res, next) {
//更新目标论坛板块
router.post('/info/:fid/update', function(req, res, next) {
var fid=req.params.fid;
if(fid){
forumInfoService.updateInfoById(fid,req.body,function(err,result){
if(err){
var fid = req.params.fid;
if (fid) {
forumInfoService.updateInfoById(fid, req.body, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
res.json(returnCode.SUCCESS);
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//删除目标论坛板块
router.post('/info/:fid/delete', function(req, res, next) {
var fid=req.params.fid;
if(fid){
forumInfoService.deleteInfoById(fid,function(err,result){
if(err){
var fid = req.params.fid;
if (fid) {
forumInfoService.deleteInfoById(fid, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
res.json(returnCode.SUCCESS);
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
......@@ -126,260 +132,273 @@ router.post('/info/:fid/delete', function(req, res, next) {
router.get('/info/:fid/threads', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var fid=req.params.fid;
var conditions={
ent_code:req.session.user.ent_code,
level:1
var fid = req.params.fid;
var conditions = {
ent_code: req.session.user.ent_code,
level: 1
};
if(fid){
conditions.info=fid;
if (fid) {
conditions.info = fid;
}
if(fid){
if (fid) {
async.waterfall([
function(callback){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
callback(err,null);
}else{
if(doc){
callback(null,doc);
}else{
callback(null,null);
function(callback) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
callback(err, null);
} else {
if (doc) {
callback(null, doc);
} else {
callback(null, null);
}
}
});
}
],function(err,result){
if(err){
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
conditions._id={$nin:result.thread};
} else {
if (result) {
conditions._id = {
$nin: result.thread
};
}
forumThreadService.getAllThreadByFid(conditions,pageNo,pageSize,null,function(err,results){
if(err){
forumThreadService.getAllThreadByFid(conditions, pageNo, pageSize, null, function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//获取论坛最热文章列表
router.get('/info/:fid/hotThreads', function(req, res, next) {
var fid=req.params.fid || null;
var fid = req.params.fid || null;
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var conditions={
ent_code:req.session.user.ent_code,
level:1,
info:fid
var conditions = {
ent_code: req.session.user.ent_code,
level: 1,
info: fid
};
if(fid){
if (fid) {
async.waterfall([
function(callback){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
callback(err,null);
}else{
if(doc){
callback(null,doc);
}else{
callback(null,null);
function(callback) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
callback(err, null);
} else {
if (doc) {
callback(null, doc);
} else {
callback(null, null);
}
}
});
}
],function(err,result){
if(err){
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
conditions._id={$nin:result.thread};
} else {
if (result) {
conditions._id = {
$nin: result.thread
};
}
forumThreadService.getAllThreadByFid(conditions,pageNo,pageSize,'-comment_count -praise_count',function(err,results){
if(err){
forumThreadService.getAllThreadByFid(conditions, pageNo, pageSize, '-comment_count -praise_count', function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//获取论坛晒图文章列表
router.get('/info/:fid/photoThreads', function(req, res, next) {
var fid=req.params.fid || null;
var fid = req.params.fid || null;
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var conditions={
ent_code:req.session.user.ent_code,
level:1,
info:fid,
type:3
var conditions = {
ent_code: req.session.user.ent_code,
level: 1,
info: fid,
type: 3
};
if(fid){
if (fid) {
async.waterfall([
function(callback){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
callback(err,null);
}else{
if(doc){
callback(null,doc);
}else{
callback(null,null);
function(callback) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
callback(err, null);
} else {
if (doc) {
callback(null, doc);
} else {
callback(null, null);
}
}
});
}
],function(err,result){
if(err){
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
conditions._id={$nin:result.thread};
} else {
if (result) {
conditions._id = {
$nin: result.thread
};
}
forumThreadService.getAllThreadByFid(conditions,pageNo,pageSize,null,function(err,results){
if(err){
forumThreadService.getAllThreadByFid(conditions, pageNo, pageSize, null, function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//获取我的文章列表
router.get('/info/:fid/myThreads', function(req, res, next) {
var fid=req.params.fid || null;
var fid = req.params.fid || null;
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var conditions={
ent_code:req.session.user.ent_code,
from:user.getMobileUser(req),
info:fid
var conditions = {
ent_code: req.session.user.ent_code,
from: user.getMobileUser(req),
info: fid
};
if(fid){
if (fid) {
async.waterfall([
function(callback){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
callback(err,null);
}else{
if(doc){
callback(null,doc);
}else{
callback(null,null);
function(callback) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
callback(err, null);
} else {
if (doc) {
callback(null, doc);
} else {
callback(null, null);
}
}
});
}
],function(err,result){
if(err){
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
conditions._id={$nin:result.thread};
} else {
if (result) {
conditions._id = {
$nin: result.thread
};
}
//获取子话题数据
forumThreadService.getAllThreadByFid(conditions,pageNo,pageSize,'-praise_count',function(err,results){
if(err){
forumThreadService.getAllThreadByFid(conditions, pageNo, pageSize, '-praise_count', function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//搜索文章列表
router.get('/info/:fid/serachThreads', function(req, res, next) {
var fid=req.params.fid || null;
var fid = req.params.fid || null;
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var content=req.query.content;
var content = req.query.content;
var conditions={
ent_code:req.session.user.ent_code,
info:fid
var conditions = {
ent_code: req.session.user.ent_code,
info: fid
};
if(content){
conditions.content={
if (content) {
conditions.content = {
$regex: content,
$options: 'i'
};
}
if(fid){
if (fid) {
async.waterfall([
function(callback){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
callback(err,null);
}else{
if(doc){
callback(null,doc);
}else{
callback(null,null);
function(callback) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
callback(err, null);
} else {
if (doc) {
callback(null, doc);
} else {
callback(null, null);
}
}
});
}
],function(err,result){
if(err){
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
conditions._id={$nin:result.thread};
} else {
if (result) {
conditions._id = {
$nin: result.thread
};
}
//获取子话题数据
forumThreadService.getAllThreadByFid(conditions,pageNo,pageSize,'-praise_count',function(err,results){
if(err){
forumThreadService.getAllThreadByFid(conditions, pageNo, pageSize, '-praise_count', function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
......@@ -9,14 +9,15 @@ var forumThreadService = require('../../service/forumThreadService');
var forumShareConfigService = require('../../service/forumShareConfigService');
var forumShareService = require('../../service/forumShareService');
var config = require('../../../config/config');
var httpService=require('../../service/httpService');
var then = require('thenjs');
//var forumInfoService = require('../../service/forumInfoService');
var forumInfoService = require('../../service/forumInfoService');
module.exports = function(app) {
app.use('/v1/forum', router);
};
function getWX(res, title, desc, link, imgUrl, mid) {
function write(res, title, desc, link, imgUrl, mid, ent_code) {
link = config.service + link + "&mid=" + mid;
res.writeHead(200, {
'Content-Type': 'text/javascript',
......@@ -31,7 +32,11 @@ function getWX(res, title, desc, link, imgUrl, mid) {
// imgUrl = 'http://dev.fs.wxpai.cn/upload/100001_2015410_1428671539587_40.jpg',
// desc = '测试描述';
// var string = '';
var string = 'wx.onMenuShareTimeline({' + '\"title\": \"' + title + '\",' + '\"link\":\"' + link + '\",' + '\"imgUrl\": \"' + imgUrl + '\", ' + 'success: function(){},' + 'cancel: function () {}' + ' });' + ' wx.onMenuShareAppMessage({' + '\"title\": \"' + title + '\", ' + '\"desc\": \"' + desc + '\", ' + '\"link\":\"' + link + '\", ' + '\"imgUrl\": \"' + imgUrl + '\", ' + '\"type\":\'\' ,' + '\"dataUrl\": \'\', ' + 'success: function(){},' + 'cancel: function () { ' + '}' + ' });'
var success = '$.ajax({'+
'type:\'GET\','+
'url: \'/v1/forum/'+ent_code+'/timeline\''+
'});';
var string = 'wx.onMenuShareTimeline({' + '\"title\": \"' + title + '\",' + '\"link\":\"' + link + '\",' + '\"imgUrl\": \"' + imgUrl + '\", ' + 'success: function(){'+success+'},' + 'cancel: function () {}' + ' });' + ' wx.onMenuShareAppMessage({' + '\"title\": \"' + title + '\", ' + '\"desc\": \"' + desc + '\", ' + '\"link\":\"' + link + '\", ' + '\"imgUrl\": \"' + imgUrl + '\", ' + '\"type\":\'\' ,' + '\"dataUrl\": \'\', ' + 'success: function(){},' + 'cancel: function () { ' + '}' + ' });'
res.write('wx.ready(function(){' + string + '});');
res.write('wx.error(function(res){console.log(res);});');
......@@ -39,134 +44,33 @@ function getWX(res, title, desc, link, imgUrl, mid) {
res.end();
}
//微信分享接口
router.get('/:ent_code/share.js', function(req, res, next) {
var rs = {};
var type = req.query.type;
var id = req.query.id;
var mid = req.session.openUser.mid || 0;
var ent_code = req.params.ent_code;
var link = '/app/forum/' + ent_code + '/index?pageUrl=';
if (type) {
//板块微信接口
if (type === 'Info') {
then(function(cont) {
forumShareConfigService.getByEntCode(ent_code, function(err, result) {
function getWX(res, title, desc, link, imgUrl, mid,ent_code, id,type,forumThread) {
//['{板块名称}','{文章标题}','{话题名称}','{照片墙标题}'];
//share_type:是否使用默认设置:1使用默认分享设置 2.使用自己的分享设置
link = config.service + link + "&mid=" + mid;
var title = '',
desc = '',
imgUrl = '';
if (result) {
for (var i = 0; i < result.length; i++) {
if (result[i].meta_key === 'share_info_title') {
title = result[i].meta_value;
} else if (result[i].meta_key === 'share_info_description') {
desc = result[i].meta_value;
} else if (result[i].meta_key === 'share_info_icon') {
imgUrl = result[i].meta_value;
}
}
link = link + 'index&infoId=' + id;
getWX(res, title, desc, link, imgUrl, mid);
} else {
cont(err);
}
});
}).fail(function(cont, err) {
console.error(err);
res.json({
result: false,
code: '10002'
});
});
} else if (!id) {
console.error("ID不能为空");
if (type==="Info") {
forumInfoService.getInfoById(id, function(err, forumInfo) {
if (err || forumInfo < 1) {
console.error("板块不存在或者发生未知错误");
res.json({
message: 'ID不能为空',
message: '板块不存在或者发生未知错误',
result: false,
code: '10002'
code: '10002',
error:err
});
} else if (type === 'Thread') {
then(function(cont) {
//获得文章
forumThreadService.getById(id, function(err, result) {
if (result) {
cont(null, result);
} else {
cont(err);
}else{
title = title.replace(/{板块名称}/g, forumInfo.name);
desc = desc.replace(/{板块名称}/g, forumInfo.name);
write(res, title, desc, link, imgUrl, mid,ent_code);
}
});
}).then(function(cont, result) {
//如果没有share值则用默认值
if (!result.share) {
forumShareConfigService.getByEntCode(ent_code, function(err, sc) {
var title = '',
desc = '',
imgUrl = '';
if (sc) {
var key = '';
//1、文章 2、话题 3、照片墙
} else if(type === "Thread"){
if (result.type === 1 || (result.type === 2 && result.level === 2)) {
link = link + 'thread&infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
key = 'article';
} else if (result.type === 2 && result.level === 1) {
link = link + 'topicList&infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
key = 'topic';
} else if (result.type === 3) {
link = link + 'photoList&infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
key = 'photo';
}
for (var i = 0; i < sc.length; i++) {
if (sc[i].meta_key === 'share_' + key + '_title') {
title = sc[i].meta_value;
} else if (sc[i].meta_key === 'share_' + key + '_description') {
desc = sc[i].meta_value;
} else if (sc[i].meta_key === 'share_' + key + '_icon') {
imgUrl = sc[i].meta_value;
}
}
getWX(res, title, desc, link, imgUrl, mid);
} else {
cont(err);
title = title.replace(/{文章标题}|{话题名称}|{照片墙标题}/g, forumThread.title);
desc = desc.replace(/{文章标题}|{话题名称}|{照片墙标题}/g, forumThread.title);
write(res, title, desc, link, imgUrl, mid,ent_code);
}
});
} else {
//如果有分享设置,则返回分享设置
forumShareService.getById(result.share, function(err, forumShare) {
//1、文章 2、话题 3、照片墙
}
if (result.type === 1 || (result.type === 2 && result.level === 2)) {
link = link + 'thread&infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
//key = 'article';
} else if (result.type === 2 && result.level === 1) {
link = link + 'topicList&infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
//key = 'topic';
} else if (result.type === 3) {
link = link + 'photoList&infoId=' + result.info + '&ent_code=' + ent_code + '&id=' + result._id;
//key = 'photo';
}
getWX(res, forumShare.title, forumShare.description, link, forumShare.icon, mid);
});
}
}).fail(function(cont, err) {
console.error(err);
res.json({
result: false,
code: '10002'
});
});
}
} else {
res.json({
result: false,
code: '10002'
});
}
});
'use strict';
var express = require('express'),
router = express.Router(),
returnCode = require('../../utils/returnCode'),
_ = require('lodash');
var mongoose = require('mongoose');
//var forumThreadService = require('../../service/forumThreadService');
var forumShareConfigService = require('../../service/forumShareConfigService');
//var forumShareService = require('../../service/forumShareService');
//var config = require('../../../config/config');
var then = require('thenjs');
module.exports = function(app) {
app.use('/v1/forum', router);
};
//type:类型(板块,照片墙等); key:类型里面的标题(title,desc等);value:值
function getForumConfig(key, value, ent_code) {
var forumConfig = {};
forumConfig.meta_key = key;
forumConfig.meta_value = value;
forumConfig.ent_code = ent_code;
return forumConfig;
}
//批量创建默认分享设置
router.post('/forumConfig/put', function(req, res, next) {
var model = req.body;
var ent_code = req.session.user.ent_code;
model.ent_code = ent_code;
if (model.ent_code) {
forumShareConfigService.create(model, function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
res.json(_.assign(result, returnCode.SUCCESS));
}
});
} else {
res.json(returnCode.BUSY);
}
});
//初始化默认分享数据
router.get('/forumConfig/getConfig', function(req, res, next) {
var ent_code = req.session.user.ent_code;
forumShareConfigService.getByKey(ent_code, req.query.meta_key, function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} else {
res.json({message:'success',data:result});
}
});
});
......@@ -7,81 +7,149 @@ var mongoose = require('mongoose');
var ForumThread = mongoose.model('ForumThread');
var ForumComment = mongoose.model('ForumComment');
var forumThreadService=require('../../service/forumThreadService');
var forumRolePermissionService=require('../../service/forumRolePermissionService');
var forumPraiseLogService=require('../../service/forumPraiseLogService');
var forumShareLogService=require('../../service/forumShareLogService');
var forumCommentService=require('../../service/forumCommentService');
var forumUserThreadControlService=require('../../service/forumUserThreadControlService');
var forumThreadService = require('../../service/forumThreadService');
var forumRolePermissionService = require('../../service/forumRolePermissionService');
var forumPraiseLogService = require('../../service/forumPraiseLogService');
var forumShareLogService = require('../../service/forumShareLogService');
var forumCommentService = require('../../service/forumCommentService');
var forumUserThreadControlService = require('../../service/forumUserThreadControlService');
var httpService=require('../../service/httpService');
var httpService = require('../../service/httpService');
var user=require('../../utils/user');
var async=require('async');
var user = require('../../utils/user');
var async = require('async');
module.exports = function(app) {
app.use('/v1/forum', router);
};
function create(req,callback){
var entity=req.body;
function create(req, callback) {
var entity = req.body;
if(entity.pid==''){
entity.pid=null;
if (entity.pid == '') {
entity.pid = null;
}
var address=entity.address || null;
if(address){
entity.address=JSON.parse(address);
var address = entity.address || null;
if (address) {
entity.address = JSON.parse(address);
}
entity.ent_code=req.session.user.ent_code;
entity.from=user.getMobileUser(req);
entity.ent_code = req.session.user.ent_code;
entity.from = user.getMobileUser(req);
//-----------处理前端上传图片开始
//格式为['http://imageurl','http://imageurl'],
//转换为[{urlFileName:'http://imageUrL'},{urlFileName:'http://imageUrL'}]
var images=entity.images;
if(images){
var array=[];
for(var i=0;i<images.length;i=i+1){
var images = entity.images;
if (images) {
var array = [];
for (var i = 0; i < images.length; i = i + 1) {
array.push({
urlFileName:images[i]
urlFileName: images[i]
});
}
entity.images=array;
entity.images = array;
}
//-----------处理前端上传图片结束
forumThreadService.createThread(entity,function(err,entity){
forumThreadService.createThread(entity, function(err, entity) {
if (err) {
console.error(err);
callback(err,null);
callback(err, null);
} else {
callback(null,entity);
callback(null, entity);
}
});
}
//根据发帖者分页查询话题列表
router.get('/thread/searchThread', function(req, res, next) {
//参数
var pageNo = req.query.pageNo,
pageSize = req.query.pageSize,
from = req.session.mobileForumUser.userId,
status = 1,
ent_code = req.session.user.ent_code;
if (pageNo && pageSize) {
var q = {
ent_code: ent_code,
status: status,
from: from
};
forumThreadService.findThreadByPage(pageNo, pageSize, q, function(err, result) {
if (err) {
console.error(err);
}
res.json(result);
});
} else {
console.error('params error');
res.json({
result: false,
err: 'params error'
});
}
});
//文章评论
router.get('/thread/searchComment', function(req, res, next) {
//参数
var pageNo = req.query.pageNo,
pageSize = req.query.pageSize,
from = req.session.mobileForumUser.userId,
status = 1,
ent_code = req.session.user.ent_code;
if (pageNo && pageSize) {
var q = {
ent_code: ent_code,
status: status,
from:req.session.mobileForumUser.from
};
forumThreadService.findCommentByPage(pageNo, pageSize, q, function(err, result) {
if (err) {
console.error(err);
}
res.json(result);
});
} else {
console.error('params error');
res.json({
result: false,
err: 'params error'
});
}
});
//新增论坛文章
router.post('/thread/create', function(req, res, next) {
var integral=req.session.openUser.integral||0;
var exp=req.session.openUser.exp||0;
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code,'create',integral,exp,function(err,result){
if(err){
var integral = req.session.openUser.integral || 0;
var exp = req.session.openUser.exp || 0;
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'create', integral, exp, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
}else{
if(result){//有操作权限
create(req,function(err,thread){
if(err){
} else {
if (result) { //有操作权限
create(req, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'post');
var rs = {};
rs.data = {'id':thread._id};
rs.data = {
'id': thread._id
};
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
}else{
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}
......@@ -91,69 +159,84 @@ router.post('/thread/create', function(req, res, next) {
//获取目标论坛文章
router.get('/thread/:tid/get', function(req, res, next) {
var tid = req.params.tid || null;
if(tid){
if (tid) {
async.waterfall([
function(callback){
forumThreadService.updateThreadPvCount(tid,function(err,doc){
if(err){
callback(err,null);
}else{
callback(null,null);
function(callback) {
forumThreadService.updateThreadPvCount(tid, function(err, doc) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
},
function(data,callback){
forumThreadService.getThreadById(tid,function(err,thread){
if(err){
callback(err,null);
}else{
callback(null,thread);
function(data, callback) {
forumThreadService.getThreadById(tid, function(err, thread) {
//文章类型 1、文章 2、话题 3、照片墙
var info_id = thread.info._id,
pid = thread.pid;
if (thread.type == 1 && thread.level == 1) {
httpService.createLog(req, info_id, 3, 1, tid);
} else if (thread.type == 1 && thread.level == 2) {
httpService.createLog(req, info_id, 3, 4, tid, pid);
} else if (thread.type == 2 && thread.level == 1) {
httpService.createLog(req, info_id, 3, 2, tid);
} else if (thread.type == 3 && thread.level == 1) {
httpService.createLog(req, info_id, 3, 3, tid);
}
if (err) {
callback(err, null);
} else {
callback(null, thread);
}
});
},
],function(err,thread){
if(err){
], function(err, thread) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
var rs = {};
rs.data = thread;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//更新文章状态、如:屏蔽
router.post('/thread/:tid/update', function(req, res, next) {
var tid=req.params.tid;
if(tid){
forumThreadService.updateThreadById(tid,req.body,function(err,thread){
if(err){
var tid = req.params.tid;
if (tid) {
forumThreadService.updateThreadById(tid, req.body, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
res.json(returnCode.SUCCESS);
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//删除文章
router.post('/thread/:tid/delete', function(req, res, next) {
var tid=req.params.tid;
if(tid){
forumThreadService.deleteThreadById(tid,function(err,thread){
if(err){
var tid = req.params.tid;
if (tid) {
forumThreadService.deleteThreadById(tid, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
res.json(returnCode.SUCCESS);
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
......@@ -161,82 +244,83 @@ router.post('/thread/:tid/delete', function(req, res, next) {
//文章点赞
router.post('/thread/:tid/raise', function(req, res, next) {
var tid = req.params.tid || null;
if(tid){
var integral=req.session.openUser.integral||0;
var exp=req.session.openUser.exp||0;
if (tid) {
var integral = req.session.openUser.integral || 0;
var exp = req.session.openUser.exp || 0;
//判断是否已经点赞
forumPraiseLogService.queryPraiseLog(tid,null,user.getMobileUser(req),1,function(err,logs){
if(err){
forumPraiseLogService.queryPraiseLog(tid, null, user.getMobileUser(req), 1, function(err, logs) {
if (err) {
res.json(returnCode.BUSY);
}else{
if(logs && logs.length>0){
} else {
if (logs && logs.length > 0) {
res.json(returnCode.CAN_NOT_RAISE_REPEAT);
}else{
} else {
//1.检查是否有权限
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code,'raise',integral,exp,function(err,result){
if(err){
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'raise', integral, exp, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
}else{
if(result){//有操作权限
} else {
if (result) { //有操作权限
//2.获取论坛文章
forumThreadService.getThreadById(tid,function(err,thread){
if(err){
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
async.parallel([
function(callback){
function(callback) {
//3.更新文章统计数据(点赞数)
if(thread){
forumThreadService.updateThreadRaiseCount(tid,function(err,cb){
if(err){
callback(err,null);
}else{
callback(null,null);
if (thread) {
forumThreadService.updateThreadRaiseCount(tid, function(err, cb) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}else{
callback('cannot find thread by id',null);
} else {
callback('cannot find thread by id', null);
}
},
function(callback){
var entity={
ent_code:req.session.user.ent_code,
user:user.getMobileUser(req),
thread:tid,
ip:req.ip,
comment:null,
type:1
function(callback) {
var entity = {
ent_code: req.session.user.ent_code,
user: user.getMobileUser(req),
thread: tid,
ip: req.ip,
comment: null,
type: 1
};
//4.创建点赞日志
forumPraiseLogService.createPraiseLog(entity,function(err,result){
if(err){
callback(err,null);
}else{
callback(null,null);
forumPraiseLogService.createPraiseLog(entity, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}],function(err,results){
if(err){
}
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
httpService.sendRequest(req.session.user.ent_code,user.getOpenId(req),tid,'raise');
forumThreadService.getThreadById(tid,function(err,doc){
if(err){
} else {
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'thread_praise');
forumThreadService.getThreadById(tid, function(err, doc) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
var rs={};
rs.praise_count=doc.praise_count;
res.json(_.assign(rs,returnCode.SUCCESS));
} else {
var rs = {};
rs.praise_count = doc.praise_count;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
}
});
}
});
}else{
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}
......@@ -245,7 +329,7 @@ router.post('/thread/:tid/raise', function(req, res, next) {
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
......@@ -253,70 +337,70 @@ router.post('/thread/:tid/raise', function(req, res, next) {
//文章分享
router.post('/thread/:tid/share', function(req, res, next) {
var tid = req.params.tid || null;
if(tid){
var integral=req.session.openUser.integral||0;
var exp=req.session.openUser.exp||0;
var destination=req.body.destination||'1';
if (tid) {
var integral = req.session.openUser.integral || 0;
var exp = req.session.openUser.exp || 0;
var destination = req.body.destination || '1';
//1.检查是否有权限
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code,'share',integral,exp,function(err,result){
if(err){
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'share', integral, exp, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
}else{
if(result){//有操作权限
} else {
if (result) { //有操作权限
//2.获取论坛文章
forumThreadService.getThreadById(tid,function(err,thread){
if(err){
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
async.parallel([
function(callback){
function(callback) {
//3.更新文章统计数据(分享数)
if(thread){
forumThreadService.updateThreadShareCount(tid,function(err,cb){
if(err){
callback(err,null);
}else{
callback(null,null);
if (thread) {
forumThreadService.updateThreadShareCount(tid, function(err, cb) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}else{
callback('cannot find thread by id',null);
} else {
callback('cannot find thread by id', null);
}
},
function(callback){
var entity={
ent_code:req.session.user.ent_code,
user:user.getMobileUser(req),
thread:tid,
destination:destination,
ip:req.ip
function(callback) {
var entity = {
ent_code: req.session.user.ent_code,
user: user.getMobileUser(req),
thread: tid,
destination: destination,
ip: req.ip
};
//4.创建分享日志
forumShareLogService.createShareLog(entity,function(err,result){
if(err){
callback(err,null);
}else{
callback(null,null);
forumShareLogService.createShareLog(entity, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
],function(err,results){
if(err){
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
httpService.sendRequest(req.session.user.ent_code,user.getOpenId(req),tid,'share');
} else {
// httpService.sendRequest(req.session.user.ent_code,req.session.openUser.mid,'share');
res.json(returnCode.SUCCESS);
}
});
}
});
}else{
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
......@@ -324,113 +408,115 @@ router.post('/thread/:tid/share', function(req, res, next) {
//新增文章评论
router.post('/thread/:tid/comment/create', function(req, res, next) {
var tid = req.params.tid || null;
if(tid){
var integral=req.session.openUser.integral||0;
var exp=req.session.openUser.exp||0;
var destination=req.body.destination||'1';
if (tid) {
var integral = req.session.openUser.integral || 0;
var exp = req.session.openUser.exp || 0;
var destination = req.body.destination || '1';
//1.检查是否有权限
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code,'comment',integral,exp,function(err,result){
if(err){
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'comment', integral, exp, function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){//有操作权限
var content=req.body.content;
if(content){//评论不能为空
} else {
if (result) { //有操作权限
var content = req.body.content;
if (content) { //评论不能为空
//2.获取论坛文章
forumThreadService.getThreadById(tid,function(err,thread){
if(err){
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
async.parallel([
function(callback){
var entity={
ent_code:req.session.user.ent_code,
from:user.getMobileUser(req),
content:content,
ip:req.ip,
thread:thread,
level:'1'
function(callback) {
var entity = {
ent_code: req.session.user.ent_code,
from: user.getMobileUser(req),
content: content,
ip: req.ip,
thread: thread,
level: '1'
};
//4.创建文章评论
forumCommentService.createComment(entity,function(err,newComment){
if(err){
callback(err,null);
}else{
var comments=thread.comments;
forumCommentService.createComment(entity, function(err, newComment) {
if (err) {
callback(err, null);
} else {
var comments = thread.comments;
// console.log('=========');
// console.log(comments);
// console.log('=========');
var array=[];
if(comments && comments.items && comments.items.length>0){
array=comments.items;
var array = [];
if (comments && comments.items && comments.items.length > 0) {
array = comments.items;
}
array.push(newComment._id);
forumThreadService.updateThreadById(tid,{comments:array},function(err,result){
if(err){
callback(err,null);
}else{
callback(null,null);
forumThreadService.updateThreadById(tid, {
comments: array
}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
});
},
function(callback){
function(callback) {
//3.更新文章统计数据(评论数)
if(thread){
forumThreadService.updateThreadCommentCount(tid,function(err,results){
if(err){
if (thread) {
forumThreadService.updateThreadCommentCount(tid, function(err, results) {
if (err) {
console.log(err);
callback(err,null);
}else{
callback(null,null);
callback(err, null);
} else {
callback(null, null);
}
});
}else{
callback('cannot find thread by id',null);
} else {
callback('cannot find thread by id', null);
}
}
],function(err,results){
if(err){
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
httpService.sendRequest(req.session.user.ent_code,user.getOpenId(req),tid,'comment');
} else {
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'comment');
async.parallel([
function(callback){
function(callback) {
//获取最新5条评论
var conditions={
thread:tid,
level:'1'
var conditions = {
thread: tid,
level: '1'
};
forumCommentService.getAllComment(conditions,1,5,function(err,results){
if(err){
forumCommentService.getAllComment(conditions, 1, 5, function(err, results) {
if (err) {
console.log(err);
callback(err,null);
}else{
callback(null,results);
callback(err, null);
} else {
callback(null, results);
}
});
},
function(callback){
forumThreadService.getThreadById(tid,function(err,thread){
if(err){
function(callback) {
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
console.log(err);
callback(err,null);
}else{
callback(null,thread);
callback(err, null);
} else {
callback(null, thread);
}
});
}
],function(err,results){
if(err){
], function(err, results) {
if (err) {
res.json(returnCode.BUSY);
}else{
var rs={};
rs.comments=results[0].items;
rs.commentCount=results[1].comment_count;
res.json(_.assign(rs,returnCode.SUCCESS));
} else {
var rs = {};
rs.comments = results[0].items;
rs.commentCount = results[1].comment_count;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
......@@ -438,15 +524,15 @@ router.post('/thread/:tid/comment/create', function(req, res, next) {
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
}else{
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
......@@ -454,83 +540,88 @@ router.post('/thread/:tid/comment/create', function(req, res, next) {
//新建文章评论的子评论
router.post('/thread/:tid/comment/:cid/create', function(req, res, next) {
var tid = req.params.tid || null;
var cid=req.params.cid || null;
if(tid && cid){
var integral=req.session.openUser.integral||0;
var exp=req.session.openUser.exp||0;
var destination=req.body.destination||'1';
req.body.from=user.getMobileUser(req);
var cid = req.params.cid || null;
if (tid && cid) {
var integral = req.session.openUser.integral || 0;
var exp = req.session.openUser.exp || 0;
var destination = req.body.destination || '1';
req.body.from = user.getMobileUser(req);
//1.检查是否有权限
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code,'reply',integral,exp,function(err,result){
if(err){
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'reply', integral, exp, function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){//有操作权限
var content=req.body.content;
if(content){//评论不能为空
} else {
if (result) { //有操作权限
var content = req.body.content;
if (content) { //评论不能为空
//2.获取论坛评论
forumCommentService.getCommentById(cid,function(err,comment){
if(err){
forumCommentService.getCommentById(cid, function(err, comment) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
async.parallel([
function(callback){
var entity={
ent_code:req.session.user.ent_code,
from:user.getMobileUser(req),
to:req.body.to,
content:content,
ip:req.ip,
thread:tid,
level:'2'
function(callback) {
var entity = {
ent_code: req.session.user.ent_code,
from: user.getMobileUser(req),
to: req.body.to,
content: content,
ip: req.ip,
thread: tid,
level: '2'
};
//4.创建文章评论
forumCommentService.createComment(entity,function(err,newComment){
if(err){
callback(err,null);
}else{
var comments=comment.comments;
var array=[];
if(comments && comments.length>0){
array=comments;
forumCommentService.createComment(entity, function(err, newComment) {
if (err) {
callback(err, null);
} else {
var comments = comment.comments;
var array = [];
if (comments && comments.length > 0) {
array = comments;
}
array.push(newComment._id);
forumCommentService.updateCommentById(cid,{comments:array},function(err,result){
if(err){
callback(err,null);
}else{
callback(null,newComment);
forumCommentService.updateCommentById(cid, {
comments: array
}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, newComment);
}
});
}
});
},
function(callback){
forumCommentService.updateCommentCount(cid,function(err,results){
if(err){
function(callback) {
forumCommentService.updateCommentCount(cid, function(err, results) {
if (err) {
console.log(err);
callback(err,null);
}else{
callback(null,null);
callback(err, null);
} else {
callback(null, null);
}
});
}
],function(err,results){
if(err){
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
httpService.sendRequest(req.session.user.ent_code,user.getOpenId(req),tid,'reply');
ForumComment.populate(results[0], {path:'from to', select:'uid nickName icon comments'} , function(err, c){
if(err){
} else {
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'reply');
ForumComment.populate(results[0], {
path: 'from to',
select: 'uid nickName icon comments'
}, function(err, c) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
var rs={};
rs.data=results[0];
res.json(_.assign(rs,returnCode.SUCCESS));
var rs = {};
rs.data = results[0];
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
// res.json(returnCode.SUCCESS);
......@@ -538,15 +629,15 @@ router.post('/thread/:tid/comment/:cid/create', function(req, res, next) {
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
}else{
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
......@@ -554,146 +645,152 @@ router.post('/thread/:tid/comment/:cid/create', function(req, res, next) {
//删除文章评论
router.post('/thread/:tid/comment/:cid/delete', function(req, res, next) {
var tid = req.params.tid || null;
var cid=req.params.cid || null;
if(tid && cid){
forumCommentService.getCommentById(cid,function(err,result){
if(err){
var cid = req.params.cid || null;
if (tid && cid) {
forumCommentService.getCommentById(cid, function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
if(result.from===user.getMobileUser(req)){
} else {
if (result) {
if (result.from === user.getMobileUser(req)) {
async.parallel([
function(callback){
forumCommentService.deleteCommentById(cid,function(err,result){
if(err){
callback(err,null);
}else{
callback(null,null);
function(callback) {
forumCommentService.deleteCommentById(cid, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
],function(err,results){
if(err){
], function(err, results) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
res.json(returnCode.SUCCESS);
}
});
}else{
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//评论列表
router.get('/thread/:tid/comment/list', function(req, res, next) {
<<<<<<< HEAD
var tid=req.params.tid || null;
var pageNo = req.query.pageNo || 1;
=======
var tid = req.params.tid || null;
var pageNo = req.query.pageNo || 1;
>>>>>>> f2a61e4b468be1158deee3015cb171b0bede90e4
var pageSize = req.query.pageSize || 10;
var conditions={
ent_code:req.session.user.ent_code,
thread:tid,
level:'1'
var conditions = {
ent_code: req.session.user.ent_code,
thread: tid,
level: '1'
};
if(tid){
if (tid) {
//获取最新5条评论
forumCommentService.getAllComment(conditions,pageNo,pageSize,function(err,results){
if(err){
forumCommentService.getAllComment(conditions, pageNo, pageSize, function(err, results) {
if (err) {
console.log(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//评论点赞
router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) {
var tid=req.params.tid || null;
var cid=req.params.cid || null;
var tid = req.params.tid || null;
var cid = req.params.cid || null;
if(tid && cid){
if (tid && cid) {
var integral=req.session.openUser.integral||0;
var exp=req.session.openUser.exp||0;
var integral = req.session.openUser.integral || 0;
var exp = req.session.openUser.exp || 0;
//判断是否已经点赞
forumPraiseLogService.queryPraiseLog(tid,cid,user.getMobileUser(req),2,function(err,logs){
if(err){
forumPraiseLogService.queryPraiseLog(tid, cid, user.getMobileUser(req), 2, function(err, logs) {
if (err) {
res.json(returnCode.BUSY);
}else{
if(logs && logs.length>0){
} else {
if (logs && logs.length > 0) {
res.json(returnCode.CAN_NOT_RAISE_REPEAT);
}else{
} else {
//1.检查是否有权限
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code,'raise',integral,exp,function(err,result){
if(err){
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'raise', integral, exp, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
}else{
if(result){//有操作权限
} else {
if (result) { //有操作权限
//2.获取论坛文章
forumThreadService.getThreadById(tid,function(err,thread){
if(err){
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
async.parallel([
function(callback){
forumCommentService.updatePraiseCount(cid,function(err,results){
if(err){
function(callback) {
forumCommentService.updatePraiseCount(cid, function(err, results) {
if (err) {
console.log(err);
callback(err,null);
}else{
callback(null,null);
callback(err, null);
} else {
callback(null, null);
}
});
},
function(callback){
var entity={
ent_code:req.session.user.ent_code,
user:user.getMobileUser(req),
thread:tid,
ip:req.ip,
comment:cid,
type:2
function(callback) {
var entity = {
ent_code: req.session.user.ent_code,
user: user.getMobileUser(req),
thread: tid,
ip: req.ip,
comment: cid,
type: 2
};
//4.创建点赞日志
forumPraiseLogService.createPraiseLog(entity,function(err,result){
if(err){
callback(err,null);
}else{
callback(null,null);
forumPraiseLogService.createPraiseLog(entity, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}],function(err,results){
if(err){
}
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
httpService.sendRequest(req.session.user.ent_code,user.getOpenId(req),tid,'raise');
} else {
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'comment_praise');
//返回点赞总数
forumCommentService.getCommentById(cid,function(err,doc){
if(err){
forumCommentService.getCommentById(cid, function(err, doc) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
var rs={};
rs.praise_count=doc.praise_count;
res.json(_.assign(rs,returnCode.SUCCESS));
} else {
var rs = {};
rs.praise_count = doc.praise_count;
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
......@@ -701,7 +798,7 @@ router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) {
});
}
});
}else{
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
}
......@@ -710,7 +807,7 @@ router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) {
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
......@@ -718,195 +815,201 @@ router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) {
//用户屏蔽文章
router.post('/thread/:tid/userShield', function(req, res, next) {
var tid = req.params.tid || null;
if(tid){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
if (tid) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
res.json(returnCode.BUSY);
}else{
if(doc){
var thread=doc.thread;
} else {
if (doc) {
var thread = doc.thread;
thread.push(tid);
forumUserThreadControlService.updateUserThreadControlById(doc._id,{thread:thread},function(err,result){
if(err){
forumUserThreadControlService.updateUserThreadControlById(doc._id, {
thread: thread
}, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
res.json(returnCode.SUCCESS);
}
});
}else{
var array=[tid];
var entity={
ent_code:req.session.user.ent_code,
user:user.getMobileUser(req),
thread:array
} else {
var array = [tid];
var entity = {
ent_code: req.session.user.ent_code,
user: user.getMobileUser(req),
thread: array
};
forumUserThreadControlService.createUserThreadControl(entity,function(err,result){
if(err){
forumUserThreadControlService.createUserThreadControl(entity, function(err, result) {
if (err) {
res.json(returnCode.BUSY);
}else{
} else {
res.json(returnCode.SUCCESS);
}
});
}
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//获取论坛话题列表
router.get('/thread/:tid/topics', function(req, res, next) {
var tid=req.params.tid || null;
var tid = req.params.tid || null;
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var conditions={
ent_code:req.session.user.ent_code,
pid:tid,
type:2
var conditions = {
ent_code: req.session.user.ent_code,
pid: tid,
type: 2
};
if(tid){
if (tid) {
async.waterfall([
function(callback){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
callback(err,null);
}else{
if(doc){
callback(null,doc);
}else{
callback(null,null);
function(callback) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
callback(err, null);
} else {
if (doc) {
callback(null, doc);
} else {
callback(null, null);
}
}
});
}
],function(err,result){
if(err){
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
conditions._id={$nin:result.thread};
} else {
if (result) {
conditions._id = {
$nin: result.thread
};
}
//获取子话题数据
forumThreadService.getAllThreadByFid(conditions,pageNo,pageSize,null,function(err,results){
if(err){
forumThreadService.getAllThreadByFid(conditions, pageNo, pageSize, null, function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//获取论坛最新照片墙列表
router.get('/thread/:tid/latestPhotos', function(req, res, next) {
var tid=req.params.tid || null;
var tid = req.params.tid || null;
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var conditions={
ent_code:req.session.user.ent_code,
pid:tid,
type:3
var conditions = {
ent_code: req.session.user.ent_code,
pid: tid,
type: 3
};
if(tid){
if (tid) {
async.waterfall([
function(callback){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
callback(err,null);
}else{
if(doc){
callback(null,doc);
}else{
callback(null,null);
function(callback) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
callback(err, null);
} else {
if (doc) {
callback(null, doc);
} else {
callback(null, null);
}
}
});
}
],function(err,result){
if(err){
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
conditions._id={$nin:result.thread};
} else {
if (result) {
conditions._id = {
$nin: result.thread
};
}
//获取子话题数据
forumThreadService.getAllThreadByFid(conditions,pageNo,pageSize,'-created',function(err,results){
if(err){
forumThreadService.getAllThreadByFid(conditions, pageNo, pageSize, '-created', function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
//获取论坛最热照片墙列表
router.get('/thread/:tid/hotPhotos', function(req, res, next) {
var tid=req.params.tid || null;
var tid = req.params.tid || null;
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var conditions={
ent_code:req.session.user.ent_code,
pid:tid,
type:3
var conditions = {
ent_code: req.session.user.ent_code,
pid: tid,
type: 3
};
if(tid){
if (tid) {
async.waterfall([
function(callback){
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req),function(err,doc){
if(err){
callback(err,null);
}else{
if(doc){
callback(null,doc);
}else{
callback(null,null);
function(callback) {
forumUserThreadControlService.getUserThreadControlById(user.getMobileUser(req), function(err, doc) {
if (err) {
callback(err, null);
} else {
if (doc) {
callback(null, doc);
} else {
callback(null, null);
}
}
});
}
],function(err,result){
if(err){
], function(err, result) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
if(result){
conditions._id={$nin:result.thread};
} else {
if (result) {
conditions._id = {
$nin: result.thread
};
}
//获取子话题数据
forumThreadService.getAllThreadByFid(conditions,pageNo,pageSize,'-praise_count',function(err,results){
if(err){
forumThreadService.getAllThreadByFid(conditions, pageNo, pageSize, '-praise_count', function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
}else{
} else {
res.json(_.assign(results, returnCode.SUCCESS));
}
});
}
});
}else{
} else {
res.json(returnCode.WRONG_PARAM);
}
});
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//黑名单
var BlackListSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
blackOpenId:{//被加入黑名单的openid
type: String,
require: false,
index: true
},
blackUser: { //被加入黑名单的user
type: Schema.Types.ObjectId,
require: false,
index: true,
ref: 'ForumUser'
},
reason: { //加入黑名单的原因
type: String,
require: false
},
begin: {//黑名单有效时间
type: Date,
require: false
},
end: {//黑名单有效时间
type: Date,
required: false
},
created: {
type: Date,
required: true,
default:Date.now
},
status:{//是否可用 1/0
type: Number,
require: true,
index: true,
default:1
}
}, {
'collection': 'pisns_forum_blacklist'
});
module.exports = mongoose.model('BlackList', BlackListSchema);
\ No newline at end of file
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//话题广场,板块
var ForumPVLogSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
user: { //访问者
type: String,
require: true,
index: true,
ref: 'ForumUser'
},
mid: { //会员ID
type: Number,
require: true,
index: true
},
open_id: { //微信公众号唯一识别
type: String,
require: true,
index: true
},
info: { //板块ID
type: String,
index: true,
ref: 'ForumInfo'
},
thread: { //话题、文章、照片墙的ID
type: String,
index: true,
ref: 'forumThread'
},
type: { //页面:1.主页 2.板块 3.文章
type: Number,
index: true,
require: true
},
thread_type: { //文章类型:1.普通文章 2.话题 3.照片墙 4.子文章
type: Number,
index: true
},
p_thread: { //父文章ID
type: Number,
index: true
},
source: { //分享者
type: String
},
ip: { //IP地址
type: String
},
userAgent: {
type: String
},
created: {
type: Date,
required: true,
default: Date.now
}
}, {
'collection': 'pisns_forum_pv_log'
});
module.exports = mongoose.model('ForumPVLog', ForumPVLogSchema);
......@@ -70,6 +70,11 @@ var ForumThreadSchema = new Schema({
type: Schema.Types.ObjectId,
ref: 'ForumShare'
},
share_type:{//是否使用默认设置:1使用默认分享设置 2.使用自己的分享设置
type:Number,
require:true,
default:1
},
pv_count: { //话题的访问量
type: Number,
require: true,
......
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//话题广场,板块
var ForumUVLogSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
user: { //访问者
type: String,
require: true,
index: true,
ref: 'ForumUser'
},
mid: { //会员ID
type: Number,
require: true,
index: true
},
open_id: { //微信公众号唯一识别
type: String,
require: true,
index: true
},
info: { //板块ID
type: String,
index: true,
ref: 'ForumInfo'
},
thread: { //话题、文章、照片墙的ID
type: String,
index: true,
ref: 'forumThread'
},
type: { //页面:1.主页 2.板块 3.文章
type: Number,
index: true,
require: true
},
thread_type: { //文章类型:1.话题 2.文章 3.照片墙 4.子文章
type: Number,
index: true
},
p_thread: { //父文章ID
type: Number,
index: true
},
source: { //分享者
type: String
},
ip: { //IP地址
type: String
},
userAgent: {
type: String
},
created: {
type: Date,
required: true,
default: Date.now
}
}, {
'collection': 'pisns_forum_uv_log'
});
module.exports = mongoose.model('ForumUVLog', ForumUVLogSchema);
'use strict';
var mongoose = require('mongoose');
var BlackList = mongoose.model('BlackList');
var ForumUserService = require("./forumUserService");
var async=require('async');
exports.getBlackPageList=function(condition,pageNo,pageSize,callback){
var _condition = condition || {};
var pageNo = Number(pageNo) || 1;
var pageSize = pageSize || 10;
var obj={};
obj.total=0;
obj.pageNo=pageNo;
obj.pageSize=pageSize;
obj.items=[];
var search = function(count){
var skip = (pageNo - 1) * pageSize;
skip = skip >0 ? skip :0;
var limit = pageSize;
BlackList.find(_condition)
.populate('blackUser').limit(limit)
.skip(skip).sort('-created').exec(function(err,blackUsers){
if(err){
console.error(err);
return callback && callback(err,null);
}
obj.total=count;
obj.pageNo=pageNo;
obj.pageSize=pageSize;
obj.items=blackUsers;
return callback && callback(null,obj);
});
};
BlackList.count(_condition, function (err, count) {
if(err){
return callback && callback(err,null);
}
if(!!!count){
return callback && callback(null,obj);
}
return search(count);
});
};
exports.addBlack = function(blackList,entcode,callback){
if(!!!blackList ||
(!!!blackList.blackOpenId && !!!blackList.uid)){
return callback && callback('bad args');
}
blackList.ent_code = entcode;
async.waterfall([function(cb) {
var uid =blackList.uid;
delete blackList.uid;
if(!!!uid){
return cb();
}
ForumUserService.getUserById(uid,
function(err,result){
if(!!!err && result){
blackList.blackUser = result;
}
cb();
});
},
function(n, cb) {
var _blackList= new BlackList(blackList);
_blackList.save(function(err, black) {
if(err){
console.error(err);
return callback && callback(err);
}
return callback && callback(null,black);
});
}],
function(err, result) {
return callback && callback(err);
});
};
exports.addBlacks = function(blacks,entcode,callback){
if(!!!blacks ||
!!!blacks.length){
return callback && callback('bad args');
}
var asyncTasks = [];
blacks.forEach(function(black){
asyncTasks.push(function(callback) {
exports.addBlack(black,entcode,function(err,result){
callback(null, !!err ? {err:err} : result);
});
});
});
async.parallel(asyncTasks, function(err, results) {
if (err || !!!results || !!!results.length) {
return callback && callback(err || "操作失败!");
}
var sucs = [];
var errs = [];
results.forEach(function(result){
if(result){
if(result.err){
errs.push(result.err);
}else{
sucs.push(result);
}
}
});
return callback && callback(null,{sucs:sucs,errs:errs});
});
};
exports.getBlackById = function(id,callback){
BlackList.findById(id).populate('blackUser').exec(function(err, black) {
if (err) {
return callback && callback(err,null);
}
return callback && callback(null,black);
});
};
//根据ID更新黑名单
exports.updateBlackById=function(id,entity,callback){
if(!!!id ||!!!entity){
return callback && callback('bad args');
}
async.waterfall([function(cb) {
var uid =entity.uid;
delete entity.uid;
delete entity.blackUser;
if(!!!uid){
return cb();
}
ForumUserService.getUserById(uid,
function(err,result){
if(!!!err && result){
entity.blackUser = result._id;
}
cb();
});
},
function(n, cb) {
BlackList.update({ _id: id}, entity,null,function(err,result){
if (err) {
console.error(err);
return callback && callback(err,null);
}
return callback && callback(null,result);
});
}],
function(err, result) {
return callback && callback(err);
});
};
exports.removeBlackById = function(id,callback){
BlackList.remove({ _id: id},function(err,result){
if (err) {
return callback && callback(err,null);
}
return callback && callback(null,result);
});
}
\ No newline at end of file
......@@ -2,29 +2,77 @@
var mongoose = require('mongoose');
var ForumShareConfig = mongoose.model('ForumShareConfig');
var async=require('async');
var then = require('thenjs');
//批量创建配置信息
exports.create=function(entity,callback){
//var forumShareConfig = new ForumShareConfig(entity);
ForumShareConfig.create(entity,function(err, forumShareConfig) {
exports.create = function(entity, callback) {
var forumShareConfig = new ForumShareConfig(entity);
then(function(cont) {
ForumShareConfig.find({
ent_code: entity.ent_code,
meta_key: entity.meta_key
}).exec(cont);
}).then(function(cont, config) {
if (config.length > 0) {
//更新
ForumShareConfig.update({
meta_key: entity.meta_key,
ent_code: entity.ent_code
}, {
meta_value: entity.meta_value
}, {
multi: false
},
function(affected,result) {
cont(null,result);
});
} else {
//增加
forumShareConfig.save(function(err, result) {
if (err) {
console.error(err);
callback(err,null);
cont(err);
} else {
callback(null,forumShareConfig);
cont(null,result);
}
});
}
}).then(function(cont,result) {
callback(null, result);
}).fail(function(cont, err) {
console.error(err);
callback(err, null);
});
};
exports.getByKey = function(ent_code, key, callback) {
ForumShareConfig.findOne({
ent_code: ent_code,
meta_key: key
}, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, result);
}
});
}
//根据ent_code获取配置信息
exports.getByEntCode = function(ent_code,callback){
ForumShareConfig.find({ ent_code: ent_code},function(err,result){
exports.getByEntCode = function(ent_code, callback) {
ForumShareConfig.find({
ent_code: ent_code
}, function(err, result) {
if (err) {
console.error(err);
callback(err,null);
callback(err, null);
} else {
callback(null,result);
callback(null, result);
}
});
};
//根据
......@@ -2,13 +2,97 @@
var mongoose = require('mongoose');
var ForumThread = mongoose.model('ForumThread');
var ForumComment = mongoose.model('ForumComment');
var ForumShare = mongoose.model('ForumShare');
var forumCommentService = require('./forumCommentService');
var async = require('async');
var then = require('thenjs');
//查询帖子
exports.findThreadByPage = function(pageNo, pageSize, q, callback) {
then(function(cont) {
ForumThread.find(q).populate('from').count(cont);
}).then(function(cont, count) {
var skip = (pageNo - 1) * pageSize;
var limit = count - skip > pageSize ? pageSize : (count - skip);
ForumThread.find(q).skip(skip).limit(limit).sort('-created').exec(function(err, docs) {
cont(err, count, docs);
});
}).then(function(cont, count, threads) {
var rsJson = {
result: true,
total: count,
datas: threads
};
callback(null, rsJson);
}).fail(function(cont, err) {
console.error(err);
var rsJson = {
result: false,
err: err
};
callback(err, rsJson);
});
};
//查询评论
exports.findCommentByPage = function(pageNo, pageSize, q, callback) {
then(function(cont) {
ForumComment.find(q).populate('from').count(cont);
}).then(function(cont, count) {
var skip = (pageNo - 1) * pageSize;
var limit = count - skip > pageSize ? pageSize : (count - skip);
ForumComment.find(q).skip(skip).limit(limit).sort('-created').populate('from').exec(function(err, docs) {
cont(err, count, docs);
});
}).then(function(cont, count, threads) {
var rsJson = {
result: true,
total: count,
datas: threads
};
callback(null, rsJson);
}).fail(function(cont, err) {
console.error(err);
var rsJson = {
result: false,
err: err
};
callback(err, rsJson);
});
};
//创建文章
exports.createThread = function(entity, callback) {
if (!entity.share) {
var forum = new ForumThread(entity);
forum.save(function(err, forum) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, forum);
}
});
} else {
var forumShare = new ForumShare(entity.share);
forumShare.ent_code = entity.ent_code;
forumShare.save(function(err, forumShare) {
if (err) {
console.error(err);
callback(err, null);
} else {
entity.share = forumShare._id;
var forum = new ForumThread(entity);
forum.save(function(err, forum) {
if (err) {
......@@ -18,6 +102,10 @@ exports.createThread = function(entity, callback) {
callback(null, forum);
}
});
}
});
}
};
//根据ID获取文章记录,不查评论,子话题
......@@ -41,7 +129,7 @@ exports.getThreadById = function(tid, callback) {
var conditions = {
_id: tid
};
ForumThread.find(conditions).populate('from').populate('info').exec(function(err, docs) {
ForumThread.find(conditions).populate('from').populate('info').populate('share').exec(function(err, docs) {
if (err) {
console.error(err);
callback(err, null);
......@@ -165,6 +253,14 @@ exports.getThreadById = function(tid, callback) {
//根据ID更新文章
exports.updateThreadById = function(tid, entity, callback) {
var shareEntity = entity.share;
if (entity.share._id) {
entity.share = entity.share._id;
}else{
entity.share = '';
}
if (entity.share) {
ForumThread.update({
_id: tid
}, entity, null, function(err, result) {
......@@ -172,9 +268,54 @@ exports.updateThreadById = function(tid, entity, callback) {
console.error(err);
callback(err, null);
} else {
callback(null, null);
ForumShare.update({
_id: shareEntity._id
}, shareEntity, null, function(err, se) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, entity);
}
});
}
});
} else {
if (shareEntity.title || shareEntity.description || shareEntity.icon) {
shareEntity.ent_code = entity.ent_code;
var forumShare = new ForumShare(shareEntity);
forumShare.save(function(err, forumShare) {
entity.share = forumShare._id;
ForumThread.update({
_id: tid
}, entity, null, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, entity);
}
});
});
} else {
delete entity.share;
ForumThread.update({
_id: tid
}, entity, null, function(err, result) {
if (err) {
console.error(err);
callback(err, null);
} else {
callback(null, entity);
}
});
}
}
};
//根据ID更新文章
......
......@@ -56,3 +56,36 @@ exports.updateUserById=function(uid,entity,callback){
}
});
};
exports.getUsers=function(pageNo,pageSize,callback){
var pageNo = pageNo || 1;
var pageSize = pageSize || 10;
var getPageList = function(count){
var skip = (pageNo - 1) * pageSize;
var limit = count - skip > pageSize ? pageSize : (count - skip);
ForumUser.find({}).limit(limit).skip(skip)
.exec(function(err,results){
if(err){
callback(err,null);
}else{
if(results){
callback(null,{total:count,items:results});
}else{
callback(null,{total:count,items:[]});
}
}
});
};
ForumUser.count({}).exec(function(err,count){
if(err){
callback(err,null);
}else{
if(count > 0){
getPageList(count);
}else{
callback(null,{total:0,items:[]});
}
}
});
};
......@@ -2,10 +2,97 @@
// var request=require('request');
// var REMOTE_URL='http://127.0.0.1:3011/admin/forum/http/receive';
var ACTION_KEY = {
'post': 'FORUM_THREAD_POST',
'share': 'FORUM_THREAD_SHARE',
'share_timeline': 'FORUM_THREAD_SHARE_TIMELINE',
'comment': 'FORUM_THREAD_COMMENT',
'thread_praise': 'FORUM_THREAD_PRAISE',
'comment_praise': 'FORUM_COMMENT_PRAISE',
'reply': 'FORUM_COMMENT_REPLY',
'user_from_share': 'FORUM_USER_FROM_SHARE'
};
var mongoose = require('mongoose'),
moment = require('moment'),
then = require('thenjs');
var ForumPVLog = mongoose.model('ForumPVLog');
var ForumUVLog = mongoose.model('ForumUVLog');
exports.sendRequest = function(ent_code, mid, action, messageid, integral, exp) {
var obj = {
tag: 'member',
key: 'forum',
action: ACTION_KEY[action],
mid: mid,
entcode: ent_code,
messageid: messageid || '',
integral: integral || 0,
exp: exp || 0
};
redis.lpush('adapter-redis-to-ons', JSON.stringify(obj), function(err, reply) {
if (err) {
console.error(err);
}
});
};
var getClientIP = function(req) {
var ipAddress;
var headers = req.headers;
var forwardedIpsStr = headers['x-real-ip'] || headers['x-forwarded-for'];
if (forwardedIpsStr) {
ipAddress = forwardedIpsStr;
} else {
ipAddress = null;
}
if (!ipAddress) {
ipAddress = req.connection.remoteAddress;
}
return ipAddress;
};
exports.sendRequest=function(ent_code,uid,tid,action){
// var url=REMOTE_URL+'?ent_code='+ent_code+'&uid='+uid+'&tid='+tid+'&action='+action;
// request.get({url:url}, function (e, r, body) {
exports.createLog = function(req,info,type,thread_type,thread,p_thread) {
// });
var logObj = {
ent_code: req.session.user.ent_code,
mid: req.session.openUser.mid,
open_id: req.session.mobileForumUser.openId,
user: req.session.mobileForumUser.userId,
info: info,
type: type,
thread_type:thread_type,
thread:thread,
p_thread:p_thread,
ip: getClientIP(req),
userAgent: req.headers['user-agent']
};
if (logObj) {
then(function(cont){
var pv_model = new ForumPVLog(logObj);
pv_model.save(cont);
}).then(function(cont){
var q = {
created:{$gte:moment(new Date()).format('YYYY-MM-DD')},
mid:logObj.mid,
openId:logObj.openId,
user:logObj.user,
info:logObj.info
};
if(logObj.thread){
q.thread = logObj.thread;
q.thread_type = logObj.thread_type;
}
ForumUVLog.findOne(q,function(err,doc){
cont(err,doc?false:true);
})
}).then(function(cont,isLog){
if(isLog){
var uv_model = new ForumUVLog(logObj);
uv_model.save();
}
}).fail(function(cont,err){
console.error(err);
});
} else {
console.error('没有日志信息');
}
};
......@@ -20,7 +20,8 @@
"method-override": "~2.3.0",
"mongoose": "3.8.21",
"morgan": "~1.5.0",
"oss-easy": "^0.2.9"
"oss-easy": "^0.2.9",
"thenjs": "^1.5.0"
},
"devDependencies": {
"grunt": "~0.4.5",
......
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