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
7921d8b0
Commit
7921d8b0
authored
Sep 01, 2015
by
strong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'behavior_limition_remould' into merge_behavior_limitaion
Conflicts: app/controllers/mobile/forumThread.js
parents
103edb87
53abfb9c
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
738 additions
and
88 deletions
+738
-88
forumIdentifyUser.js
app/controllers/admin/forumIdentifyUser.js
+126
-49
forumLimitOperation.js
app/controllers/admin/forumLimitOperation.js
+110
-0
forumLimitOperationLog.js
app/controllers/admin/forumLimitOperationLog.js
+31
-0
forumThread.js
app/controllers/admin/forumThread.js
+4
-2
forumShare.js
app/controllers/mobile/forumShare.js
+4
-3
forumLimitOperation.js
app/models/forumLimitOperation.js
+57
-0
forumLimitOperationLog.js
app/models/forumLimitOperationLog.js
+49
-0
forumLimitOperationLogService.js
app/service/forumLimitOperationLogService.js
+74
-0
forumLimitOperationService.js
app/service/forumLimitOperationService.js
+169
-0
forumUserService.js
app/service/forumUserService.js
+114
-34
No files found.
app/controllers/admin/forumIdentifyUser.js
View file @
7921d8b0
...
@@ -9,8 +9,11 @@ var moment = require('moment');
...
@@ -9,8 +9,11 @@ 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'
);
var
forumLimitActionRefService
=
require
(
'../../service/forumLimitActionRefService'
);
// var forumLimitActionRefService=require('../../service/forumLimitActionRefService');
var
forumLimitActionConfigService
=
require
(
'../../service/forumLimitActionConfigService'
);
// var forumLimitActionConfigService=require('../../service/forumLimitActionConfigService');
var
forumLimitOperationService
=
require
(
'../../service/forumLimitOperationService'
);
var
async
=
require
(
'async'
);
var
async
=
require
(
'async'
);
...
@@ -83,7 +86,7 @@ router.get('/user/from/share', function(req, res, next) {
...
@@ -83,7 +86,7 @@ router.get('/user/from/share', function(req, res, next) {
action
=
req
.
query
.
action
,
action
=
req
.
query
.
action
,
ent_code
=
req
.
query
.
ent_code
;
ent_code
=
req
.
query
.
ent_code
;
forumLimit
ActionRefService
.
checkLimitAc
tionProhibitionAddIntegral
(
userId
,
function
(
err
,
flag
){
forumLimit
OperationService
.
checkLimitOpera
tionProhibitionAddIntegral
(
userId
,
function
(
err
,
flag
){
if
(
err
){
if
(
err
){
console
.
error
(
err
);
console
.
error
(
err
);
res
.
json
(
returnCode
.
PROHIBITION_OF_SPEECH
);
res
.
json
(
returnCode
.
PROHIBITION_OF_SPEECH
);
...
@@ -101,64 +104,138 @@ router.get('/user/from/share', function(req, res, next) {
...
@@ -101,64 +104,138 @@ router.get('/user/from/share', function(req, res, next) {
// res.status(200).end();
// res.status(200).end();
});
});
//检查用户权限
//检查用户权限
旧版
router
.
post
(
'/user/checkLimitAction'
,
function
(
req
,
res
,
next
)
{
router
.
post
(
'/user/checkLimitAction'
,
function
(
req
,
res
,
next
)
{
var
entity
=
req
.
body
;
var
entity
=
req
.
body
;
var
userId
=
entity
.
mid
;
var
userId
=
entity
.
mid
;
if
(
userId
){
if
(
userId
){
forumLimitActionConfigService
.
getAllLimitActionConfig
(
function
(
err
,
configs
){
var
array
=
[];
if
(
err
){
var
configs
=
[{
code
:
'forum_prohibition_of_speech'
},{
code
:
'forum_not_add_integral'
}];
forumLimitOperationService
.
getLimitOperationByUserId
(
userId
,
function
(
err
,
forumLimitOperation
){
if
(
err
)
{
console
.
error
(
err
);
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
returnObject
=
{
var
array
=
[];
errcode
:
'-1'
,
forumLimitActionRefService
.
getLimitActionRefByMid
(
userId
,
function
(
err
,
forumLimitActionRef
){
errmsg
:
err
,
if
(
err
)
{
configs
:
configs
,
console
.
error
(
err
);
data
:
array
var
returnObject
=
{
}
errcode
:
'success'
,
res
.
json
(
returnObject
);
configs
:
configs
,
}
else
{
data
:
array
// 获取到用户行为限制记录
}
if
(
forumLimitOperation
){
res
.
json
(
returnObject
);
var
limit_actions
=
forumLimitOperation
.
limit_actions
;
}
else
{
for
(
var
i
=
0
;
i
<
limit_actions
.
length
;
i
+=
1
)
{
// 获取到用户行为限制记录
var
limit_action
=
limit_actions
[
i
];
if
(
forumLimitActionRef
){
var
flag
=
compareTime
(
new
Date
(),
limit_action
.
begin_time
,
limit_action
.
end_time
);
var
limit_actions
=
forumLimitActionRef
.
limit_actions
;
//把flag和limit_action_type 放进session
for
(
var
i
=
0
;
i
<
limit_actions
.
length
;
i
+=
1
)
{
var
code
=
''
;
var
limit_action
=
limit_actions
[
i
];
switch
(
limit_action
.
limit_type
)
var
flag
=
compareTime
(
new
Date
(),
limit_action
.
begin_time
,
limit_action
.
end_time
);
{
//把flag和limit_action_type 放进session
case
1
:
var
obj
=
{
code
=
'forum_prohibition_of_speech'
;
result
:
flag
,
break
;
code
:
limit_action
.
limit_action_type
case
2
:
}
code
=
'forum_not_add_integral'
;
array
.
push
(
obj
);
break
;
}
var
returnObject
=
{
errcode
:
'success'
,
configs
:
configs
,
data
:
array
}
res
.
json
(
returnObject
);
}
else
{
var
returnObject
=
{
errcode
:
'success'
,
configs
:
configs
,
data
:[]
}
res
.
json
(
returnObject
);
}
}
}
});
var
obj
=
{
result
:
flag
,
code
:
code
}
array
.
push
(
obj
);
}
var
returnObject
=
{
errcode
:
'success'
,
configs
:
configs
,
data
:
array
}
res
.
json
(
returnObject
);
}
else
{
var
returnObject
=
{
errcode
:
'success'
,
configs
:
configs
,
data
:[]
}
res
.
json
(
returnObject
);
}
}
}
});
});
}
else
{
}
else
{
var
returnObject
=
{
var
returnObject
=
{
errcode
:
'
success
'
,
errcode
:
'
-1
'
,
configs
:
configs
,
errmsg
:
'参数错误'
,
data
:[]
data
:[]
}
}
res
.
json
(
returnObject
);
res
.
json
(
returnObject
);
}
}
});
});
//检查用户权限
// router.post('/user/checkLimitAction', function(req, res, next) {
// var entity=req.body;
// var userId = entity.mid;
// if(userId){
// forumLimitActionConfigService.getAllLimitActionConfig(function(err,configs){
// if(err){
// console.error(err);
// res.json(returnCode.BUSY);
// }else{k
// var array = [];
// forumLimitActionRefService.getLimitActionRefByMid(userId,function(err,forumLimitActionRef){
// if (err) {
// console.error(err);
// var returnObject = {
// errcode:'success',
// configs:configs,
// data:array
// }
// res.json(returnObject);
// } 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];
// var flag = compareTime(new Date(), limit_action.begin_time, limit_action.end_time);
// //把flag和limit_action_type 放进session
// var obj = {
// result : flag,
// code : limit_action.limit_action_type
// }
// array.push(obj);
// }
// var returnObject = {
// errcode:'success',
// configs:configs,
// data:array
// }
// res.json(returnObject);
// }else{
// var returnObject = {
// errcode:'success',
// configs:configs,
// data:[]
// }
// res.json(returnObject);
// }
// }
// });
// }
// });
// }else{
// var returnObject = {
// errcode:'success',
// configs:configs,
// data:[]
// }
// res.json(returnObject);
// }
// });
app/controllers/admin/forumLimitOperation.js
0 → 100644
View file @
7921d8b0
'use strict'
;
var
express
=
require
(
'express'
),
router
=
express
.
Router
(),
returnCode
=
require
(
'../../utils/returnCode'
),
_
=
require
(
'lodash'
);
var
mongoose
=
require
(
'mongoose'
);
var
moment
=
require
(
'moment'
);
var
async
=
require
(
'async'
);
var
then
=
require
(
'thenjs'
);
var
forumLimitOperationService
=
require
(
'../../service/forumLimitOperationService'
);
var
forumLimitOperationLogService
=
require
(
'../../service/forumLimitOperationLogService'
);
module
.
exports
=
function
(
app
)
{
app
.
use
(
'/admin/forum'
,
router
);
};
//新增或更新论坛行为限制
router
.
post
(
'/limitOperation/createOrUpdate'
,
function
(
req
,
res
,
next
)
{
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
userId
=
req
.
body
.
userId
;
var
selects
=
req
.
body
.
selects
;
var
limit_actions
=
[];
if
(
selects
){
// 封装操作
for
(
var
i
in
selects
){
var
begin_time
=
moment
(
new
Date
()).
format
(
'YYYY-MM-DD'
);
var
end_time
=
moment
(
new
Date
()).
add
(
selects
[
i
].
days
,
'days'
).
format
(
'YYYY-MM-DD'
);
var
obj
=
{
limit_reason
:
selects
[
i
].
limit_reason
,
limit_type
:
selects
[
i
].
limit_type
,
begin_time
:
new
Date
(
begin_time
),
end_time
:
new
Date
(
end_time
),
days
:
selects
[
i
].
days
}
limit_actions
.
push
(
obj
);
}
}
//封装实体
var
forumLimiOperation
=
{
ent_code
:
ent_code
,
userId
:
userId
,
limit_actions
:
limit_actions
}
async
.
parallel
([
function
(
callback
)
{
//创建或更新
forumLimitOperationService
.
createOrUpdateLimitOperation
({
userId
:
userId
,
ent_code
:
ent_code
,
status
:
1
},
forumLimiOperation
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
result
);
}
});
},
function
(
callback
)
{
for
(
var
i
in
limit_actions
){
var
obj
=
{
ent_code
:
ent_code
,
userId
:
userId
,
limit_reason
:
limit_actions
[
i
].
limit_reason
,
limit_type
:
limit_actions
[
i
].
limit_type
,
begin_time
:
limit_actions
[
i
].
begin_time
,
end_time
:
limit_actions
[
i
].
end_time
,
days
:
limit_actions
[
i
].
days
,
}
forumLimitOperationLogService
.
createOperationLog
(
obj
,
function
(
err
,
doc
){
// console.log('save log');
});
}
callback
();
}
],
function
done
(
err
,
results
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
rs
=
{
data
:
results
[
0
]
}
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
});
//根据userId获取论坛行为限制
router
.
get
(
'/limitOperation/get/:userId'
,
function
(
req
,
res
,
next
)
{
var
userId
=
req
.
params
.
userId
;
if
(
userId
)
{
forumLimitOperationService
.
getLimitOperationByUserId
(
userId
,
function
(
err
,
forumLimitOperation
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
rs
=
{};
rs
.
data
=
forumLimitOperation
;
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
app/controllers/admin/forumLimitOperationLog.js
0 → 100644
View file @
7921d8b0
'use strict'
;
var
express
=
require
(
'express'
),
router
=
express
.
Router
(),
returnCode
=
require
(
'../../utils/returnCode'
),
_
=
require
(
'lodash'
);
var
forumLimitOperationLogService
=
require
(
'../../service/forumLimitOperationLogService'
);
module
.
exports
=
function
(
app
)
{
app
.
use
(
'/admin/forum'
,
router
);
};
//根据userId获取论坛行为限制
router
.
get
(
'/limitOperationLogs/get/:userId'
,
function
(
req
,
res
,
next
)
{
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
pageSize
=
req
.
query
.
pageSize
||
10
;
var
userId
=
req
.
params
.
userId
;
if
(
userId
)
{
forumLimitOperationLogService
.
getAllLimitAction
(
userId
,
pageNo
,
pageSize
,
function
(
err
,
results
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
_
.
assign
(
results
,
returnCode
.
SUCCESS
));
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
app/controllers/admin/forumThread.js
View file @
7921d8b0
...
@@ -14,7 +14,9 @@ var forumShareLogService = require('../../service/forumShareLogService');
...
@@ -14,7 +14,9 @@ var forumShareLogService = require('../../service/forumShareLogService');
var
forumCommentService
=
require
(
'../../service/forumCommentService'
);
var
forumCommentService
=
require
(
'../../service/forumCommentService'
);
var
forumTagService
=
require
(
'../../service/forumTagService'
);
var
forumTagService
=
require
(
'../../service/forumTagService'
);
var
forumUserService
=
require
(
'../../service/forumUserService'
);
var
forumUserService
=
require
(
'../../service/forumUserService'
);
var
forumLimitActionRefService
=
require
(
'../../service/forumLimitActionRefService'
);
// var forumLimitActionRefService = require('../../service/forumLimitActionRefService');
var
forumLimitOperationService
=
require
(
'../../service/forumLimitOperationService'
);
var
httpService
=
require
(
'../../service/httpService'
);
var
httpService
=
require
(
'../../service/httpService'
);
var
userUtil
=
require
(
'../../utils/user'
);
var
userUtil
=
require
(
'../../utils/user'
);
...
@@ -264,7 +266,7 @@ router.post('/thread/:tid/:fid/recommend', function(req, res, next) {
...
@@ -264,7 +266,7 @@ router.post('/thread/:tid/:fid/recommend', function(req, res, next) {
res
.
json
(
returnCode
.
BUSY
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
}
else
{
if
(
mid
){
if
(
mid
){
forumLimit
ActionRefService
.
checkLimitAc
tionProhibitionAddIntegral
(
tid
,
function
(
err
,
flag
){
forumLimit
OperationService
.
checkLimitOpera
tionProhibitionAddIntegral
(
tid
,
function
(
err
,
flag
){
if
(
err
){
if
(
err
){
console
.
error
(
err
);
console
.
error
(
err
);
res
.
json
(
returnCode
.
PROHIBITION_OF_SPEECH
);
res
.
json
(
returnCode
.
PROHIBITION_OF_SPEECH
);
...
...
app/controllers/mobile/forumShare.js
View file @
7921d8b0
...
@@ -12,7 +12,8 @@ var forumThreadService = require('../../service/forumThreadService'),
...
@@ -12,7 +12,8 @@ var forumThreadService = require('../../service/forumThreadService'),
config
=
require
(
'../../../config/config'
),
config
=
require
(
'../../../config/config'
),
httpService
=
require
(
'../../service/httpService'
),
httpService
=
require
(
'../../service/httpService'
),
forumInfoService
=
require
(
'../../service/forumInfoService'
),
forumInfoService
=
require
(
'../../service/forumInfoService'
),
forumLimitActionRefService
=
require
(
'../../service/forumLimitActionRefService'
);
// forumLimitActionRefService = require('../../service/forumLimitActionRefService'),
forumLimitOperationService
=
require
(
'../../service/forumLimitOperationService'
);
module
.
exports
=
function
(
app
)
{
module
.
exports
=
function
(
app
)
{
app
.
use
(
'/v1/forum'
,
router
);
app
.
use
(
'/v1/forum'
,
router
);
...
@@ -220,7 +221,7 @@ router.get('/:ent_code/share/timeline', function(req, res, next) {
...
@@ -220,7 +221,7 @@ router.get('/:ent_code/share/timeline', function(req, res, next) {
var
userId
=
req
.
session
.
mobileForumUser
.
userId
;
var
userId
=
req
.
session
.
mobileForumUser
.
userId
;
forumLimit
ActionRefService
.
checkLimitAc
tionProhibitionAddIntegral
(
userId
,
function
(
err
,
flag
){
forumLimit
OperationService
.
checkLimitOpera
tionProhibitionAddIntegral
(
userId
,
function
(
err
,
flag
){
if
(
err
){
if
(
err
){
console
.
error
(
err
);
console
.
error
(
err
);
res
.
json
(
returnCode
.
PROHIBITION_OF_SPEECH
);
res
.
json
(
returnCode
.
PROHIBITION_OF_SPEECH
);
...
@@ -243,7 +244,7 @@ router.get('/:ent_code/share/singlemessage', function(req, res, next) {
...
@@ -243,7 +244,7 @@ router.get('/:ent_code/share/singlemessage', function(req, res, next) {
ent_code
=
req
.
session
.
user
.
ent_code
;
ent_code
=
req
.
session
.
user
.
ent_code
;
var
userId
=
req
.
session
.
mobileForumUser
.
userId
;
var
userId
=
req
.
session
.
mobileForumUser
.
userId
;
forumLimit
ActionRefService
.
checkLimitAc
tionProhibitionAddIntegral
(
userId
,
function
(
err
,
flag
){
forumLimit
OperationService
.
checkLimitOpera
tionProhibitionAddIntegral
(
userId
,
function
(
err
,
flag
){
if
(
err
){
if
(
err
){
console
.
error
(
err
);
console
.
error
(
err
);
res
.
json
(
returnCode
.
PROHIBITION_OF_SPEECH
);
res
.
json
(
returnCode
.
PROHIBITION_OF_SPEECH
);
...
...
app/models/forumLimitOperation.js
0 → 100644
View file @
7921d8b0
'use strict'
;
var
mongoose
=
require
(
'mongoose'
),
Schema
=
mongoose
.
Schema
;
//行为限制表
var
ForumLimitOperationSchema
=
new
Schema
({
ent_code
:
{
type
:
Number
,
index
:
true
,
require
:
true
},
userId
:
{
//forumUser id
type
:
String
,
index
:
true
,
unique
:
true
,
require
:
true
},
uid
:
{
//用户ID,这里直接存放用户的openId
type
:
String
,
require
:
false
},
status
:
{
//状态,1启用,0禁用
type
:
Number
,
require
:
true
,
default
:
1
},
limit_actions
:
[{
limit_reason
:
{
//原因
type
:
String
,
default
:
''
},
limit_type
:
{
//限制类型, 1 禁言, 2 不加积分
type
:
Number
,
default
:
0
},
begin_time
:
{
//开始时间
type
:
Date
},
end_time
:
{
//结束时间
type
:
Date
},
days
:{
//限制天数
type
:
Number
,
require
:
false
}
}],
created
:
{
type
:
Date
,
required
:
true
,
default
:
Date
.
now
}
},
{
'collection'
:
'pisns_forum_limit_operation'
});
module
.
exports
=
mongoose
.
model
(
'ForumLimitOperation'
,
ForumLimitOperationSchema
);
app/models/forumLimitOperationLog.js
0 → 100644
View file @
7921d8b0
'use strict'
;
var
mongoose
=
require
(
'mongoose'
),
Schema
=
mongoose
.
Schema
;
//行为限制日志
var
ForumLimitOperationLogSchema
=
new
Schema
({
ent_code
:
{
type
:
Number
,
require
:
true
,
index
:
true
},
userId
:
{
//forumUser id
type
:
String
,
index
:
true
,
require
:
true
},
mid
:
{
//会员ID
type
:
Number
,
require
:
true
,
index
:
false
},
limit_reason
:
{
//原因
type
:
String
,
default
:
''
},
limit_type
:
{
//限制类型, 1 禁言, 2 不加积分
type
:
String
,
default
:
''
},
begin_time
:
{
//开始时间
type
:
Date
},
end_time
:
{
//结束时间
type
:
Date
},
days
:{
//限制天数
type
:
Number
,
require
:
false
},
created
:
{
type
:
Date
,
required
:
true
,
default
:
Date
.
now
}
},
{
'collection'
:
'pisns_forum_limit_operation_log'
});
module
.
exports
=
mongoose
.
model
(
'ForumLimitOperationLog'
,
ForumLimitOperationLogSchema
);
\ No newline at end of file
app/service/forumLimitOperationLogService.js
0 → 100644
View file @
7921d8b0
'use strict'
;
var
mongoose
=
require
(
'mongoose'
);
var
forumLimitOperationLog
=
mongoose
.
model
(
'ForumLimitOperationLog'
);
var
async
=
require
(
'async'
);
var
then
=
require
(
'thenjs'
);
var
moment
=
require
(
'moment'
);
//获取数量
function
countAll
(
conditions
,
callback
)
{
forumLimitOperationLog
.
count
(
conditions
,
function
(
err
,
count
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
count
);
}
});
}
//创建行为限制log
exports
.
createOperationLog
=
function
(
entity
,
callback
)
{
var
forum
=
new
forumLimitOperationLog
(
entity
);
forum
.
save
(
function
(
err
,
forum
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
forum
);
}
});
};
//获取全部列表数据
exports
.
getAllLimitOperationLog
=
function
(
conditions
,
callback
)
{
forumLimitOperationLog
.
find
(
conditions
).
exec
(
function
(
err
,
docs
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
docs
);
}
});
};
//分页获取全部列表数据
exports
.
getAllLimitAction
=
function
(
conditions
,
pageNo
,
pageSize
,
callback
)
{
countAll
(
conditions
,
function
(
err
,
count
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
var
skip
=
(
pageNo
-
1
)
*
pageSize
;
var
limit
=
count
-
skip
>
pageSize
?
pageSize
:
(
count
-
skip
);
forumLimitOperationLog
.
find
(
conditions
).
skip
(
skip
).
limit
(
limit
).
sort
(
'-created'
).
exec
(
function
(
err
,
docs
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
var
obj
=
{};
obj
.
total
=
count
;
obj
.
pageNo
=
pageNo
;
obj
.
pageSize
=
pageSize
;
obj
.
data
=
docs
;
callback
(
null
,
obj
);
}
});
}
});
};
\ No newline at end of file
app/service/forumLimitOperationService.js
0 → 100644
View file @
7921d8b0
'use strict'
;
var
mongoose
=
require
(
'mongoose'
);
var
forumLimitOperation
=
mongoose
.
model
(
'ForumLimitOperation'
);
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
getLimitOperation
(
userId
,
callback
){
forumLimitOperation
.
findOne
({
userId
:
userId
},
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
}
//创建或更新论坛行为限制
exports
.
createOrUpdateLimitOperation
=
function
(
conditions
,
entity
,
callback
){
forumLimitOperation
.
findOneAndUpdate
(
conditions
,
{
limit_actions
:
entity
.
limit_actions
},
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
log
(
err
);
callback
(
err
,
null
);
}
else
{
if
(
!
doc
){
var
forum
=
new
forumLimitOperation
(
entity
);
forum
.
save
(
function
(
err
,
forum
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
forum
);
}
});
}
else
{
callback
(
null
,
doc
);
}
}
});
};
//根据userId获取
exports
.
getLimitOperationByUserId
=
function
(
userId
,
callback
){
getLimitOperation
(
userId
,
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
//判断是否在用,过期的赋为空
if
(
doc
){
var
limit_actions
=
doc
.
limit_actions
;
for
(
var
i
=
limit_actions
.
length
-
1
;
i
>=
0
;
i
-=
1
)
{
var
limit_action
=
limit_actions
[
i
];
if
(
limit_action
.
begin_time
&&
limit_action
.
end_time
){
var
begin_time
=
new
Date
(
limit_action
.
begin_time
).
getTime
(),
ent_time
=
new
Date
(
limit_action
.
end_time
).
getTime
(),
now
=
new
Date
().
getTime
();
if
(
now
>
ent_time
){
limit_actions
.
splice
(
i
,
1
);
}
}
}
}
callback
(
null
,
doc
);
}
});
};
//检查用户是否被禁言
exports
.
checkLimitOperationProhibitionOfSpeech
=
function
(
userId
,
callback
)
{
if
(
userId
){
var
isProhibition
=
false
;
getLimitOperation
(
userId
,
function
(
err
,
forumLimitOperation
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
// 获取到用户行为限制记录
if
(
forumLimitOperation
){
var
limit_actions
=
forumLimitOperation
.
limit_actions
;
for
(
var
i
=
0
;
i
<
limit_actions
.
length
;
i
+=
1
)
{
var
limit_action
=
limit_actions
[
i
];
if
(
limit_action
.
limit_type
===
1
){
if
(
limit_action
.
begin_time
&&
limit_action
.
end_time
){
var
begin_time
=
new
Date
(
limit_action
.
begin_time
).
getTime
(),
ent_time
=
new
Date
(
limit_action
.
end_time
).
getTime
(),
now
=
new
Date
().
getTime
();
if
(
now
>=
begin_time
&&
now
<=
ent_time
){
isProhibition
=
true
;
break
;
}
}
}
}
callback
(
null
,
isProhibition
);
}
else
{
callback
(
null
,
isProhibition
);
}
}
});
}
else
{
callback
(
null
,
isProhibition
);
}
};
//检查用户是否被禁加积分
exports
.
checkLimitOperationProhibitionAddIntegral
=
function
(
userId
,
callback
)
{
var
isProhibition
=
false
;
if
(
userId
){
getLimitOperation
(
userId
,
function
(
err
,
forumLimitOperation
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
// 获取到用户行为限制记录
if
(
forumLimitOperation
){
var
limit_actions
=
forumLimitOperation
.
limit_actions
;
for
(
var
i
=
0
;
i
<
limit_actions
.
length
;
i
+=
1
)
{
var
limit_action
=
limit_actions
[
i
];
if
(
limit_action
.
limit_type
===
2
){
if
(
limit_action
.
begin_time
&&
limit_action
.
end_time
){
var
begin_time
=
new
Date
(
limit_action
.
begin_time
).
getTime
(),
ent_time
=
new
Date
(
limit_action
.
end_time
).
getTime
(),
now
=
new
Date
().
getTime
();
if
(
now
>=
begin_time
&&
now
<=
ent_time
){
isProhibition
=
true
;
break
;
}
}
}
}
callback
(
null
,
isProhibition
);
}
else
{
callback
(
null
,
isProhibition
);
}
}
});
}
else
{
callback
(
null
,
isProhibition
);
}
};
\ No newline at end of file
app/service/forumUserService.js
View file @
7921d8b0
...
@@ -3,8 +3,11 @@ var mongoose = require('mongoose');
...
@@ -3,8 +3,11 @@ var mongoose = require('mongoose');
var
ForumUser
=
mongoose
.
model
(
'ForumUser'
);
var
ForumUser
=
mongoose
.
model
(
'ForumUser'
);
var
then
=
require
(
'thenjs'
);
var
then
=
require
(
'thenjs'
);
var
async
=
require
(
'async'
);
var
async
=
require
(
'async'
);
var
forumLimitActionRefService
=
require
(
'../service/forumLimitActionRefService'
);
// var forumLimitActionRefService = require('../service/forumLimitActionRefService');
var
forumLimitActionConfigService
=
require
(
'../service/forumLimitActionConfigService'
);
// var forumLimitActionConfigService = require('../service/forumLimitActionConfigService');
var
forumLimitOperationService
=
require
(
'../service/forumLimitOperationService'
);
//创建用户
//创建用户
exports
.
createUser
=
function
(
entity
,
callback
){
exports
.
createUser
=
function
(
entity
,
callback
){
var
forum
=
new
ForumUser
(
entity
);
var
forum
=
new
ForumUser
(
entity
);
...
@@ -87,6 +90,23 @@ exports.searchMembers=function(pageNo, pageSize, q, callback){
...
@@ -87,6 +90,23 @@ exports.searchMembers=function(pageNo, pageSize, q, callback){
});
});
};
};
//根据nickName查询用户
exports
.
searchMembersByNickName
=
function
(
nickName
,
callback
){
var
name
=
{
$or
:
[
{
nickName
:
{
$regex
:
nickName
,
$options
:
'i'
}},
{
displayName
:
{
$regex
:
nickName
,
$options
:
'i'
}}
]
};
ForumUser
.
find
(
name
).
exec
(
function
(
err
,
result
){
if
(
err
){
callback
(
err
,
null
);
}
else
{
callback
(
null
,
result
);
}
});
};
//查询用户和行为限制信息
//查询用户和行为限制信息
exports
.
searchMembersAndLimitActions
=
function
(
pageNo
,
pageSize
,
q
,
callback
){
exports
.
searchMembersAndLimitActions
=
function
(
pageNo
,
pageSize
,
q
,
callback
){
then
(
function
(
cont
)
{
then
(
function
(
cont
)
{
...
@@ -98,30 +118,31 @@ exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){
...
@@ -98,30 +118,31 @@ exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){
cont
(
err
,
count
,
docs
);
cont
(
err
,
count
,
docs
);
});
});
}).
then
(
function
(
cont
,
count
,
members
)
{
}).
then
(
function
(
cont
,
count
,
members
)
{
forumLimitActionConfigService
.
getAllLimitActionConfig
(
function
(
err
,
configs
)
{
if
(
count
>
0
)
{
cont
(
err
,
count
,
members
,
configs
);
});
}).
then
(
function
(
cont
,
count
,
members
,
configs
)
{
if
(
count
>
0
&&
configs
.
length
>
0
)
{
var
asyncTasks
=
[];
var
asyncTasks
=
[];
members
.
forEach
(
function
(
member
)
{
members
.
forEach
(
function
(
member
)
{
asyncTasks
.
push
(
function
(
callback
)
{
asyncTasks
.
push
(
function
(
callback
)
{
forumLimit
ActionRefService
.
getLimitActionRefByMIdAndEntCode
(
member
.
_id
,
member
.
ent_code
,
function
(
err
,
forumLimitActionRef
)
{
forumLimit
OperationService
.
getLimitOperationByUserId
(
member
.
_id
,
function
(
err
,
forumLimitOperation
)
{
if
(
err
)
{
if
(
err
)
{
console
.
error
(
err
);
console
.
error
(
err
);
callback
(
null
,
null
);
callback
(
null
,
null
);
}
else
{
}
else
{
if
(
forumLimit
ActionRef
){
if
(
forumLimit
Operation
){
var
limit_actions
=
forumLimit
ActionRef
.
limit_actions
;
var
limit_actions
=
forumLimit
Operation
.
limit_actions
;
var
array
=
[];
var
array
=
[];
for
(
var
i
=
0
;
i
<
limit_actions
.
length
;
i
+=
1
)
{
for
(
var
i
=
0
;
i
<
limit_actions
.
length
;
i
+=
1
)
{
var
limit_action
=
limit_actions
[
i
];
var
limit_action
=
limit_actions
[
i
];
for
(
var
k
=
0
;
k
<
configs
.
length
;
k
+=
1
){
var
name
=
''
;
if
(
limit_action
.
limit_action_type
===
configs
[
k
].
code
){
switch
(
limit_action
.
limit_type
)
array
.
push
(
configs
[
k
].
name
);
{
break
;
case
1
:
}
name
=
'禁言'
;
}
break
;
case
2
:
name
=
'不加积分'
;
break
;
}
array
.
push
(
name
);
}
}
member
=
member
.
toObject
();
member
=
member
.
toObject
();
member
.
limitActions
=
array
;
member
.
limitActions
=
array
;
...
@@ -138,7 +159,6 @@ exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){
...
@@ -138,7 +159,6 @@ exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){
console
.
log
(
err
);
console
.
log
(
err
);
callback
(
null
,
null
);
callback
(
null
,
null
);
}
else
{
}
else
{
// callback(null, results);
var
rsJson
=
{
var
rsJson
=
{
result
:
true
,
result
:
true
,
total
:
count
,
total
:
count
,
...
@@ -166,21 +186,81 @@ exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){
...
@@ -166,21 +186,81 @@ exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){
});
});
};
};
//查询用户和行为限制信息
// exports.searchMembersAndLimitActions=function(pageNo, pageSize, q, callback){
// then(function(cont) {
// ForumUser.find(q).count(cont);
// }).then(function(cont, count) {
// var skip = (pageNo - 1) * pageSize;
// var limit = count - skip > pageSize ? pageSize : (count - skip);
// ForumUser.find(q).skip(skip).limit(limit).sort('-created').exec(function(err, docs) {
// cont(err, count, docs);
// });
// }).then(function(cont, count, members) {
// forumLimitActionConfigService.getAllLimitActionConfig(function(err, configs) {
// cont(err, count, members, configs);
// });
// }).then(function(cont, count, members, configs) {
// if (count > 0 && configs.length > 0) {
// var asyncTasks = [];
// members.forEach(function(member) {
// asyncTasks.push(function(callback) {
// forumLimitActionRefService.getLimitActionRefByMIdAndEntCode(member._id, member.ent_code, function(err, forumLimitActionRef) {
// if (err) {
// console.error(err);
// callback(null, null);
// } else {
// if(forumLimitActionRef){
// var limit_actions = forumLimitActionRef.limit_actions;
// var array = [];
// for (var i = 0; i < limit_actions.length; i += 1) {
// var limit_action = limit_actions[i];
// for(var k = 0; k < configs.length; k+=1){
// if(limit_action.limit_action_type === configs[k].code){
// array.push(configs[k].name);
// break;
// }
// }
// }
// member = member.toObject();
// member.limitActions = array;
// callback(null, member);
// }else{
// callback(null, member);
// }
// }
// });
// });
// });
// async.parallel(asyncTasks, function(err, results) {
// if (err) {
// console.log(err);
// callback(null, null);
// } else {
// // callback(null, results);
// var rsJson = {
// result: true,
// total: count,
// datas: results
// };
// callback(null, rsJson);
// }
// });
// } else {
//根据nickName查询用户
// var rsJson = {
exports
.
searchMembersByNickName
=
function
(
nickName
,
callback
){
// result: true,
var
name
=
{
// total: count,
$or
:
[
// datas: members
{
nickName
:
{
$regex
:
nickName
,
$options
:
'i'
}},
// };
{
displayName
:
{
$regex
:
nickName
,
$options
:
'i'
}}
// callback(null, rsJson);
]
// }
};
// }).fail(function(cont, err) {
ForumUser
.
find
(
name
).
exec
(
function
(
err
,
result
){
// console.error(err);
if
(
err
){
// var rsJson = {
callback
(
err
,
null
);
// result: false,
}
else
{
// err: err
callback
(
null
,
result
);
// };
}
// callback(err, rsJson);
});
// });
};
// };
\ No newline at end of file
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