@@ -11,6 +11,7 @@ import (
11
11
"model"
12
12
"strconv"
13
13
"time"
14
+ "util"
14
15
15
16
. "db"
16
17
@@ -51,6 +52,7 @@ func (FeedLogic) fillOtherInfo(ctx context.Context, feeds []*model.Feed, filterT
51
52
newFeeds := make ([]* model.Feed , 0 , len (feeds ))
52
53
53
54
uidSet := set .New (set .NonThreadSafe )
55
+ nidSet := set .New (set .NonThreadSafe )
54
56
for _ , feed := range feeds {
55
57
if feed .State == model .FeedOffline {
56
58
continue
@@ -69,7 +71,7 @@ func (FeedLogic) fillOtherInfo(ctx context.Context, feeds []*model.Feed, filterT
69
71
uidSet .Add (feed .Lastreplyuid )
70
72
}
71
73
if feed .Objtype == model .TypeTopic {
72
- feed . Node = GetNode (feed .Nid )
74
+ nidSet . Add (feed .Nid )
73
75
} else if feed .Objtype == model .TypeResource {
74
76
feed .Node = map [string ]interface {}{
75
77
"name" : GetCategoryName (feed .Nid ),
@@ -80,13 +82,21 @@ func (FeedLogic) fillOtherInfo(ctx context.Context, feeds []*model.Feed, filterT
80
82
}
81
83
82
84
usersMap := DefaultUser .FindUserInfos (ctx , set .IntSlice (uidSet ))
85
+ nodesMap := GetNodesByNids (set .IntSlice (nidSet ))
83
86
for _ , feed := range newFeeds {
84
87
if _ , ok := usersMap [feed .Uid ]; ok {
85
88
feed .User = usersMap [feed .Uid ]
86
89
}
87
90
if _ , ok := usersMap [feed .Lastreplyuid ]; ok {
88
91
feed .Lastreplyuser = usersMap [feed .Lastreplyuid ]
89
92
}
93
+
94
+ if feed .Objtype == model .TypeTopic {
95
+ if _ , ok := nodesMap [feed .Nid ]; ok {
96
+ feed .Node = map [string ]interface {}{}
97
+ util .Struct2Map (feed .Node , nodesMap [feed .Nid ])
98
+ }
99
+ }
90
100
}
91
101
92
102
return newFeeds
@@ -110,9 +120,16 @@ func (FeedLogic) updateComment(objid, objtype, uid int, cmttime time.Time) {
110
120
111
121
func (self FeedLogic ) modifyTopicNode (tid , nid int ) {
112
122
go func () {
123
+ change := map [string ]interface {}{
124
+ "nid" : nid ,
125
+ }
126
+
127
+ node := & model.TopicNode {}
128
+ _ , err := MasterDB .Id (nid ).Get (node )
129
+ if err == nil && ! node .ShowIndex {
130
+ change ["state" ] = model .FeedOffline
131
+ }
113
132
MasterDB .Table (new (model.Feed )).Where ("objid=? AND objtype=?" , tid , model .TypeTopic ).
114
- Update (map [string ]interface {}{
115
- "nid" : nid ,
116
- })
133
+ Update (change )
117
134
}()
118
135
}
0 commit comments