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
33d3f3ba
Commit
33d3f3ba
authored
Mar 25, 2016
by
陈家荣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户收藏和个人小站接口
parent
6463fd2d
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
921 additions
and
130 deletions
+921
-130
forumInfo.js
app/controllers/mobile/forumInfo.js
+87
-0
forumThread.js
app/controllers/mobile/forumThread.js
+83
-3
forumUser.js
app/controllers/mobile/forumUser.js
+241
-124
forumFollowInfo.js
app/models/forumFollowInfo.js
+34
-0
forumFollowThread.js
app/models/forumFollowThread.js
+34
-0
forumFollowUser.js
app/models/forumFollowUser.js
+34
-0
forumThread.js
app/models/forumThread.js
+0
-2
ForumFollowInfoService.js
app/service/ForumFollowInfoService.js
+111
-0
ForumFollowThreadService.js
app/service/ForumFollowThreadService.js
+128
-0
forumFollowUserService.js
app/service/forumFollowUserService.js
+114
-0
forumUserService.js
app/service/forumUserService.js
+26
-0
user.js
app/utils/user.js
+29
-1
No files found.
app/controllers/mobile/forumInfo.js
View file @
33d3f3ba
...
...
@@ -16,6 +16,8 @@ var forumCommentService = require('../../service/forumCommentService');
var
forumThreadAttendService
=
require
(
'../../service/forumThreadAttendService'
);
var
httpService
=
require
(
'../../service/httpService'
);
var
redisPraiseLog
=
require
(
'../../utils/redisPraiseLog'
);
var
forumUserService
=
require
(
'../../service/forumUserService'
);
var
forumFollowInfoService
=
require
(
'../../service/forumFollowInfoService'
);
var
user
=
require
(
'../../utils/user'
);
...
...
@@ -952,4 +954,89 @@ router.get('/info/serachThreads', function(req, res, next) {
});
}
});
});
//获取用户收藏的帖子,活动贴
router
.
get
(
'/info/getUserFavorInfo'
,
function
(
req
,
res
,
next
)
{
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
pageSize
=
req
.
query
.
pageSize
||
10
;
var
userId
=
user
.
getMobileUser
(
req
);
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
q
=
{
ent_code
:
ent_code
,
from
:
userId
};
forumFollowInfoService
.
findAll
(
q
,
null
,
function
(
err
,
doc
){
if
(
err
||
!
doc
){
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
info_ids
=
[];
for
(
var
i
=
doc
.
length
-
1
;
i
>=
0
;
i
--
){
info_ids
.
push
(
doc
[
i
].
info
);
}
var
rs
=
{};
var
today
=
new
Date
();
async
.
waterfall
([
function
(
callback
)
{
var
info_condition
=
{
ent_code
:
ent_code
,
_id
:{
$in
:
info_ids
}
}
forumInfoService
.
getAllByGid
(
info_condition
,
pageNo
,
pageSize
,
function
(
err
,
datas
)
{
callback
(
err
,
datas
.
items
);
});
},
function
(
infos
,
callback
)
{
//获取用户
var
asyncTasks
=
[];
_
.
forEach
(
infos
,
function
(
info
,
i
)
{
asyncTasks
.
push
(
function
(
cont
)
{
var
conditions
=
{
ent_code
:
ent_code
,
info
:
info
.
_id
,
level
:
1
,
status
:
1
,
$or
:
[{
isEvent
:
{
$ne
:
1
}
},
{
isEvent
:
1
,
'event.eventStartTime'
:
{
$lte
:
today
}
}]
};
forumThreadService
.
getAllCountByFid
(
conditions
,
function
(
err
,
count
)
{
if
(
err
)
{
console
.
error
(
err
);
cont
(
err
,
null
);
}
else
{
if
(
infos
[
i
].
toObject
)
{
infos
[
i
]
=
infos
[
i
].
toObject
();
}
infos
[
i
].
favor_by
=
infos
[
i
].
favor_by
.
length
;
infos
[
i
].
threadCount
=
count
;
cont
(
null
,
info
);
}
});
});
});
then
.
parallel
(
asyncTasks
).
then
(
function
(
cont
,
datas
)
{
callback
(
null
,
infos
);
}).
fail
(
function
(
err
,
cont
)
{
callback
(
err
,
null
);
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
rs
.
data
=
result
;
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
});
});
\ No newline at end of file
app/controllers/mobile/forumThread.js
View file @
33d3f3ba
...
...
@@ -30,6 +30,10 @@ var ForumModeratorApply = mongoose.model('ForumModeratorApply');
var
forumModeratorApplyService
=
require
(
'../../service/forumModeratorApplyService'
);
var
redisThreadList
=
require
(
'../../utils/redisThreadList'
);
var
forumFollowThreadService
=
require
(
'../../service/forumFollowThreadService'
);
var
forumFollowInfoService
=
require
(
'../../service/forumFollowInfoService'
);
var
forumFollowUserService
=
require
(
'../../service/forumFollowUserService'
);
module
.
exports
=
function
(
app
)
{
app
.
use
(
'/v1/forum'
,
router
);
};
...
...
@@ -2139,7 +2143,7 @@ router.get('/thread/:tid/get/subThreads/:type', function(req, res, next) {
if
(
type
==
1
){
//最新
sort
=
'-created'
;
}
else
if
(
type
==
2
){
//最热
sort
=
'-praise_count -comment_count'
;
sort
=
'-praise_count -comment_count
-created
'
;
}
if
(
tid
)
{
...
...
@@ -2209,8 +2213,6 @@ router.get('/thread/:tid/get/subThreads/:type', function(req, res, next) {
}
});
//H5创建子话题文章
router
.
post
(
'/h5/thread/create'
,
function
(
req
,
res
,
next
)
{
var
pid
=
req
.
body
.
pid
;
...
...
@@ -2294,4 +2296,82 @@ router.post('/h5/thread/create', function(req, res, next) {
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
//获取用户收藏的帖子,活动贴
router
.
get
(
'/thread/getUserFavorThread/:type'
,
function
(
req
,
res
,
next
)
{
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
pageSize
=
req
.
query
.
pageSize
||
10
;
var
type
=
req
.
params
.
type
||
null
;
var
userId
=
user
.
getMobileUser
(
req
);
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
q
=
{
ent_code
:
ent_code
,
from
:
userId
};
forumFollowThreadService
.
findAll
(
q
,
null
,
'thread'
,
function
(
err
,
doc
){
if
(
err
||
!
doc
){
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
thread_ids
=
[];
for
(
var
i
=
doc
.
length
-
1
;
i
>=
0
;
i
--
){
thread_ids
.
push
(
doc
[
i
].
thread
);
}
var
today
=
new
Date
();
var
conditions
=
{
ent_code
:
ent_code
,
_id
:{
$in
:
thread_ids
}
};
if
(
type
==
1
){
conditions
.
isEvent
=
{
$ne
:
1
}
}
else
if
(
type
==
2
){
conditions
.
isEvent
=
1
;
conditions
[
'event.eventStartTime'
]
=
{
$lte
:
today
};
}
queryThread
(
conditions
,
pageNo
,
pageSize
,
null
,
function
(
err
,
results
){
if
(
err
){
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
util
.
loadLevel
(
ent_code
,
results
.
items
,
function
()
{
handleThreadList
(
req
,
results
,
ent_code
,
function
(
result
){
res
.
json
(
_
.
assign
(
result
,
returnCode
.
SUCCESS
));
});
});
}
});
}
});
});
//获取用户收藏的帖子的ID return Map
router
.
get
(
'/thread/getUserFavorAllThread'
,
function
(
req
,
res
,
next
)
{
var
userId
=
user
.
getMobileUser
(
req
);
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
q
=
{
ent_code
:
ent_code
,
from
:
userId
};
forumFollowThreadService
.
findAll
(
q
,
null
,
'thread'
,
function
(
err
,
results
){
if
(
err
||
!
results
){
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
map
=
{
//返回map对象,方便前端查找
data
:{}
};
_
.
forEach
(
results
,
function
(
d
){
map
.
data
[
d
.
thread
]
=
1
;
});
res
.
json
(
_
.
assign
(
map
,
returnCode
.
SUCCESS
));
}
});
});
\ No newline at end of file
app/controllers/mobile/forumUser.js
View file @
33d3f3ba
...
...
@@ -7,10 +7,13 @@ var express = require('express'),
var
mongoose
=
require
(
'mongoose'
);
var
forumUserService
=
require
(
'../../service/forumUserService'
);
var
forumThreadService
=
require
(
'../../service/forumThreadService'
);
var
forumInfoService
=
require
(
'../../service/forumInfoService'
);
var
async
=
require
(
'async'
);
var
forumFollowThreadService
=
require
(
'../../service/forumFollowThreadService'
);
var
forumFollowInfoService
=
require
(
'../../service/forumFollowInfoService'
);
var
forumFollowUserService
=
require
(
'../../service/forumFollowUserService'
);
var
async
=
require
(
'async'
);
var
util
=
require
(
'../../utils/util'
);
var
user
=
require
(
'../../utils/user'
);
module
.
exports
=
function
(
app
)
{
...
...
@@ -29,18 +32,20 @@ var updateuser = function(condition, entity, callback){
};
//查询用户是否已收藏(板块/文章/用户)
var
queryIsFavor
=
function
(
userID
,
field
,
condition
,
callback
){
var
queryIsFavor
=
function
(
userID
,
field
,
subField
,
condition
,
callback
){
forumUserService
.
getUserById
(
userID
,
function
(
err
,
doc
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
if
(
doc
){
var
list
=
doc
[
field
];
if
(
list
.
indexOf
(
condition
)
>
-
1
)
{
callback
(
1
);
}
else
{
callback
(
null
);
}
var
flag
=
null
;
_
.
forEach
(
list
,
function
(
one
,
i
)
{
if
(
one
[
subField
]
==
condition
){
flag
=
1
;
}
});
callback
(
flag
);
}
else
{
callback
(
'查询用户信息错误'
);
}
...
...
@@ -113,25 +118,17 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) {
if
(
userID
&&
infoID
)
{
async
.
waterfall
([
function
(
callback
)
{
queryIsFavor
(
userID
,
'favor_infos'
,
infoID
,
callback
);
forumFollowInfoService
.
isNotFollow
({
from
:
userID
,
info
:
infoID
,
ent_code
:
ent_code
}
,
callback
);
},
function
(
callback
)
{
//更新用户
var
user_condition
=
{
_id
:
userID
,
ent_code
:
ent_code
};
var
user_entity
=
{
$push
:
{
"favor_infos"
:
infoID
}
};
updateuser
(
user_condition
,
user_entity
,
callback
);
},
function
(
user_id
,
callback
)
{
//更新板块
var
info_condition
=
{
_id
:
infoID
,
ent_code
:
ent_code
};
var
info_entity
=
{
$push
:
{
"favor_by"
:
user_id
}
};
forumInfoService
.
updateByIdWithOptions
(
info_condition
,
info_entity
,
{
upsert
:
true
},
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
var
obj
=
{
from
:
userID
,
info
:
infoID
,
ent_code
:
ent_code
};
forumFollowInfoService
.
create
(
obj
,
function
(
err
,
doc
){
callback
(
err
,
null
);
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
...
...
@@ -145,7 +142,10 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) {
res
.
json
(
returnCode
.
BUSY
);
}
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
var
rs
=
{
data
:
true
}
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
...
...
@@ -153,7 +153,6 @@ router.post('/user/favorInfo/:infoID', function(req, res, next) {
}
});
//取消收藏板块
router
.
post
(
'/user/disfavorInfo/:infoID'
,
function
(
req
,
res
,
next
)
{
var
userID
=
user
.
getMobileUser
(
req
);
...
...
@@ -162,28 +161,18 @@ router.post('/user/disfavorInfo/:infoID', function(req, res, next) {
if
(
userID
&&
infoID
)
{
async
.
waterfall
([
function
(
callback
)
{
//更新用户
var
user_condition
=
{
_id
:
userID
,
ent_code
:
ent_code
};
var
user_entity
=
{
$pull
:
{
"favor_infos"
:
infoID
}
};
updateuser
(
user_condition
,
user_entity
,
callback
);
},
function
(
user_id
,
callback
)
{
//更新板块
var
info_condition
=
{
_id
:
infoID
,
ent_code
:
ent_code
};
var
info_entity
=
{
$pull
:
{
"favor_by"
:
user_id
}
};
forumInfoService
.
updateByIdWithOptions
(
info_condition
,
info_entity
,
{
upsert
:
true
},
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
forumFollowInfoService
.
remove
({
from
:
userID
,
info
:
infoID
,
ent_code
:
ent_code
},
function
(
err
,
result
){
callback
(
err
,
result
);
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
var
rs
=
{
data
:
false
}
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
...
...
@@ -191,7 +180,6 @@ router.post('/user/disfavorInfo/:infoID', function(req, res, next) {
}
});
//收藏文章
router
.
post
(
'/user/favorThread/:threadID'
,
function
(
req
,
res
,
next
)
{
var
userID
=
user
.
getMobileUser
(
req
);
...
...
@@ -200,26 +188,18 @@ router.post('/user/favorThread/:threadID', function(req, res, next) {
if
(
userID
&&
threadID
)
{
async
.
waterfall
([
function
(
callback
)
{
queryIsFavor
(
userID
,
'favor_threads'
,
threadID
,
callback
);
},
function
(
callback
)
{
//更新用户
var
user_condition
=
{
_id
:
userID
,
ent_code
:
ent_code
};
var
user_entity
=
{
$push
:
{
"favor_threads"
:
threadID
}
};
updateuser
(
user_condition
,
user_entity
,
callback
);
},
function
(
user_id
,
callback
)
{
//更新文章
var
thread_condition
=
{
_id
:
threadID
,
ent_code
:
ent_code
};
var
thread_entity
=
{
$push
:
{
"favor_by"
:
user_id
}
};
forumThreadService
.
updateByIdWithOptions
(
thread_condition
,
thread_entity
,
{
upsert
:
true
},
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
}
forumFollowThreadService
.
isNotFollow
({
from
:
userID
,
thread
:
threadID
,
ent_code
:
ent_code
},
callback
);
},
function
(
callback
)
{
var
obj
=
{
from
:
userID
,
thread
:
threadID
,
ent_code
:
ent_code
};
forumFollowThreadService
.
create
(
obj
,
function
(
err
,
doc
){
callback
(
err
,
null
);
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
if
(
err
==
1
){
...
...
@@ -229,10 +209,13 @@ router.post('/user/favorThread/:threadID', function(req, res, next) {
}
res
.
json
(
rs
);
}
else
{
res
.
json
(
returnCode
.
BUSY
);
res
.
json
(
returnCode
.
BUSY
);
}
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
var
rs
=
{
data
:
true
}
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
...
...
@@ -240,7 +223,6 @@ router.post('/user/favorThread/:threadID', function(req, res, next) {
}
});
//取消收藏文章
router
.
post
(
'/user/disfavorThread/:threadID'
,
function
(
req
,
res
,
next
)
{
var
userID
=
user
.
getMobileUser
(
req
);
...
...
@@ -249,28 +231,18 @@ router.post('/user/disfavorThread/:threadID', function(req, res, next) {
if
(
userID
&&
threadID
)
{
async
.
waterfall
([
function
(
callback
)
{
//更新用户
var
user_condition
=
{
_id
:
userID
,
ent_code
:
ent_code
};
var
user_entity
=
{
$pull
:
{
"favor_threads"
:
threadID
}
};
updateuser
(
user_condition
,
user_entity
,
callback
);
},
function
(
user_id
,
callback
)
{
//更新文章
var
thread_condition
=
{
_id
:
threadID
,
ent_code
:
ent_code
};
var
thread_entity
=
{
$pull
:
{
"favor_by"
:
user_id
}
};
forumThreadService
.
updateByIdWithOptions
(
thread_condition
,
thread_entity
,
{
upsert
:
true
},
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
forumFollowThreadService
.
remove
({
from
:
userID
,
thread
:
threadID
,
ent_code
:
ent_code
},
function
(
err
,
result
){
callback
(
err
,
result
);
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
var
rs
=
{
data
:
false
}
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
...
...
@@ -286,26 +258,18 @@ router.post('/user/favorUser/:favorUserID', function(req, res, next) {
if
(
userID
&&
favorUserID
)
{
async
.
waterfall
([
function
(
callback
)
{
queryIsFavor
(
userID
,
'favor_users'
,
favorUserID
,
callback
);
},
function
(
callback
)
{
//更新用户
var
user_condition
=
{
_id
:
userID
,
ent_code
:
ent_code
};
var
user_entity
=
{
$push
:
{
"favor_users"
:
favorUserID
}
};
updateuser
(
user_condition
,
user_entity
,
callback
);
},
function
(
user_id
,
callback
)
{
//更新被收藏用户
var
favor_condition
=
{
_id
:
favorUserID
,
ent_code
:
ent_code
};
var
favor_entity
=
{
$push
:
{
"favor_by"
:
user_id
}
};
forumUserService
.
updateByIdWithOptions
(
favor_condition
,
favor_entity
,
{
upsert
:
false
},
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
}
forumFollowUserService
.
isNotFollow
({
from
:
userID
,
to
:
favorUserID
,
ent_code
:
ent_code
},
callback
);
},
function
(
callback
)
{
var
obj
=
{
from
:
userID
,
to
:
favorUserID
,
ent_code
:
ent_code
};
forumFollowUserService
.
create
(
obj
,
function
(
err
,
doc
){
callback
(
err
,
null
);
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
if
(
err
==
1
){
...
...
@@ -318,7 +282,10 @@ router.post('/user/favorUser/:favorUserID', function(req, res, next) {
res
.
json
(
returnCode
.
BUSY
);
}
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
var
rs
=
{
data
:
true
}
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
...
...
@@ -334,31 +301,181 @@ router.post('/user/disfavorUser/:favorUserID', function(req, res, next) {
if
(
userID
&&
favorUserID
)
{
async
.
waterfall
([
function
(
callback
)
{
//更新用户
var
user_condition
=
{
_id
:
userID
,
ent_code
:
ent_code
};
var
user_entity
=
{
$pull
:
{
"favor_users"
:
favorUserID
}
};
updateuser
(
user_condition
,
user_entity
,
callback
);
},
function
(
user_id
,
callback
)
{
//更新被收藏用户
var
favor_condition
=
{
_id
:
favorUserID
,
ent_code
:
ent_code
};
var
favor_entity
=
{
$pull
:
{
"favor_by"
:
user_id
}
};
forumUserService
.
updateByIdWithOptions
(
favor_condition
,
favor_entity
,
{
upsert
:
true
},
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
forumFollowUserService
.
remove
({
from
:
userID
,
to
:
favorUserID
,
ent_code
:
ent_code
},
function
(
err
,
result
){
callback
(
err
,
result
);
});
}
],
function
(
err
,
result
)
{
if
(
err
)
{
res
.
json
(
returnCode
.
BUSY
);
}
else
{
res
.
json
(
returnCode
.
SUCCESS
);
var
rs
=
{
data
:
false
}
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
}
else
{
res
.
json
(
returnCode
.
WRONG_PARAM
);
}
});
\ No newline at end of file
});
//获取关注的用户
router
.
get
(
'/user/getUserFavorUser'
,
function
(
req
,
res
,
next
)
{
var
pageNo
=
req
.
query
.
pageNo
||
1
;
var
pageSize
=
req
.
query
.
pageSize
||
10
;
var
userId
=
user
.
getMobileUser
(
req
);
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
q
=
{
ent_code
:
ent_code
,
from
:
userId
};
forumFollowUserService
.
find
(
pageNo
,
pageSize
,
q
,
null
,
function
(
err
,
results
){
if
(
err
){
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
util
.
loadLevel
(
ent_code
,
results
.
items
,
function
()
{
res
.
json
(
_
.
assign
(
results
,
returnCode
.
SUCCESS
));
});
}
});
});
//查看用户信息
router
.
get
(
'/user/getUserInfo/:userId'
,
function
(
req
,
res
,
next
)
{
var
userId
=
req
.
params
.
userId
;
var
ent_code
=
req
.
session
.
user
.
ent_code
;
async
.
waterfall
([
function
(
callback
)
{
//获取用户荣誉头衔
var
user_conditions
=
{
ent_code
:
ent_code
,
_id
:
userId
};
forumUserService
.
getByConditionsSelectyField
(
user_conditions
,
'uid mid nickName icon honorTitles'
,
function
(
err
,
doc
)
{
callback
(
err
,
doc
);
});
},
function
(
forumUser
,
callback
)
{
async
.
parallel
([
function
(
callback
)
{
//获取用户关注用户数
var
follow_conditions
=
{
ent_code
:
ent_code
,
from
:
userId
};
forumFollowUserService
.
count
(
follow_conditions
,
callback
);
},
function
(
callback
)
{
//获取用户被关注数
var
follow_by_conditions
=
{
ent_code
:
ent_code
,
to
:
userId
};
forumFollowUserService
.
count
(
follow_by_conditions
,
callback
);
},
function
(
callback
)
{
//获取用户经验值,积分
// var url = API_ADDRESS + '/v1.0/internal/member/infoAndRankInfo';
// request.post({
// url: url,
// json: {
// entCode:ent_code,
// ids:[forumUser.mid]
// }
// }, function(e, r, body) {
// if (e) {
// console.log(e)
// callback(e, null);
// }else{
// callback(null, body.data);
// }
// });
user
.
findMember
(
ent_code
,
forumUser
.
mid
,
callback
);
}
],
function
(
err
,
results
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
if
(
forumUser
.
toObject
)
{
forumUser
=
forumUser
.
toObject
();
}
if
(
results
[
2
]
&&
results
[
2
][
0
]){
forumUser
.
integral
=
results
[
2
][
0
].
integral
;
forumUser
.
exp
=
results
[
2
][
0
].
exp
;
forumUser
.
rankName
=
results
[
2
][
0
].
rankName
;
}
callback
(
null
,
forumUser
)
}
});
}],
function
(
err
,
result
)
{
if
(
err
){
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
var
rs
=
{
data
:
result
};
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
});
//查看用户的收藏信息
router
.
get
(
'/user/getUserFavorWithThreadAndInfo'
,
function
(
req
,
res
,
next
)
{
var
userId
=
user
.
getMobileUser
(
req
);
var
ent_code
=
req
.
session
.
user
.
ent_code
;
var
q
=
{
ent_code
:
ent_code
,
from
:
userId
};
async
.
parallel
([
function
(
callback
)
{
//获取用户收藏的帖子
forumFollowThreadService
.
findWithThread
(
q
,
'isEvent event'
,
function
(
err
,
docs
){
if
(
err
||
!
docs
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
var
today
=
new
Date
();
var
thread_count
=
0
;
var
thread_event_count
=
0
;
_
.
forEach
(
docs
,
function
(
d
,
i
){
if
(
d
.
thread
){
if
(
d
.
thread
.
isEvent
!=
1
){
thread_count
++
;
}
else
if
(
d
.
thread
.
isEvent
==
1
&&
d
.
thread
.
event
.
eventStartTime
<=
today
){
thread_event_count
++
;
}
}
});
var
obj
=
{
follow_thread_count
:
thread_count
,
follow_thread_event_count
:
thread_event_count
}
callback
(
null
,
obj
);
}
});
},
function
(
callback
)
{
//获取用户收藏的圈子
forumFollowInfoService
.
count
(
q
,
callback
);
}
],
function
(
err
,
results
)
{
if
(
err
){
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
results
[
0
].
follow_info_count
=
results
[
1
];
var
rs
=
{
data
:
results
[
0
]
};
res
.
json
(
_
.
assign
(
rs
,
returnCode
.
SUCCESS
));
}
});
});
app/models/forumFollowInfo.js
0 → 100644
View file @
33d3f3ba
'use strict'
;
var
mongoose
=
require
(
'mongoose'
),
Schema
=
mongoose
.
Schema
;
//收藏的板块
var
ForumFollowInfoSchema
=
new
Schema
({
ent_code
:
{
type
:
Number
,
require
:
true
,
index
:
true
},
from
:
{
type
:
Schema
.
Types
.
ObjectId
,
require
:
true
,
index
:
true
,
ref
:
'ForumUser'
},
info
:
{
type
:
Schema
.
Types
.
ObjectId
,
require
:
true
,
index
:
true
,
ref
:
'ForumInfo'
},
created
:
{
type
:
Date
,
required
:
true
,
default
:
Date
.
now
}
},
{
'collection'
:
'pisns_forum_follow_info'
});
module
.
exports
=
mongoose
.
model
(
'ForumFollowInfo'
,
ForumFollowInfoSchema
);
\ No newline at end of file
app/models/forumFollowThread.js
0 → 100644
View file @
33d3f3ba
'use strict'
;
var
mongoose
=
require
(
'mongoose'
),
Schema
=
mongoose
.
Schema
;
//收藏的帖子
var
ForumFollowThreadSchema
=
new
Schema
({
ent_code
:
{
type
:
Number
,
require
:
true
,
index
:
true
},
from
:
{
type
:
Schema
.
Types
.
ObjectId
,
require
:
true
,
index
:
true
,
ref
:
'ForumUser'
},
thread
:
{
type
:
Schema
.
Types
.
ObjectId
,
require
:
true
,
index
:
true
,
ref
:
'ForumThread'
},
created
:
{
type
:
Date
,
required
:
true
,
default
:
Date
.
now
}
},
{
'collection'
:
'pisns_forum_follow_thread'
});
module
.
exports
=
mongoose
.
model
(
'ForumFollowThread'
,
ForumFollowThreadSchema
);
\ No newline at end of file
app/models/forumFollowUser.js
0 → 100644
View file @
33d3f3ba
'use strict'
;
var
mongoose
=
require
(
'mongoose'
),
Schema
=
mongoose
.
Schema
;
//收藏的用户
var
ForumFollowUserSchema
=
new
Schema
({
ent_code
:
{
type
:
Number
,
require
:
true
,
index
:
true
},
from
:
{
type
:
Schema
.
Types
.
ObjectId
,
require
:
true
,
index
:
true
,
ref
:
'ForumUser'
},
to
:
{
type
:
Schema
.
Types
.
ObjectId
,
require
:
true
,
index
:
true
,
ref
:
'ForumUser'
},
created
:
{
type
:
Date
,
required
:
true
,
default
:
Date
.
now
}
},
{
'collection'
:
'pisns_forum_follow_user'
});
module
.
exports
=
mongoose
.
model
(
'ForumFollowUser'
,
ForumFollowUserSchema
);
\ No newline at end of file
app/models/forumThread.js
View file @
33d3f3ba
...
...
@@ -164,10 +164,8 @@ var ForumThreadSchema = new Schema({
required
:
true
,
default
:
Date
.
now
}
},
{
'collection'
:
'pisns_forum_thread'
});
module
.
exports
=
mongoose
.
model
(
'ForumThread'
,
ForumThreadSchema
);
\ No newline at end of file
app/service/ForumFollowInfoService.js
0 → 100644
View file @
33d3f3ba
'use strict'
;
var
mongoose
=
require
(
'mongoose'
);
var
ForumFollowInfo
=
mongoose
.
model
(
'ForumFollowInfo'
);
exports
.
create
=
function
(
entity
,
callback
){
var
forum
=
new
ForumFollowInfo
(
entity
);
forum
.
save
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
};
exports
.
remove
=
function
(
conditions
,
callback
){
ForumFollowInfo
.
remove
(
conditions
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
};
//获取数量
function
countAll
(
conditions
,
callback
)
{
ForumFollowInfo
.
count
(
conditions
,
function
(
err
,
count
)
{
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
count
);
}
});
}
//分页查询
exports
.
find
=
function
(
pageNo
,
pageSize
,
conditions
,
sort
,
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
);
var
sortby
=
"-_id"
;
if
(
sort
){
sortby
=
sort
;
}
ForumFollowInfo
.
find
(
conditions
).
skip
(
skip
).
limit
(
pageSize
).
sort
(
sortby
).
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
.
items
=
docs
;
callback
(
null
,
obj
);
}
});
}
});
};
//获取列表
exports
.
findAll
=
function
(
conditions
,
sort
,
callback
){
var
sortby
=
"-_id"
;
if
(
sort
){
sortby
=
sort
;
}
ForumFollowInfo
.
find
(
conditions
).
sort
(
sortby
).
exec
(
function
(
err
,
docs
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
docs
);
}
});
};
exports
.
isNotFollow
=
function
(
conditions
,
callback
)
{
countAll
(
conditions
,
function
(
err
,
count
){
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
if
(
count
>
0
){
callback
(
1
);
}
else
{
callback
(
null
);
}
});
};
//获取列表数量
exports
.
count
=
function
(
conditions
,
callback
){
countAll
(
conditions
,
function
(
err
,
count
){
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
count
);
}
});
};
app/service/ForumFollowThreadService.js
0 → 100644
View file @
33d3f3ba
'use strict'
;
var
mongoose
=
require
(
'mongoose'
);
var
ForumFollowThread
=
mongoose
.
model
(
'ForumFollowThread'
);
exports
.
create
=
function
(
entity
,
callback
)
{
var
forum
=
new
ForumFollowThread
(
entity
);
forum
.
save
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
};
exports
.
remove
=
function
(
conditions
,
callback
)
{
ForumFollowThread
.
remove
(
conditions
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
};
//获取数量
function
countAll
(
conditions
,
callback
)
{
ForumFollowThread
.
count
(
conditions
,
function
(
err
,
count
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
count
);
}
});
}
//分页查询
exports
.
find
=
function
(
pageNo
,
pageSize
,
conditions
,
sort
,
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
);
var
sortby
=
"-_id"
;
if
(
sort
)
{
sortby
=
sort
;
}
ForumFollowThread
.
find
(
conditions
).
skip
(
skip
).
limit
(
pageSize
).
sort
(
sortby
).
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
.
items
=
docs
;
callback
(
null
,
obj
);
}
});
}
});
};
//获取列表
exports
.
findAll
=
function
(
conditions
,
sort
,
fields
,
callback
)
{
var
sortby
=
"-_id"
;
if
(
sort
)
{
sortby
=
sort
;
}
ForumFollowThread
.
find
(
conditions
).
select
(
fields
).
sort
(
sortby
).
exec
(
function
(
err
,
docs
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
docs
);
}
});
};
exports
.
isNotFollow
=
function
(
conditions
,
callback
)
{
countAll
(
conditions
,
function
(
err
,
count
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
if
(
count
>
0
)
{
callback
(
1
);
}
else
{
callback
(
null
);
}
});
};
//获取列表数量
exports
.
count
=
function
(
conditions
,
callback
)
{
countAll
(
conditions
,
function
(
err
,
count
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
count
);
}
});
};
//获取列表
exports
.
findWithThread
=
function
(
conditions
,
subFields
,
callback
)
{
ForumFollowThread
.
find
(
conditions
).
populate
({
path
:
'thread'
,
select
:
subFields
}).
exec
(
function
(
err
,
docs
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
docs
);
}
});
};
app/service/forumFollowUserService.js
0 → 100644
View file @
33d3f3ba
'use strict'
;
var
mongoose
=
require
(
'mongoose'
);
var
ForumFollowUser
=
mongoose
.
model
(
'ForumFollowUser'
);
exports
.
create
=
function
(
entity
,
callback
){
var
forum
=
new
ForumFollowUser
(
entity
);
forum
.
save
(
function
(
err
,
doc
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
doc
);
}
});
};
exports
.
remove
=
function
(
conditions
,
callback
){
ForumFollowUser
.
remove
(
conditions
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
null
);
}
});
};
//获取数量
function
countAll
(
conditions
,
callback
)
{
ForumFollowUser
.
count
(
conditions
,
function
(
err
,
count
)
{
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
count
);
}
});
}
//分页查询
exports
.
find
=
function
(
pageNo
,
pageSize
,
conditions
,
sort
,
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
);
var
sortby
=
"-_id"
;
if
(
sort
){
sortby
=
sort
;
}
ForumFollowUser
.
find
(
conditions
).
populate
({
path
:
'to'
,
select
:
'uid mid nickName icon honorTitles'
}).
skip
(
skip
).
limit
(
pageSize
).
sort
(
sortby
).
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
.
items
=
docs
;
callback
(
null
,
obj
);
}
});
}
});
};
//获取列表
exports
.
findAll
=
function
(
conditions
,
sort
,
callback
){
var
sortby
=
"-_id"
;
if
(
sort
){
sortby
=
sort
;
}
ForumFollowUser
.
find
(
conditions
).
sort
(
sortby
).
exec
(
function
(
err
,
docs
){
if
(
err
)
{
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
docs
);
}
});
};
exports
.
isNotFollow
=
function
(
conditions
,
callback
)
{
countAll
(
conditions
,
function
(
err
,
count
){
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
if
(
count
>
0
){
callback
(
1
);
}
else
{
callback
(
null
);
}
});
};
//获取列表
exports
.
count
=
function
(
conditions
,
callback
){
countAll
(
conditions
,
function
(
err
,
count
){
if
(
err
){
console
.
error
(
err
);
callback
(
err
,
null
);
}
else
{
callback
(
null
,
count
);
}
});
};
\ No newline at end of file
app/service/forumUserService.js
View file @
33d3f3ba
...
...
@@ -19,6 +19,21 @@ exports.createUser = function(entity, callback) {
});
};
//根据Uid获取用户
exports
.
getByConditionsSelectyField
=
function
(
conditions
,
fields
,
callback
)
{
ForumUser
.
findOne
(
conditions
).
select
(
fields
).
exec
(
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
if
(
result
)
{
callback
(
null
,
result
);
}
else
{
callback
(
null
,
null
);
}
}
});
};
//根据Uid获取用户
exports
.
getUserByUid
=
function
(
uid
,
callback
)
{
ForumUser
.
findOne
({
...
...
@@ -380,4 +395,15 @@ exports.searchMembersWithFields = function(q, fields, sort, callback) {
ForumUser
.
find
(
q
).
select
(
fields
).
sort
(
sort
).
exec
(
function
(
err
,
docs
)
{
callback
(
err
,
docs
);
});
};
//查询用户收藏记录
exports
.
getUserFavorThreadIds
=
function
(
q
,
fields
,
callback
)
{
ForumUser
.
findOne
(
q
).
select
(
fields
).
exec
(
function
(
err
,
result
)
{
if
(
err
)
{
callback
(
err
,
null
);
}
else
{
callback
(
null
,
result
);
}
});
};
\ No newline at end of file
app/utils/user.js
View file @
33d3f3ba
'use strict'
;
var
_
=
require
(
'lodash'
);
var
request
=
require
(
'request'
);
var
env
=
process
.
env
.
NODE_ENV
;
var
API_ADDRESS
=
'http://localhost:8080'
;
if
(
env
==
'sandbox'
)
{
API_ADDRESS
=
'http://rest.wxpai.cn'
;
}
else
if
(
env
==
'production'
)
{
API_ADDRESS
=
'https://rest.wxpai.cn'
;
}
var
forumUserService
=
require
(
'../service/forumUserService'
);
exports
.
getMobileUser
=
function
(
req
){
return
req
.
session
.
mobileForumUser
.
userId
;
// return '55015675868b65a028187c49';
}
exports
.
getOpenId
=
function
(
req
){
...
...
@@ -83,4 +93,22 @@ exports.identifyUser=function() {
}
}
exports
.
findMember
=
function
(
ent_code
,
mid
,
callback
){
var
url
=
API_ADDRESS
+
'/v1.0/internal/member/infoAndRankInfo'
;
request
.
post
({
url
:
url
,
json
:
{
entCode
:
ent_code
,
ids
:[
mid
]
}
},
function
(
e
,
r
,
body
)
{
if
(
e
)
{
console
.
log
(
e
)
callback
(
e
,
null
);
}
else
{
callback
(
null
,
body
.
data
);
}
});
}
\ 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