Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pisns-forum-api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
scrmGroup
pisns-forum-api
Commits
3d210033
Commit
3d210033
authored
Apr 20, 2015
by
刘文胜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
黑名单
parent
068e2633
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
346 additions
and
0 deletions
+346
-0
forumBlackList.js
app/controllers/admin/forumBlackList.js
+115
-0
forumBlackList.js
app/models/forumBlackList.js
+51
-0
forumBlackListService.js
app/service/forumBlackListService.js
+165
-0
forumUserService.js
app/service/forumUserService.js
+15
-0
No files found.
app/controllers/admin/forumBlackList.js
0 → 100644
View file @
3d210033
'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
=
{};
obj
.
items
=
[];
ForumUserService
.
getUsers
(
function
(
err
,
results
){
if
(
err
){
res
.
json
(
returnCode
.
BUSY
);
}
else
{
obj
.
items
=
results
;
res
.
json
(
_
.
assign
(
obj
,
returnCode
.
SUCCESS
));
}
});
});
\ No newline at end of file
app/models/forumBlackList.js
0 → 100644
View file @
3d210033
'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
app/service/forumBlackListService.js
0 → 100644
View file @
3d210033
'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
app/service/forumUserService.js
View file @
3d210033
...
...
@@ -56,3 +56,18 @@ exports.updateUserById=function(uid,entity,callback){
}
});
};
exports
.
getUsers
=
function
(
callback
){
ForumUser
.
find
({}).
exec
(
function
(
err
,
results
){
if
(
err
){
callback
(
err
,
null
);
}
else
{
if
(
results
){
callback
(
null
,
results
);
}
else
{
callback
(
null
,
null
);
}
}
});
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment