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'),
_ = require('lodash');
var mongoose = require('mongoose');
var moment = require('moment');
var forumUserService=require('../../service/forumUserService');
var forumThreadService=require('../../service/forumThreadService');
var httpService=require('../../service/httpService');
......@@ -18,10 +19,27 @@ module.exports = function(app) {
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 mid = req.session.mobileForumUser.userId;
if(mid){
req.session.mobileForumUser.limit_action = [];
var array = [];
forumLimitActionRefService.getLimitActionRefByMid(mid,function(err,forumLimitActionRef){
if (err) {
console.error(err);
......@@ -38,9 +56,10 @@ var checkLimitAction = function(req, res) {
result : flag,
code : limit_action.limit_action_type
}
req.session.mobileForumUser.limit_actions.push(obj);
res.json('success');
array.push(obj);
}
req.session.mobileForumUser.limit_actions = array;
res.json('success');
}else{
req.session.mobileForumUser.limit_actions = null;
res.json('success');
......@@ -92,9 +111,26 @@ router.post('/user/identifyUser',function(req,res,next){
});
//微信分享带来用户
router.get('/user/from/share', function(req, res, next) {
var mid = req.query.mid,
action = req.query.action,
ent_code = req.query.ent_code;
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) {
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) {
var ent_code = req.session.user.ent_code;
......
......@@ -238,7 +238,19 @@ router.post('/thread/:tid/:fid/recommend', function(req, res, next) {
res.json(returnCode.BUSY);
} else {
if(mid){
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);
}
......
......@@ -216,9 +216,22 @@ router.get('/:ent_code/share/timeline', function(req, res, next) {
var mid = req.session.openUser.mid,
action = 'share_timeline',
ent_code = req.session.user.ent_code;
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) {
var mid = req.session.openUser.mid,
action = 'share_singlemessage',
ent_code = req.session.user.ent_code;
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');
var forumShareLogService = require('../../service/forumShareLogService');
var forumCommentService = require('../../service/forumCommentService');
var forumUserThreadControlService = require('../../service/forumUserThreadControlService');
var forumLimitActionRefService = require('../../service/forumLimitActionRefService');
var httpService = require('../../service/httpService');
......@@ -130,6 +131,15 @@ router.get('/thread/searchComment', function(req, res, next) {
//新增论坛文章
router.post('/thread/create', function(req, res, next) {
var mid = req.session.openUser.mid;
forumLimitActionRefService.checkLimitActionProhibitionOfSpeech(mid, function(err, isProhibition){
if(err){
console.error(err);
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
if(isProhibition){
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) {
......@@ -141,7 +151,17 @@ router.post('/thread/create', function(req, res, next) {
if (err) {
res.json(returnCode.BUSY);
} else {
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
......@@ -154,6 +174,9 @@ router.post('/thread/create', 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) {
var mid = req.session.openUser.mid;
var tid = req.params.tid || null;
if (tid) {
var integral = req.session.openUser.integral || 0;
......@@ -306,7 +330,19 @@ router.post('/thread/:tid/raise', function(req, res, next) {
console.error(err);
res.json(returnCode.BUSY);
} else {
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) {
if (err) {
console.error(err);
......@@ -408,6 +444,15 @@ router.post('/thread/:tid/share', function(req, res, next) {
//新增文章评论
router.post('/thread/:tid/comment/create', function(req, res, next) {
var mid = req.session.openUser.mid;
forumLimitActionRefService.checkLimitActionProhibitionOfSpeech(mid, function(err, isProhibition){
if(err){
console.error(err);
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
if(isProhibition){
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
var tid = req.params.tid || null;
if (tid) {
var integral = req.session.openUser.integral || 0;
......@@ -501,7 +546,16 @@ router.post('/thread/:tid/comment/create', function(req, res, next) {
console.error(err);
res.json(returnCode.BUSY);
} else {
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条评论
......@@ -554,10 +608,22 @@ router.post('/thread/:tid/comment/create', function(req, res, next) {
} else {
res.json(returnCode.WRONG_PARAM);
}
}
}
});
});
//新建文章评论的子评论
router.post('/thread/:tid/comment/:cid/create', function(req, res, next) {
var mid = req.session.openUser.mid;
forumLimitActionRefService.checkLimitActionProhibitionOfSpeech(mid, function(err, isProhibition){
if(err){
console.error(err);
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
if(isProhibition){
res.json(returnCode.PROHIBITION_OF_SPEECH);
}else{
var tid = req.params.tid || null;
var cid = req.params.cid || null;
if (tid && cid) {
......@@ -629,7 +695,18 @@ router.post('/thread/:tid/comment/:cid/create', function(req, res, next) {
console.error(err);
res.json(returnCode.BUSY);
} else {
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, 'reply');
}
}
});
// httpService.sendRequest(req.session.user.ent_code, req.session.openUser.mid, 'reply');
ForumComment.populate(results[0], {
path: 'from to',
select: 'uid nickName icon comments'
......@@ -659,6 +736,12 @@ router.post('/thread/:tid/comment/:cid/create', function(req, res, next) {
} else {
res.json(returnCode.WRONG_PARAM);
}
}
}
});
});
//更改评论状态为3(删除)
......@@ -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) {
var tid = req.params.tid || null;
var cid = req.params.cid || null;
var mid = req.session.openUser.mid;
if (tid && cid) {
var integral = req.session.openUser.integral || 0;
......@@ -831,7 +914,18 @@ router.post('/thread/:tid/comment/:cid/raise', function(req, res, next) {
console.error(err);
res.json(returnCode.BUSY);
} else {
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) {
if (err) {
......
......@@ -4,6 +4,50 @@ var ForumLimitActionRef = mongoose.model('ForumLimitActionRef');
var async = require('async');
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){
......@@ -44,7 +88,8 @@ exports.createLimitActionRef=function(entity,callback){
}
});
};
//根据MID获取论坛角色
//根据MID和EntCode获取
exports.getLimitActionRefByMIdAndEntCode=function(mid,ent_code,callback){
ForumLimitActionRef.findOne({mid:mid,ent_code:ent_code}, function(err, role) {
if (err) {
......@@ -56,8 +101,9 @@ exports.getLimitActionRefByMIdAndEntCode=function(mid,ent_code,callback){
});
};
//根据MID获取
exports.getLimitActionRefByMid=function(mid,callback){
ForumLimitActionRef.findOne({mid:mid}, function(err, role) {
getLimitActionRef(mid, function(err, role) {
if (err) {
console.error(err);
callback(err,null);
......@@ -67,71 +113,114 @@ exports.getLimitActionRefByMid=function(mid,callback){
});
};
//根据ID获取论坛角色
exports.getLimitActionRefById=function(rid,callback){
ForumLimitActionRef.findById(rid, function(err, role) {
if (err) {
//根据ID获取
// exports.getLimitActionRefById=function(rid,callback){
// ForumLimitActionRef.findById(rid, function(err, role) {
// if (err) {
// console.error(err);
// callback(err,null);
// } else {
// callback(null,role);
// }
// });
// };
//根据ID删除
// exports.deleteLimitActionRefById=function(rid,callback){
// ForumLimitActionRef.remove({ _id: rid},function(err,result){
// if (err) {
// console.error(err);
// callback(err,null);
// } else {
// callback(null,null);
// }
// });
// };
//获取全部列表数据
exports.getAllLimitActionRef= function(conditions,callback) {
countAll(conditions,function(err,count){
if(err){
console.error(err);
callback(err,null);
} else {
callback(null,role);
}
});
};
//根据ID更新论坛角色
exports.updateLimitActionRefById=function(rid,entity,callback){
ForumLimitActionRef.update({ _id: rid}, entity,null,function(err,result){
}else{
ForumLimitActionRef.find(conditions).exec(function(err, docs) {
if (err) {
console.error(err);
callback(err,null);
} else {
callback(null,null);
var obj={};
obj.items=docs;
callback(null,obj);
}
});
}
});
};
//根据ID更新论坛角色
exports.deleteLimitActionRefById=function(rid,callback){
ForumLimitActionRef.remove({ _id: rid},function(err,result){
//检查用户是否被禁言
exports.checkLimitActionProhibitionOfSpeech = function(mid,callback) {
if(mid){
var isProhibition = false;
getLimitActionRef(mid,function(err,forumLimitActionRef){
if (err) {
console.error(err);
callback(err,null);
callback(err, null);
} else {
callback(null,null);
// 获取到用户行为限制记录
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;
}
});
};
//获取数量
function countAll(conditions,callback) {
ForumLimitActionRef.count(conditions, function (err, count) {
if(err){
console.error(err);
callback(err,null);
}
callback(null, isProhibition);
}else{
callback(null,count);
callback(null, isProhibition);
}
}
});
}
//获取全部列表数据
exports.getAllLimitActionRef= function(conditions,callback) {
countAll(conditions,function(err,count){
if(err){
console.error(err);
callback(err,null);
}else{
ForumLimitActionRef.find(conditions).exec(function(err, docs) {
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);
callback(err, null);
} else {
var obj={};
obj.items=docs;
callback(null,obj);
// 获取到用户行为限制记录
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 = {
errorcode: 10006,
errormsg: '不能重复点赞'
},
PROHIBITION_OF_SPEECH: {
errorcode: 10007,
errormsg: '已被禁言'
},
UNCHECK_ERROR:function(msg){
return {
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