Commit be521c4b authored by 陈志良's avatar 陈志良

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

parents 7a3eb34a 82382f48
...@@ -5,6 +5,7 @@ var express = require('express'), ...@@ -5,6 +5,7 @@ var express = require('express'),
_ = require('lodash'); _ = require('lodash');
var mongoose = require('mongoose'); var mongoose = require('mongoose');
var moment = require('moment');
var forumUserService=require('../../service/forumUserService'); var forumUserService=require('../../service/forumUserService');
var forumThreadService=require('../../service/forumThreadService'); var forumThreadService=require('../../service/forumThreadService');
var httpService=require('../../service/httpService'); var httpService=require('../../service/httpService');
...@@ -18,10 +19,27 @@ module.exports = function(app) { ...@@ -18,10 +19,27 @@ module.exports = function(app) {
app.use('/admin/forum', router); app.use('/admin/forum', router);
}; };
//格式化日期 (格式:年-月-日)
function date_format(date) {
return moment(date).format('YYYY-MM-DD');
}
//判断时间是否在指定范围
function compareTime(now, begin_time, end_time) {
now = date_format(now);
begin_time = date_format(begin_time);
end_time = date_format(end_time);
if (moment(now).isSame(begin_time) || moment(now).isSame(end_time)) { //如果等于开始时间或者结束时间
return true;
} else {
return moment(now).isBetween(begin_time, end_time);
}
}
var checkLimitAction = function(req, res) { var checkLimitAction = function(req, res) {
var mid = req.session.mobileForumUser.userId; var mid = req.session.mobileForumUser.userId;
if(mid){ if(mid){
req.session.mobileForumUser.limit_action = []; var array = [];
forumLimitActionRefService.getLimitActionRefByMid(mid,function(err,forumLimitActionRef){ forumLimitActionRefService.getLimitActionRefByMid(mid,function(err,forumLimitActionRef){
if (err) { if (err) {
console.error(err); console.error(err);
...@@ -38,9 +56,10 @@ var checkLimitAction = function(req, res) { ...@@ -38,9 +56,10 @@ var checkLimitAction = function(req, res) {
result : flag, result : flag,
code : limit_action.limit_action_type code : limit_action.limit_action_type
} }
req.session.mobileForumUser.limit_actions.push(obj); array.push(obj);
res.json('success');
} }
req.session.mobileForumUser.limit_actions = array;
res.json('success');
}else{ }else{
req.session.mobileForumUser.limit_actions = null; req.session.mobileForumUser.limit_actions = null;
res.json('success'); res.json('success');
...@@ -92,9 +111,26 @@ router.post('/user/identifyUser',function(req,res,next){ ...@@ -92,9 +111,26 @@ router.post('/user/identifyUser',function(req,res,next){
}); });
//微信分享带来用户 //微信分享带来用户
router.get('/user/from/share', function(req, res, next) { router.get('/user/from/share', function(req, res, next) {
var mid = req.query.mid, var mid = req.query.mid,
action = req.query.action, action = req.query.action,
ent_code = req.query.ent_code; ent_code = req.query.ent_code;
httpService.sendRequest(ent_code,mid,action);
res.status(200).end(); forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
if(err){
console.error(err);
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
if(flag){
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
httpService.sendRequest(ent_code,mid,action);
res.status(200).end();
}
}
});
// httpService.sendRequest(ent_code,mid,action);
// res.status(200).end();
}); });
\ No newline at end of file
...@@ -13,23 +13,6 @@ module.exports = function(app) { ...@@ -13,23 +13,6 @@ module.exports = function(app) {
app.use('/admin/forum', router); app.use('/admin/forum', router);
}; };
//格式化日期 (格式:年-月-日)
// function date_format(date) {
// return moment(date).format('YYYY-MM-DD');
// }
//判断时间是否在指定范围
// function compareTime(now, begin_time, end_time) {
// now = date_format(now);
// begin_time = date_format(begin_time);
// end_time = date_format(end_time);
// if (moment(now).isSame(begin_time) || moment(now).isSame(end_time)) { //如果等于开始时间或者结束时间
// return true;
// } else {
// return moment(now).isBetween(begin_time, end_time);
// }
// }
//新增或更新论坛行为限制 //新增或更新论坛行为限制
router.post('/limitActionRef/createOrUpdate', function(req, res, next) { router.post('/limitActionRef/createOrUpdate', function(req, res, next) {
var ent_code = req.session.user.ent_code; var ent_code = req.session.user.ent_code;
......
...@@ -238,7 +238,19 @@ router.post('/thread/:tid/:fid/recommend', function(req, res, next) { ...@@ -238,7 +238,19 @@ router.post('/thread/:tid/:fid/recommend', function(req, res, next) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
if(mid){ if(mid){
httpService.sendRequest(ent_code,mid,'thread_recomment'); forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
if(err){
console.error(err);
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
if(isProhibition){
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
httpService.sendRequest(ent_code,mid,'thread_recomment');
res.json(returnCode.SUCCESS);
}
}
});
} }
res.json(returnCode.SUCCESS); res.json(returnCode.SUCCESS);
} }
......
...@@ -216,9 +216,22 @@ router.get('/:ent_code/share/timeline', function(req, res, next) { ...@@ -216,9 +216,22 @@ router.get('/:ent_code/share/timeline', function(req, res, next) {
var mid = req.session.openUser.mid, var mid = req.session.openUser.mid,
action = 'share_timeline', action = 'share_timeline',
ent_code = req.session.user.ent_code; ent_code = req.session.user.ent_code;
httpService.createShareLog(req,1);
httpService.sendRequest(ent_code,mid,action);
res.status(200).end(); forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
if(err){
console.error(err);
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
if(flag){
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
httpService.createShareLog(req,1);
httpService.sendRequest(ent_code,mid,action);
res.status(200).end();
}
}
});
}); });
//微信分享单人接口 //微信分享单人接口
...@@ -226,7 +239,20 @@ router.get('/:ent_code/share/singlemessage', function(req, res, next) { ...@@ -226,7 +239,20 @@ router.get('/:ent_code/share/singlemessage', function(req, res, next) {
var mid = req.session.openUser.mid, var mid = req.session.openUser.mid,
action = 'share_singlemessage', action = 'share_singlemessage',
ent_code = req.session.user.ent_code; ent_code = req.session.user.ent_code;
httpService.createShareLog(req,2);
httpService.sendRequest(ent_code,mid,action);
res.status(200).end(); forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
if(err){
console.error(err);
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
if(flag){
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
httpService.createShareLog(req,2);
httpService.sendRequest(ent_code,mid,action);
res.status(200).end();
}
}
});
}); });
...@@ -13,6 +13,7 @@ var forumPraiseLogService = require('../../service/forumPraiseLogService'); ...@@ -13,6 +13,7 @@ var forumPraiseLogService = require('../../service/forumPraiseLogService');
var forumShareLogService = require('../../service/forumShareLogService'); var forumShareLogService = require('../../service/forumShareLogService');
var forumCommentService = require('../../service/forumCommentService'); var forumCommentService = require('../../service/forumCommentService');
var forumUserThreadControlService = require('../../service/forumUserThreadControlService'); var forumUserThreadControlService = require('../../service/forumUserThreadControlService');
var forumLimitActionRefService = require('../../service/forumLimitActionRefService');
var httpService = require('../../service/httpService'); var httpService = require('../../service/httpService');
...@@ -130,27 +131,49 @@ router.get('/thread/searchComment', function(req, res, next) { ...@@ -130,27 +131,49 @@ router.get('/thread/searchComment', function(req, res, next) {
//新增论坛文章 //新增论坛文章
router.post('/thread/create', function(req, res, next) { router.post('/thread/create', function(req, res, next) {
var integral = req.session.openUser.integral || 0; var mid = req.session.openUser.mid;
var exp = req.session.openUser.exp || 0; forumLimitActionRefService.checkLimitActionProhibitionOfSpeech(mid, function(err, isProhibition){
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'create', integral, exp, function(err, result) { if(err){
if (err) { console.error(err);
res.json(returnCode.BUSY); res.json(returnCode.PROHIBITION_OF_SPEECH);
} else { }else{
if (result) { //有操作权限 if(isProhibition){
create(req, function(err, thread) { res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
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) { if (err) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'post'); if (result) { //有操作权限
var rs = {}; create(req, function(err, thread) {
rs.data = { if (err) {
'id': thread._id res.json(returnCode.BUSY);
}; } else {
res.json(_.assign(rs, returnCode.SUCCESS)); forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
if(err){
console.error(err);
}else{
if(!flag){
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'post');
}
}
});
// httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'post');
var rs = {};
rs.data = {
'id': thread._id
};
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
}
} }
}); });
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
} }
} }
}); });
...@@ -244,6 +267,7 @@ router.post('/thread/:tid/delete', function(req, res, next) { ...@@ -244,6 +267,7 @@ router.post('/thread/:tid/delete', function(req, res, next) {
//文章点赞 //文章点赞
router.post('/thread/:tid/raise', function(req, res, next) { router.post('/thread/:tid/raise', function(req, res, next) {
var mid = req.session.openUser.mid;
var tid = req.params.tid || null; var tid = req.params.tid || null;
if (tid) { if (tid) {
var integral = req.session.openUser.integral || 0; var integral = req.session.openUser.integral || 0;
...@@ -306,7 +330,19 @@ router.post('/thread/:tid/raise', function(req, res, next) { ...@@ -306,7 +330,19 @@ router.post('/thread/:tid/raise', function(req, res, next) {
console.error(err); console.error(err);
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'thread_praise');
forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
if(err){
console.error(err);
}else{
if(!flag){
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'thread_praise');
}
}
});
forumThreadService.getThreadById(tid, function(err, doc) { forumThreadService.getThreadById(tid, function(err, doc) {
if (err) { if (err) {
console.error(err); console.error(err);
...@@ -408,257 +444,304 @@ router.post('/thread/:tid/share', function(req, res, next) { ...@@ -408,257 +444,304 @@ router.post('/thread/:tid/share', function(req, res, next) {
//新增文章评论 //新增文章评论
router.post('/thread/:tid/comment/create', function(req, res, next) { router.post('/thread/:tid/comment/create', function(req, res, next) {
var tid = req.params.tid || null; var mid = req.session.openUser.mid;
if (tid) { forumLimitActionRefService.checkLimitActionProhibitionOfSpeech(mid, function(err, isProhibition){
var integral = req.session.openUser.integral || 0; if(err){
var exp = req.session.openUser.exp || 0; console.error(err);
var destination = req.body.destination || '1'; res.json(returnCode.PROHIBITION_OF_SPEECH);
//1.检查是否有权限 }else{
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'comment', integral, exp, function(err, result) { if(isProhibition){
if (err) { res.json(returnCode.PROHIBITION_OF_SPEECH);
console.error(err); }else{
res.json(returnCode.BUSY); var tid = req.params.tid || null;
} else { if (tid) {
if (result) { //有操作权限 var integral = req.session.openUser.integral || 0;
var content = req.body.content; var exp = req.session.openUser.exp || 0;
if (content) { //评论不能为空 var destination = req.body.destination || '1';
//2.获取论坛文章 //1.检查是否有权限
forumThreadService.getThreadById(tid, function(err, thread) { forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'comment', integral, exp, function(err, result) {
if (err) { if (err) {
res.json(returnCode.BUSY); console.error(err);
} else { res.json(returnCode.BUSY);
async.parallel([ } else {
function(callback) { if (result) { //有操作权限
var floor = 1; var content = req.body.content;
var entity = { if (content) { //评论不能为空
ent_code: req.session.user.ent_code, //2.获取论坛文章
from: user.getMobileUser(req), forumThreadService.getThreadById(tid, function(err, thread) {
content: content, if (err) {
ip: req.ip, res.json(returnCode.BUSY);
thread: thread, } else {
level: '1', async.parallel([
floor: floor function(callback) {
}; var floor = 1;
var entity = {
var conditions = { ent_code: req.session.user.ent_code,
thread: thread._id, from: user.getMobileUser(req),
level: '1' content: content,
}; ip: req.ip,
forumCommentService.count(conditions, function(err, count) { thread: thread,
if (err) { level: '1',
console.log(err); floor: floor
callback(err, null); };
} else {
// callback(null, count); var conditions = {
if(count){ thread: thread._id,
entity.floor = count + 1; level: '1'
} };
//4.创建文章评论 forumCommentService.count(conditions, function(err, count) {
forumCommentService.createComment(entity, function(err, newComment) { if (err) {
if (err) { console.log(err);
callback(err, null); callback(err, null);
} else { } else {
var comments = thread.comments; // callback(null, count);
// console.log('========='); if(count){
// console.log(comments); entity.floor = count + 1;
// console.log('========='); }
var array = []; //4.创建文章评论
if (comments && comments.items && comments.items.length > 0) { forumCommentService.createComment(entity, function(err, newComment) {
array = comments.items; 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;
}
array.push(newComment._id);
forumThreadService.updateThreadById(tid, {
comments: array
}, function(err, result) {
if (err) {
callback(err, null);
} else {
callback(null, null);
}
});
}
});
} }
array.push(newComment._id); });
forumThreadService.updateThreadById(tid, { },
comments: array function(callback) {
}, function(err, result) { //3.更新文章统计数据(评论数)
if (thread) {
forumThreadService.updateThreadCommentCountInc(tid, function(err, results) {
if (err) { if (err) {
console.log(err);
callback(err, null); callback(err, null);
} else { } else {
callback(null, null); callback(null, null);
} }
}); });
} else {
callback('cannot find thread by id', null);
} }
}); }
} ], function(err, results) {
});
},
function(callback) {
//3.更新文章统计数据(评论数)
if (thread) {
forumThreadService.updateThreadCommentCountInc(tid, function(err, results) {
if (err) { if (err) {
console.log(err); console.error(err);
callback(err, null); res.json(returnCode.BUSY);
} else { } else {
callback(null, null); forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
if(err){
console.error(err);
}else{
if(!flag){
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'comment');
}
}
});
async.parallel([
function(callback) {
//获取最新5条评论
var conditions = {
thread: tid,
level: '1'
};
forumCommentService.getAllComment(conditions, 1, 5, function(err, results) {
if (err) {
console.log(err);
callback(err, null);
} else {
callback(null, results);
}
});
},
function(callback) {
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
console.log(err);
callback(err, null);
} else {
callback(null, thread);
}
});
}
], 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 {
callback('cannot find thread by id', null);
} }
} });
], function(err, results) { } else {
if (err) { res.json(returnCode.WRONG_PARAM);
console.error(err); }
res.json(returnCode.BUSY); } else {
} else { res.json(returnCode.ACTION_NOT_PERMISSION);
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'comment');
async.parallel([
function(callback) {
//获取最新5条评论
var conditions = {
thread: tid,
level: '1'
};
forumCommentService.getAllComment(conditions, 1, 5, function(err, results) {
if (err) {
console.log(err);
callback(err, null);
} else {
callback(null, results);
}
});
},
function(callback) {
forumThreadService.getThreadById(tid, function(err, thread) {
if (err) {
console.log(err);
callback(err, null);
} else {
callback(null, thread);
}
});
}
], 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 { });
res.json(returnCode.WRONG_PARAM);
}
} else { } else {
res.json(returnCode.ACTION_NOT_PERMISSION); res.json(returnCode.WRONG_PARAM);
} }
} }
}); }
} else { });
res.json(returnCode.WRONG_PARAM);
}
}); });
//新建文章评论的子评论 //新建文章评论的子评论
router.post('/thread/:tid/comment/:cid/create', function(req, res, next) { router.post('/thread/:tid/comment/:cid/create', function(req, res, next) {
var tid = req.params.tid || null; var mid = req.session.openUser.mid;
var cid = req.params.cid || null; forumLimitActionRefService.checkLimitActionProhibitionOfSpeech(mid, function(err, isProhibition){
if (tid && cid) { if(err){
var integral = req.session.openUser.integral || 0; console.error(err);
var exp = req.session.openUser.exp || 0; res.json(returnCode.PROHIBITION_OF_SPEECH);
var destination = req.body.destination || '1'; }else{
req.body.from = user.getMobileUser(req); if(isProhibition){
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
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);
//1.检查是否有权限 //1.检查是否有权限
forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'reply', integral, exp, function(err, result) { forumRolePermissionService.checkRolePermiss(req.session.user.ent_code, 'reply', integral, exp, function(err, result) {
if (err) { if (err) {
console.error(err); console.error(err);
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
if (result) { //有操作权限 if (result) { //有操作权限
var content = req.body.content; var content = req.body.content;
if (content) { //评论不能为空 if (content) { //评论不能为空
//2.获取论坛评论 //2.获取论坛评论
forumCommentService.getCommentById(cid, function(err, comment) { forumCommentService.getCommentById(cid, function(err, comment) {
if (err) { if (err) {
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
async.parallel([ async.parallel([
function(callback) { function(callback) {
var entity = { var entity = {
ent_code: req.session.user.ent_code, ent_code: req.session.user.ent_code,
from: user.getMobileUser(req), from: user.getMobileUser(req),
to: req.body.to, to: req.body.to,
content: content, content: content,
ip: req.ip, ip: req.ip,
thread: tid, thread: tid,
level: '2' level: '2'
}; };
//4.创建文章评论 //4.创建文章评论
forumCommentService.createComment(entity, function(err, newComment) { forumCommentService.createComment(entity, function(err, newComment) {
if (err) { if (err) {
callback(err, null); callback(err, null);
} else { } else {
var comments = comment.comments; var comments = comment.comments;
var array = []; var array = [];
if (comments && comments.length > 0) { if (comments && comments.length > 0) {
array = comments; array = comments;
}
array.push(newComment._id);
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) {
console.log(err);
callback(err, null);
} else {
callback(null, null);
}
});
} }
array.push(newComment._id); ], function(err, results) {
forumCommentService.updateCommentById(cid, { if (err) {
comments: array console.error(err);
}, function(err, result) { res.json(returnCode.BUSY);
if (err) { } else {
callback(err, null); forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
} else { if(err){
callback(null, newComment); console.error(err);
} }else{
}); if(!flag){
} httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'reply');
}); }
}, }
function(callback) { });
forumCommentService.updateCommentCount(cid, function(err, results) {
if (err) {
console.log(err);
callback(err, null);
} else {
callback(null, null);
}
});
}
], function(err, results) {
if (err) {
console.error(err);
res.json(returnCode.BUSY);
} 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 {
var rs = {};
rs.data = results[0]; // httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'reply');
res.json(_.assign(rs, returnCode.SUCCESS)); ForumComment.populate(results[0], {
} path: 'from to',
}); select: 'uid nickName icon comments'
// res.json(returnCode.SUCCESS); }, function(err, c) {
} if (err) {
}); res.json(returnCode.BUSY);
} else {
var rs = {};
rs.data = results[0];
res.json(_.assign(rs, returnCode.SUCCESS));
}
});
// res.json(returnCode.SUCCESS);
}
});
}
});
} else {
res.json(returnCode.WRONG_PARAM);
}
} else {
res.json(returnCode.ACTION_NOT_PERMISSION);
} }
}); }
} else { });
res.json(returnCode.WRONG_PARAM);
}
} else { } else {
res.json(returnCode.ACTION_NOT_PERMISSION); res.json(returnCode.WRONG_PARAM);
} }
} }
}); }
} else { });
res.json(returnCode.WRONG_PARAM);
}
}); });
//更改评论状态为3(删除) //更改评论状态为3(删除)
...@@ -773,7 +856,7 @@ router.get('/thread/:tid/comment/list', function(req, res, next) { ...@@ -773,7 +856,7 @@ router.get('/thread/:tid/comment/list', function(req, res, next) {
router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) { router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) {
var tid = req.params.tid || null; var tid = req.params.tid || null;
var cid = req.params.cid || null; var cid = req.params.cid || null;
var mid = req.session.openUser.mid;
if (tid && cid) { if (tid && cid) {
var integral = req.session.openUser.integral || 0; var integral = req.session.openUser.integral || 0;
...@@ -831,7 +914,18 @@ router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) { ...@@ -831,7 +914,18 @@ router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) {
console.error(err); console.error(err);
res.json(returnCode.BUSY); res.json(returnCode.BUSY);
} else { } else {
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'comment_praise');
forumLimitActionRefService.checkLimitActionProhibitionAddIntegral(mid, function(err, flag){
if(err){
console.error(err);
}else{
if(!flag){
httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'comment_praise');
}
}
});
//返回点赞总数 //返回点赞总数
forumCommentService.getCommentById(cid, function(err, doc) { forumCommentService.getCommentById(cid, function(err, doc) {
if (err) { if (err) {
......
...@@ -4,6 +4,50 @@ var ForumLimitActionRef = mongoose.model('ForumLimitActionRef'); ...@@ -4,6 +4,50 @@ var ForumLimitActionRef = mongoose.model('ForumLimitActionRef');
var async = require('async'); var async = require('async');
var then = require('thenjs'); var then = require('thenjs');
var moment = require('moment');
//格式化日期 (格式:年-月-日)
function date_format(date) {
return moment(date).format('YYYY-MM-DD');
}
//判断时间是否在指定范围
function compareTime(now, begin_time, end_time) { // 禁言中 true
now = date_format(now);
begin_time = date_format(begin_time);
end_time = date_format(end_time);
if (moment(now).isSame(begin_time) || moment(now).isSame(end_time)) { //如果等于开始时间或者结束时间
return true;
} else {
return moment(now).isBetween(begin_time, end_time);
}
}
//获取数量
function countAll(conditions,callback) {
ForumLimitActionRef.count(conditions, function (err, count) {
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
}
//获取单个行为限制
function getLimitActionRef(mid,callback){
ForumLimitActionRef.findOne({mid:mid}, function(err, role) {
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,role);
}
});
}
//创建或更新论坛行为限制 //创建或更新论坛行为限制
exports.createOrUpdateLimitActionRef=function(conditions,entity,callback){ exports.createOrUpdateLimitActionRef=function(conditions,entity,callback){
...@@ -44,7 +88,8 @@ exports.createLimitActionRef=function(entity,callback){ ...@@ -44,7 +88,8 @@ exports.createLimitActionRef=function(entity,callback){
} }
}); });
}; };
//根据MID获取论坛角色
//根据MID和EntCode获取
exports.getLimitActionRefByMIdAndEntCode=function(mid,ent_code,callback){ exports.getLimitActionRefByMIdAndEntCode=function(mid,ent_code,callback){
ForumLimitActionRef.findOne({mid:mid,ent_code:ent_code}, function(err, role) { ForumLimitActionRef.findOne({mid:mid,ent_code:ent_code}, function(err, role) {
if (err) { if (err) {
...@@ -56,8 +101,9 @@ exports.getLimitActionRefByMIdAndEntCode=function(mid,ent_code,callback){ ...@@ -56,8 +101,9 @@ exports.getLimitActionRefByMIdAndEntCode=function(mid,ent_code,callback){
}); });
}; };
//根据MID获取
exports.getLimitActionRefByMid=function(mid,callback){ exports.getLimitActionRefByMid=function(mid,callback){
ForumLimitActionRef.findOne({mid:mid}, function(err, role) { getLimitActionRef(mid, function(err, role) {
if (err) { if (err) {
console.error(err); console.error(err);
callback(err,null); callback(err,null);
...@@ -67,53 +113,32 @@ exports.getLimitActionRefByMid=function(mid,callback){ ...@@ -67,53 +113,32 @@ exports.getLimitActionRefByMid=function(mid,callback){
}); });
}; };
//根据ID获取论坛角色 //根据ID获取
exports.getLimitActionRefById=function(rid,callback){ // exports.getLimitActionRefById=function(rid,callback){
ForumLimitActionRef.findById(rid, function(err, role) { // ForumLimitActionRef.findById(rid, function(err, role) {
if (err) { // if (err) {
console.error(err); // console.error(err);
callback(err,null); // callback(err,null);
} else { // } else {
callback(null,role); // callback(null,role);
} // }
}); // });
}; // };
//根据ID更新论坛角色
exports.updateLimitActionRefById=function(rid,entity,callback){
ForumLimitActionRef.update({ _id: rid}, entity,null,function(err,result){
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,null);
}
});
};
//根据ID更新论坛角色 //根据ID删除
exports.deleteLimitActionRefById=function(rid,callback){ // exports.deleteLimitActionRefById=function(rid,callback){
ForumLimitActionRef.remove({ _id: rid},function(err,result){ // ForumLimitActionRef.remove({ _id: rid},function(err,result){
if (err) { // if (err) {
console.error(err); // console.error(err);
callback(err,null); // callback(err,null);
} else { // } else {
callback(null,null); // callback(null,null);
} // }
}); // });
}; // };
//获取数量
function countAll(conditions,callback) {
ForumLimitActionRef.count(conditions, function (err, count) {
if(err){
console.error(err);
callback(err,null);
}else{
callback(null,count);
}
});
}
//获取全部列表数据 //获取全部列表数据
exports.getAllLimitActionRef= function(conditions,callback) { exports.getAllLimitActionRef= function(conditions,callback) {
...@@ -135,3 +160,67 @@ exports.getAllLimitActionRef= function(conditions,callback) { ...@@ -135,3 +160,67 @@ exports.getAllLimitActionRef= function(conditions,callback) {
} }
}); });
}; };
//检查用户是否被禁言
exports.checkLimitActionProhibitionOfSpeech = function(mid,callback) {
if(mid){
var isProhibition = false;
getLimitActionRef(mid,function(err,forumLimitActionRef){
if (err) {
console.error(err);
callback(err, null);
} else {
// 获取到用户行为限制记录
if(forumLimitActionRef){
var limit_actions = forumLimitActionRef.limit_actions;
for (var i = 0; i < limit_actions.length; i += 1) {
var limit_action = limit_actions[i];
if(limit_action.limit_action_type == 'forum_prohibition_of_speech'){
isProhibition = compareTime(new Date(), limit_action.begin_time, limit_action.end_time);
break;
}
}
callback(null, isProhibition);
}else{
callback(null, isProhibition);
}
}
});
}else{
callback(null, isProhibition);
}
};
//检查用户是否被禁加积分
exports.checkLimitActionProhibitionAddIntegral = function(mid,callback) {
if(mid){
var isProhibition = false;
getLimitActionRef(mid,function(err,forumLimitActionRef){
if (err) {
console.error(err);
callback(err, null);
} else {
// 获取到用户行为限制记录
if(forumLimitActionRef){
var limit_actions = forumLimitActionRef.limit_actions;
for (var i = 0; i < limit_actions.length; i += 1) {
var limit_action = limit_actions[i];
if(limit_action.limit_action_type == 'forum_not_add_integral'){
isProhibition = compareTime(new Date(), limit_action.begin_time, limit_action.end_time);
break;
}
}
callback(null, isProhibition);
}else{
callback(null, isProhibition);
}
}
});
}else{
callback(null, isProhibition);
}
};
\ No newline at end of file
...@@ -38,6 +38,10 @@ module.exports = { ...@@ -38,6 +38,10 @@ module.exports = {
errorcode: 10006, errorcode: 10006,
errormsg: '不能重复点赞' errormsg: '不能重复点赞'
}, },
PROHIBITION_OF_SPEECH: {
errorcode: 10007,
errormsg: '已被禁言'
},
UNCHECK_ERROR:function(msg){ UNCHECK_ERROR:function(msg){
return { return {
errorcode:9999, errorcode:9999,
......
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