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();
}
}
});
}); });
This diff is collapsed.
...@@ -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