Commit 707e5c69 authored by 刘文胜's avatar 刘文胜

举报管理

parent 9e39925a
'use strict';
var express = require('express'),
router = express.Router(),
returnCode = require('../../utils/returnCode'),
_ = require('lodash');
var ForumComplaintService=require('../../service/forumComplaintService');
var ForumUserService = require("../../service/forumUserService");
module.exports = function(app) {
app.use('/admin/forum', router);
};
//获取举报分页列表
router.get('/complaints/getComplaints', function(req, res, next) {
var pageNo = req.query.pageNo || 1;
var pageSize = req.query.pageSize || 10;
var conditions={
ent_code:req.session.user.ent_code
};
var type=req.query.type;
var begin = req.query.begin;
var end = req.query.end;
if(type){
conditions.type = type;
}
if(begin || end){
conditions.created = {};
if(begin){
conditions.created['$gte'] = new Date(begin);
}
if(end){
var t = new Date(end);
t.setDate(t.getDate() + 1);
conditions.created['$lte'] = t;
}
}
ForumComplaintService.getForumComplaintPageList(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('/complaints/:id/del', function(req, res, next) {
var id = req.params.id;
ForumComplaintService.removeComplaintById(id,function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
//在举报里屏蔽用户
router.post('/complaints/blacklist', function(req, res, next) {
var id = req.body.id;
ForumUserService.updateUserById(id,{status:2},function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
\ No newline at end of file
'use strict';
var express = require('express'),
router = express.Router(),
returnCode = require('../../utils/returnCode'),
_ = require('lodash');
var ForumComplaintService=require('../../service/forumComplaintService');
module.exports = function(app) {
app.use('/v1/forum', router);
};
//增加举报
router.post('/complaints', function(req, res, next) {
var ent_code=req.session.user.ent_code;
ForumComplaintService.addComplaint(req.body,ent_code,function(err,result){
if(err){
res.json(returnCode.BUSY);
}else{
res.json(_.assign(result, returnCode.SUCCESS));
}
});
});
\ No newline at end of file
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
//举报
var ComplaintSchema = new Schema({
ent_code: {
type: Number,
require: true,
index: true
},
content:{//被举报的文章,评论的内容
type:String,
require:false
},
complaintId:{//被举报的文章、评论的id
type: String,
require: true,
index: true
},
complaintTo:{//被举报人
type: Schema.Types.ObjectId,
require: false,
index: true,
ref: 'ForumUser'
},
complaintFrom:{//举报人
type: Schema.Types.ObjectId,
require: false,
index: true,
ref: 'ForumUser'
},
type: { //被举报的是文章1 还是评论2
type: Number,
require: true,
index: true
},
created: {
type: Date,
required: true,
default:Date.now
}
}, {
'collection': 'pisns_forum_complaint'
});
module.exports = mongoose.model('ForumComplaint', ComplaintSchema);
\ No newline at end of file
'use strict';
var mongoose = require('mongoose');
var ForumComplaint = mongoose.model('ForumComplaint');
var ForumUserService = require("./forumUserService");
var async=require('async');
exports.getForumComplaintPageList=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;
ForumComplaint.find(_condition)
.populate('complaintTo').populate('complaintFrom').limit(limit)
.skip(skip).sort('-created').exec(function(err,complaints){
if(err){
console.error(err);
return callback && callback(err,null);
}
obj.total=count;
obj.pageNo=pageNo;
obj.pageSize=pageSize;
obj.items=complaints;
return callback && callback(null,obj);
});
};
ForumComplaint.count(_condition, function (err, count) {
if(err){
return callback && callback(err,null);
}
if(!!!count){
return callback && callback(null,obj);
}
return search(count);
});
};
exports.addComplaint = function(complaint,entcode,callback){
if(!!!complaint || !!!complaint.complaintId){
return callback && callback('bad args');
}
complaint.ent_code = entcode;
async.waterfall([function(cb) {
var from =complaint.from;
delete complaint.from;
if(!!!from){
return cb();
}
ForumUserService.getUserById(from,
function(err,result){
if(!!!err && result){
complaint.complaintFrom = result;
}
cb();
});
},
function(cb) {
if(complaint.complaintFrom && complaint.complaintFrom._id){
ForumComplaint.count({type:complaint.type,
ent_code:entcode,
complaintId:complaint.complaintId,
complaintFrom:complaint.complaintFrom._id}).exec(function(err,count){
if(err || count){
return callback && callback('已经存在!');
}
cb();
});
}else{
ForumComplaint.count({type:complaint.type,
ent_code:entcode,
complaintId:complaint.complaintId}).exec(function(err,count){
if(err || count){
return callback && callback('已经存在!');
}
cb();
});
}
},
function(cb) {
var to =complaint.to;
delete complaint.to;
if(!!!to){
return cb();
}
ForumUserService.getUserById(to,
function(err,result){
if(!!!err && result){
complaint.complaintTo = result;
}
cb();
});
},
function(n, cb) {
var _complaint= new ForumComplaint(complaint);
_complaint.save(function(err, result) {
if(err){
console.error(err);
return callback && callback(err);
}
return callback && callback(null,result);
});
}],
function(err, result) {
return callback && callback(err);
});
};
exports.removeComplaintById = function(id,callback){
ForumComplaint.remove({ _id: id},function(err,result){
if (err) {
return callback && callback(err,null);
}
return callback && callback(null,result);
});
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment