Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
P
physical
Project
Project
Details
Activity
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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
alpha
physical
Commits
16b74f47
Commit
16b74f47
authored
5 years ago
by
段英荣
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of git.wanmeizhensuo.com:alpha/physical
parents
5256d14e
2bcf8726
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
257 additions
and
60 deletions
+257
-60
topic.py
search/utils/topic.py
+93
-14
group.py
search/views/group.py
+37
-9
topic-high-star.json
trans2es/mapping/topic-high-star.json
+10
-1
topic.json
trans2es/mapping/topic.json
+13
-1
topic.py
trans2es/models/topic.py
+87
-22
topic_transfer.py
trans2es/utils/topic_transfer.py
+17
-13
No files found.
search/utils/topic.py
View file @
16b74f47
...
...
@@ -14,7 +14,6 @@ from trans2es.models.pictorial import PictorialTopics
from
libs.cache
import
redis_client
class
TopicUtils
(
object
):
@classmethod
...
...
@@ -35,7 +34,7 @@ class TopicUtils(object):
}
q
[
"_source"
]
=
{
"include"
:
[
"tag_list"
,
"attention_user_id_list"
,
"pick_user_id_list"
,
"same_pictorial_user_id_list"
]
"include"
:
[
"tag_list"
,
"attention_user_id_list"
,
"pick_user_id_list"
,
"same_pictorial_user_id_list"
]
}
result_dict
=
ESPerform
.
get_search_results
(
ESPerform
.
get_cli
(),
"user"
,
q
,
offset
,
size
)
...
...
@@ -174,18 +173,18 @@ class TopicUtils(object):
}
]
if
user_id
and
user_id
>
0
:
if
user_id
and
user_id
>
0
:
redis_key_prefix
=
"physical:user_similar:participant_user_id:"
similar_redis_key
=
redis_key_prefix
+
str
(
user_id
)
redis_user_similar_data
=
redis_client
.
get
(
similar_redis_key
)
user_similar_list
=
json
.
loads
(
redis_user_similar_data
)
if
redis_user_similar_data
else
[]
if
len
(
user_similar_list
)
>
0
:
if
len
(
user_similar_list
)
>
0
:
functions_list
.
extend
(
user_similar_list
)
if
len
(
attention_user_id_list
)
>
0
:
functions_list
.
append
(
{
"filter"
:
{
"constant_score"
:
{
"filter"
:
{
"terms"
:
{
"user_id"
:
attention_user_id_list
}}}},
"filter"
:
{
"constant_score"
:
{
"filter"
:
{
"terms"
:
{
"user_id"
:
attention_user_id_list
}}}},
"weight"
:
100
,
}
)
...
...
@@ -272,7 +271,7 @@ class TopicUtils(object):
]
query_function_score
[
"query"
][
"bool"
][
"minimum_should_match"
]
=
1
query_function_score
[
"query"
][
"bool"
][
"filter"
]
.
append
(
{
"range"
:
{
"content_level"
:
{
"gte"
:
3
,
"lte"
:
6
}}}
{
"range"
:
{
"content_level"
:
{
"gte"
:
3
,
"lte"
:
6
}}}
)
else
:
if
"must_not"
in
query_function_score
[
"query"
][
"bool"
]:
...
...
@@ -421,7 +420,7 @@ class TopicUtils(object):
@classmethod
def
userful_tag_topic_list
(
cls
,
user_id
,
have_read_topic_list
,
size
,
index_type
=
"topic-high-star"
,
routing
=
None
,
useful_tag_list
=
[]):
index_type
=
"topic-high-star"
,
routing
=
None
,
useful_tag_list
=
[]):
"""
:remark 帖子详情页推荐列表,缺少按时间衰减
:param user_id:
...
...
@@ -460,7 +459,7 @@ class TopicUtils(object):
{
"term"
:
{
"is_online"
:
True
}},
{
"term"
:
{
"is_deleted"
:
False
}},
{
"terms"
:
{
"useful_tag_list"
:
useful_tag_list
}},
{
"term"
:{
"content_level"
:
6
}}
{
"term"
:
{
"content_level"
:
6
}}
],
"must_not"
:
{
"terms"
:
{
...
...
@@ -490,7 +489,8 @@ class TopicUtils(object):
"includes"
:
[
"id"
]
}
result_dict
=
ESPerform
.
get_search_results
(
es_cli_obj
,
sub_index_name
=
index_type
,
query_body
=
q
,
size
=
size
,
result_dict
=
ESPerform
.
get_search_results
(
es_cli_obj
,
sub_index_name
=
index_type
,
query_body
=
q
,
size
=
size
,
routing
=
routing
)
topic_id_list
=
list
()
...
...
@@ -959,7 +959,7 @@ class TopicUtils(object):
return
nf
@classmethod
def
process_sort
(
cls
,
sorts_by
):
def
process_sort
(
cls
,
sorts_by
,
pictorial_id
):
"""处理排序部分。"""
sort_rule
=
[]
...
...
@@ -1012,6 +1012,62 @@ class TopicUtils(object):
"order"
:
"desc"
},
})
elif
sort_by
==
TOPIC_SEARCH_SORT
.
REAL_VOTE_AEC
:
sort_rule
.
append
({
"related_billboard.real_vote_cnt"
:
{
"order"
:
"asc"
,
"nested_path"
:
"related_billboard"
,
"missing"
:
"_last"
,
"nested_filter"
:
{
"term"
:
{
"related_billboard.pictorial_id"
:
pictorial_id
}
}
},
})
elif
sort_by
==
TOPIC_SEARCH_SORT
.
REAL_VOTE_DESC
:
sort_rule
.
append
({
"related_billboard.real_vote_cnt"
:
{
"order"
:
"desc"
,
"nested_path"
:
"related_billboard"
,
# "missing": "_last",
"nested_filter"
:
{
"term"
:
{
"related_billboard.pictorial_id"
:
pictorial_id
}
}
},
})
elif
sort_by
==
TOPIC_SEARCH_SORT
.
VIRT_VOTE_AEC
:
sort_rule
.
append
({
"related_billboard.virt_vote_cnt"
:
{
"order"
:
"asc"
,
"nested_path"
:
"related_billboard"
,
# "missing": "_last",
"nested_filter"
:
{
"term"
:
{
"related_billboard.pictorial_id"
:
pictorial_id
}
}
},
})
elif
sort_by
==
TOPIC_SEARCH_SORT
.
VIRT_VOTE_DESC
:
sort_rule
.
append
({
"related_billboard.virt_vote_cnt"
:
{
"order"
:
"desc"
,
"nested_path"
:
"related_billboard"
,
# "missing": "_last",
"nested_filter"
:
{
"term"
:
{
"related_billboard.pictorial_id"
:
pictorial_id
}
}
},
})
logging
.
info
(
"get picotirial:
%
s"
%
sort_rule
)
return
sort_rule
...
...
@@ -1029,7 +1085,7 @@ class TopicUtils(object):
}
if
sorts_by
:
sorts
=
cls
.
process_sort
(
sorts_by
)
sorts
=
cls
.
process_sort
(
sorts_by
,
pictorial_id
=
None
)
if
sorts
:
q
[
"sort"
]
=
sorts
...
...
@@ -1060,7 +1116,6 @@ class TopicUtils(object):
def
business_topic_ids
(
cls
,
filters
,
nfilters
,
sorts_by
,
offset
=
0
,
size
=
10
,
index_name
=
"topic"
,
filter_online
=
True
):
must
=
cls
.
business_filters
(
filters
,
filter_online
=
filter_online
)
logging
.
info
(
"get must:
%
s"
%
must
)
q
=
{
"query"
:
{
"bool"
:
{
...
...
@@ -1070,9 +1125,14 @@ class TopicUtils(object):
}
}
if
'pictorial_id'
in
filters
.
keys
():
if
sorts_by
:
sorts
=
cls
.
process_sort
(
sorts_by
,
filters
[
"pictorial_id"
])
if
sorts
:
q
[
"sort"
]
=
sorts
else
:
if
sorts_by
:
sorts
=
cls
.
process_sort
(
sorts_by
)
sorts
=
cls
.
process_sort
(
sorts_by
,
pictorial_id
=
None
)
if
sorts
:
q
[
"sort"
]
=
sorts
...
...
@@ -1156,6 +1216,25 @@ class TopicUtils(object):
}
}
})
# elif k == "pictorial_id":
# f.append({
# "nested": {
# "path": "related_billboard",
# "query": {
# "bool": {
# "must": [
# {
# "term": {
# "related_billboard.pictorial_id": v
# }
# }
# ]
# }
# }
# }
# })
else
:
if
isinstance
(
v
,
list
):
...
...
This diff is collapsed.
Click to expand it.
search/views/group.py
View file @
16b74f47
...
...
@@ -105,23 +105,23 @@ def pictorial_topic(topic_id=-1, offset=0, size=10):
q
=
{}
# 获取帖子从属的画报
q
[
"query"
]
=
{
"bool"
:{
"must"
:[
"bool"
:
{
"must"
:
[
{
"term"
:
{
"id"
:
topic_id
}
},
{
"term"
:{
"is_online"
:
True
"term"
:
{
"is_online"
:
True
}
}
],
"must_not"
:[
"must_not"
:
[
{
"term"
:{
"is_history"
:
True
"term"
:
{
"is_history"
:
True
}
}
]
...
...
@@ -237,6 +237,7 @@ def pictorial_topic(topic_id=-1, offset=0, size=10):
def
pictorial_topic_sort
(
pictorial_id
=-
1
,
offset
=
0
,
size
=
10
):
"""
:remark 画报排序 人气 部分
人气按照票数从大到小排序,相同票数按照图片票数更新时间由旧到新排序
:param user_id:
:param sort_type:
:param offset:
...
...
@@ -251,18 +252,45 @@ def pictorial_topic_sort(pictorial_id=-1, offset=0, size=10):
"query"
:
{
"bool"
:
{
"must"
:
[
{
"term"
:
{
"pictorial_id"
:
pictorial_id
}},
{
"term"
:
{
"is_online"
:
True
}},
{
"term"
:
{
"is_deleted"
:
False
}},
{
"term"
:
{
"pictorial_id"
:
pictorial_id
}}
# {
# "nested": {
# "path": "related_billboard",
# "query": {
# "bool": {
# "must": [
# {
# "term": {
# "related_billboard.pictorial_id": pictorial_id
# }
# }
# ]
# }
# }
# }
# }
]
}
},
"sort"
:
[
{
"total_vote_num"
:
{
"order"
:
"desc"
}},
{
"related_billboard.total_vote_cnt"
:
{
"order"
:
"desc"
,
"nested_path"
:
"related_billboard"
,
"missing"
:
"_last"
,
"nested_filter"
:
{
"term"
:
{
"related_billboard.pictorial_id"
:
pictorial_id
}
}
}},
{
"create_time"
:
{
"order"
:
"desc"
}}
]
}
logging
.
info
(
"get qqqqqq:
%
s"
%
q
)
pict_pictorial_ids_list
=
[]
# 获取es链接对象
es_cli_obj
=
ESPerform
.
get_cli
()
...
...
This diff is collapsed.
Click to expand it.
trans2es/mapping/topic-high-star.json
View file @
16b74f47
...
...
@@ -55,6 +55,15 @@
},
"is_excellent"
:{
"type"
:
"long"
},
"is_operation_home_recommend"
:
{
"type"
:
"boolean"
},
//是否首页运营推荐
"is_history"
:
{
"type"
:
"boolean"
}
//是否历史数据
"is_history"
:
{
"type"
:
"boolean"
},
//是否历史数据
"related_billboard"
:{
"type"
:
"nested"
,
"properties"
:{
"pictorial_id"
:{
"type"
:
"long"
},
"real_vote_cnt"
:{
"type"
:
"long"
},
"virt_vote_cnt"
:{
"type"
:
"long"
},
"total_vote_cnt"
:{
"type"
:
"long"
}
}
}
}
}
This diff is collapsed.
Click to expand it.
trans2es/mapping/topic.json
View file @
16b74f47
...
...
@@ -55,6 +55,18 @@
},
"is_excellent"
:{
"type"
:
"long"
},
"is_operation_home_recommend"
:
{
"type"
:
"boolean"
},
//是否首页运营推荐
"is_history"
:
{
"type"
:
"boolean"
}
//是否历史数据
"is_history"
:
{
"type"
:
"boolean"
},
//是否历史数据
"related_billboard"
:{
"type"
:
"nested"
,
"properties"
:{
"pictorial_id"
:{
"type"
:
"long"
},
"real_vote_cnt"
:{
"type"
:
"long"
},
"virt_vote_cnt"
:{
"type"
:
"long"
},
"total_vote_cnt"
:{
"type"
:
"long"
}
}
}
}
}
This diff is collapsed.
Click to expand it.
trans2es/models/topic.py
View file @
16b74f47
...
...
@@ -17,6 +17,7 @@ from .tag import TopicTag, Tag
from
.user_extra
import
UserExtra
from
.group
import
Group
class
ActionSumAboutTopic
(
models
.
Model
):
class
Meta
:
verbose_name
=
u"帖子埋点数据汇总"
...
...
@@ -43,6 +44,7 @@ class TopicImage(models.Model):
create_time
=
models
.
DateTimeField
(
verbose_name
=
u'创建时间'
,
default
=
datetime
.
datetime
.
fromtimestamp
(
0
))
update_time
=
models
.
DateTimeField
(
verbose_name
=
u'更新时间'
,
default
=
datetime
.
datetime
.
fromtimestamp
(
0
))
class
ExcellentTopic
(
models
.
Model
):
"""优质帖子"""
...
...
@@ -51,13 +53,14 @@ class ExcellentTopic(models.Model):
db_table
=
"excellent_topic"
id
=
models
.
IntegerField
(
verbose_name
=
u'ID'
,
primary_key
=
True
)
topic_id
=
models
.
IntegerField
(
verbose_name
=
u"帖子ID"
,
db_index
=
True
)
topic_id
=
models
.
IntegerField
(
verbose_name
=
u"帖子ID"
,
db_index
=
True
)
is_online
=
models
.
BooleanField
(
verbose_name
=
u'是否上线'
)
is_deleted
=
models
.
BooleanField
(
verbose_name
=
u'是否删除'
)
excellent_type
=
models
.
IntegerField
(
verbose_name
=
u"优质类型"
,
db_index
=
True
)
excellent_type
=
models
.
IntegerField
(
verbose_name
=
u"优质类型"
,
db_index
=
True
)
create_time
=
models
.
DateTimeField
(
verbose_name
=
u'创建时间'
,
default
=
datetime
.
datetime
.
fromtimestamp
(
0
))
update_time
=
models
.
DateTimeField
(
verbose_name
=
u'更新时间'
,
default
=
datetime
.
datetime
.
fromtimestamp
(
0
))
class
Topic
(
models
.
Model
):
class
Meta
:
verbose_name
=
u'日记'
...
...
@@ -109,8 +112,8 @@ class Topic(models.Model):
def
get_pictorial_id
(
self
):
try
:
pictorial_id_list
=
[]
pictorial_id
=
PictorialTopic
.
objects
.
filter
(
topic_id
=
self
.
id
)
.
values_list
(
"pictorial_id"
,
flat
=
True
)
pictorial_id_list
=
[]
pictorial_id
=
PictorialTopic
.
objects
.
filter
(
topic_id
=
self
.
id
)
.
values_list
(
"pictorial_id"
,
flat
=
True
)
for
i
in
pictorial_id
:
pictorial_id_list
.
append
(
i
)
return
pictorial_id_list
...
...
@@ -131,14 +134,16 @@ class Topic(models.Model):
return
False
@classmethod
def
get_topic_image_num
(
cls
,
topic_id
):
def
get_topic_image_num
(
cls
,
topic_id
):
"""
:remark 获取指定帖子的图片数量
:param topic_id:
:return:
"""
try
:
query_list
=
list
(
TopicImage
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
topic_id
,
is_deleted
=
False
,
is_online
=
True
)
.
values_list
(
"url"
,
flat
=
True
))
query_list
=
list
(
TopicImage
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
topic_id
,
is_deleted
=
False
,
is_online
=
True
)
.
values_list
(
"url"
,
flat
=
True
))
return
len
(
query_list
)
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
...
...
@@ -148,7 +153,8 @@ class Topic(models.Model):
try
:
has_image
=
False
query_list
=
TopicImage
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
self
.
id
,
is_deleted
=
False
,
is_online
=
True
)
query_list
=
TopicImage
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
self
.
id
,
is_deleted
=
False
,
is_online
=
True
)
if
len
(
query_list
)
>
0
:
has_image
=
True
...
...
@@ -174,12 +180,13 @@ class Topic(models.Model):
topic_tag_id_list
=
list
()
edit_tag_id_list
=
list
()
tag_id_list
=
TopicTag
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
self
.
id
)
.
values_list
(
"tag_id"
,
flat
=
True
)
tag_id_list
=
TopicTag
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
self
.
id
)
.
values_list
(
"tag_id"
,
flat
=
True
)
tag_query_results
=
Tag
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
id__in
=
tag_id_list
)
for
tag_item
in
tag_query_results
:
is_online
=
tag_item
.
is_online
is_deleted
=
tag_item
.
is_deleted
collection
=
tag_item
.
collection
is_online
=
tag_item
.
is_online
is_deleted
=
tag_item
.
is_deleted
collection
=
tag_item
.
collection
if
is_online
and
not
is_deleted
:
topic_tag_id_list
.
append
(
tag_item
.
id
)
...
...
@@ -189,12 +196,23 @@ class Topic(models.Model):
return
(
topic_tag_id_list
,
edit_tag_id_list
)
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
([],[])
return
([],
[])
def
get_edit_tag_id_list
(
self
):
try
:
tag_id_list
=
TopicTag
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
self
.
id
,
is_collection
=
1
)
.
values_list
(
"tag_id"
,
flat
=
True
)
return
tag_id_list
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
[]
def
get_topic_useful_tag_id_list
(
self
):
try
:
topic_useful_tag_id_list
=
list
()
tag_id_list
=
TopicTag
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
self
.
id
,
is_online
=
True
,
is_body_esthetics
=
1
)
tag_id_list
=
TopicTag
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
topic_id
=
self
.
id
,
is_online
=
True
,
is_body_esthetics
=
1
)
for
tag_item
in
tag_id_list
:
topic_useful_tag_id_list
.
append
(
tag_item
.
tag_id
)
return
topic_useful_tag_id_list
...
...
@@ -202,12 +220,13 @@ class Topic(models.Model):
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
[]
def
get_tag_name_list
(
self
,
tag_id_list
):
try
:
tag_name_list
=
list
()
for
i
in
range
(
0
,
len
(
tag_id_list
),
100
):
query_terms_list
=
list
(
Tag
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
id__in
=
tag_id_list
[
i
:
i
+
100
],
is_online
=
True
,
is_deleted
=
False
)
.
values_list
(
"name"
,
flat
=
True
))
query_terms_list
=
list
(
Tag
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
id__in
=
tag_id_list
[
i
:
i
+
100
],
is_online
=
True
,
is_deleted
=
False
)
.
values_list
(
"name"
,
flat
=
True
))
tag_name_list
.
extend
(
query_terms_list
)
return
tag_name_list
except
:
...
...
@@ -234,17 +253,17 @@ class Topic(models.Model):
user_query_results
=
UserExtra
.
objects
.
using
(
settings
.
SLAVE_DB_NAME
)
.
filter
(
user_id
=
self
.
user_id
)
if
user_query_results
.
count
()
>
0
:
if
user_query_results
[
0
]
.
is_recommend
:
offline_score
+=
2.0
*
10
offline_score
+=
2.0
*
10
elif
user_query_results
[
0
]
.
is_shadow
:
user_is_shadow
=
True
# 帖子等级
if
self
.
content_level
==
'5'
:
offline_score
+=
100.0
*
3
offline_score
+=
100.0
*
3
elif
self
.
content_level
==
'4'
:
offline_score
+=
60.0
*
3
offline_score
+=
60.0
*
3
elif
self
.
content_level
==
'6'
:
offline_score
+=
200.0
*
3
offline_score
+=
200.0
*
3
if
self
.
language_type
==
1
:
offline_score
+=
60.0
...
...
@@ -261,6 +280,37 @@ class Topic(models.Model):
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
0.0
def
get_related_billboard
(
self
):
try
:
pictorial_ids
=
Topic
.
get_pictorial_id
(
self
)
related_billboard_list
=
list
()
for
pictorial_id
in
pictorial_ids
:
query_result
=
TopicBillBoard
.
objects
.
filter
(
pictorial_id
=
pictorial_id
,
topic_id
=
self
.
id
)
.
values
()
.
first
()
if
query_result
==
None
:
related_billboard_list
.
append
({
"pictorial_id"
:
pictorial_id
,
"real_vote_cnt"
:
0
,
"virt_vote_cnt"
:
0
,
"total_vote_cnt"
:
0
})
else
:
total_vote_cnt
=
int
(
query_result
[
"virt_vote_cnt"
])
+
int
(
query_result
[
"real_vote_cnt"
])
related_billboard_list
.
append
(
{
"pictorial_id"
:
query_result
[
"pictorial_id"
],
"real_vote_cnt"
:
query_result
[
"real_vote_cnt"
],
"virt_vote_cnt"
:
query_result
[
"virt_vote_cnt"
],
"total_vote_cnt"
:
total_vote_cnt
})
logging
.
info
(
"product_brand_info"
%
related_billboard_list
)
return
related_billboard_list
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
return
[]
class
TopicComplaint
(
models
.
Model
):
"""帖子举报"""
...
...
@@ -273,7 +323,8 @@ class TopicComplaint(models.Model):
id
=
models
.
IntegerField
(
verbose_name
=
'日记图片ID'
,
primary_key
=
True
)
user_id
=
models
.
BigIntegerField
(
verbose_name
=
u'用户ID'
,
db_index
=
True
)
topic
=
models
.
ForeignKey
(
Topic
,
verbose_name
=
u"关联的帖子"
,
null
=
True
,
blank
=
True
,
default
=
None
,
on_delete
=
models
.
CASCADE
,
related_name
=
'complaints'
)
Topic
,
verbose_name
=
u"关联的帖子"
,
null
=
True
,
blank
=
True
,
default
=
None
,
on_delete
=
models
.
CASCADE
,
related_name
=
'complaints'
)
is_online
=
models
.
BooleanField
(
verbose_name
=
u"是否有效"
,
default
=
True
)
...
...
@@ -302,7 +353,7 @@ class TopicExtra(models.Model):
db_table
=
'topic_extra'
id
=
models
.
IntegerField
(
verbose_name
=
u'ID'
,
primary_key
=
True
)
topic_id
=
models
.
IntegerField
(
verbose_name
=
u"帖子ID"
,
db_index
=
True
)
topic_id
=
models
.
IntegerField
(
verbose_name
=
u"帖子ID"
,
db_index
=
True
)
virtual_vote_num
=
models
.
IntegerField
(
verbose_name
=
"帖子虚拟点赞"
)
...
...
@@ -312,7 +363,21 @@ class TopicHomeRecommend(models.Model):
class
Meta
:
verbose_name
=
"运营位帖子"
db_table
=
"topic_home_recommend"
id
=
models
.
IntegerField
(
verbose_name
=
u"id"
,
primary_key
=
True
)
id
=
models
.
IntegerField
(
verbose_name
=
u"id"
,
primary_key
=
True
)
topic_id
=
models
.
IntegerField
(
verbose_name
=
u"帖子ID"
)
is_online
=
models
.
BooleanField
(
verbose_name
=
u'是否上线'
)
is_deleted
=
models
.
BooleanField
(
verbose_name
=
u'是否删除'
)
class
TopicBillBoard
(
models
.
Model
):
"""榜单投票"""
class
Meta
:
verbose_name
=
"榜单投票"
db_table
=
"topic_vote_cnt"
topic_id
=
models
.
IntegerField
(
verbose_name
=
u"帖子ID"
)
pictorial_id
=
models
.
IntegerField
(
verbose_name
=
u"榜单ID"
)
real_vote_cnt
=
models
.
IntegerField
(
verbose_name
=
u"真实赞"
)
virt_vote_cnt
=
models
.
IntegerField
(
verbose_name
=
u"虚拟赞"
)
This diff is collapsed.
Click to expand it.
trans2es/utils/topic_transfer.py
View file @
16b74f47
...
...
@@ -9,12 +9,13 @@ import time
import
re
import
datetime
from
trans2es.models.user
import
User
from
trans2es.models.topic
import
ExcellentTopic
,
TopicHomeRecommend
from
trans2es.models.topic
import
ExcellentTopic
,
TopicHomeRecommend
class
TopicTransfer
(
object
):
@classmethod
def
get_topic_data
(
cls
,
instance
,
is_excellect
=
False
):
def
get_topic_data
(
cls
,
instance
,
is_excellect
=
False
):
try
:
res
=
dict
()
...
...
@@ -47,25 +48,24 @@ class TopicTransfer(object):
begin
=
time
.
time
()
res
[
"pick_id_list"
]
=
instance
.
get_pick_id_info
()
end
=
time
.
time
()
time0
=
(
end
-
begin
)
time0
=
(
end
-
begin
)
begin
=
time
.
time
()
(
topic_tag_id_list
,
edit_tag_id_list
)
=
instance
.
get_topic_tag_id_list
()
res
[
"tag_list"
]
=
topic_tag_id_list
res
[
"edit_tag_list"
]
=
edit_tag_id_list
res
[
"edit_tag_list"
]
=
instance
.
get_edit_tag_id_list
()
end
=
time
.
time
()
time1
=
(
end
-
begin
)
time1
=
(
end
-
begin
)
begin
=
time
.
time
()
res
[
"tag_name_list"
]
=
instance
.
get_tag_name_list
(
res
[
"tag_list"
])
end
=
time
.
time
()
time2
=
(
end
-
begin
)
time2
=
(
end
-
begin
)
begin
=
time
.
time
()
res
[
"offline_score"
]
=
instance
.
get_topic_offline_score
()
end
=
time
.
time
()
time3
=
(
end
-
begin
)
time3
=
(
end
-
begin
)
begin
=
time
.
time
()
res
[
"manual_score"
]
=
instance
.
drop_score
...
...
@@ -73,10 +73,10 @@ class TopicTransfer(object):
res
[
"has_video"
]
=
instance
.
has_video
res
[
"language_type"
]
=
instance
.
language_type
end
=
time
.
time
()
time4
=
(
end
-
begin
)
time4
=
(
end
-
begin
)
# begin = time.time()
topic_useful_tag_id_list
=
instance
.
get_topic_useful_tag_id_list
()
topic_useful_tag_id_list
=
instance
.
get_topic_useful_tag_id_list
()
res
[
"useful_tag_list"
]
=
topic_useful_tag_id_list
# end = time.time()
# time5 = (end - begin)
...
...
@@ -99,7 +99,7 @@ class TopicTransfer(object):
res
[
"virtual_content_level"
]
=
instance
.
virtual_content_level
res
[
"like_num_crawl"
]
=
instance
.
like_num_crawl
res
[
"comment_num_crawl"
]
=
instance
.
comment_num_crawl
res
[
"comment_num_crawl"
]
=
instance
.
comment_num_crawl
res
[
"is_crawl"
]
=
instance
.
is_crawl
res
[
"platform"
]
=
instance
.
platform
...
...
@@ -113,7 +113,6 @@ class TopicTransfer(object):
res
[
"create_time"
]
=
tzlc_create_time
res
[
"create_time_val"
]
=
int
(
time
.
mktime
(
tzlc_create_time
.
timetuple
()))
update_time
=
instance
.
update_time
tzlc_update_time
=
tzlc
(
update_time
)
res
[
"update_time"
]
=
tzlc_update_time
...
...
@@ -137,7 +136,12 @@ class TopicTransfer(object):
if
operation_home_recommend
and
operation_home_recommend
.
is_online
and
not
operation_home_recommend
.
is_deleted
:
res
[
"is_operation_home_recommend"
]
=
True
logging
.
info
(
"test topic transfer time cost,time0:
%
d,time1:
%
d,time2:
%
d,time3:
%
d,time4:
%
d"
%
(
time0
,
time1
,
time2
,
time3
,
time4
))
logging
.
info
(
"test topic transfer time cost,time0:
%
d,time1:
%
d,time2:
%
d,time3:
%
d,time4:
%
d"
%
(
time0
,
time1
,
time2
,
time3
,
time4
))
# 榜单关联的投票
res
[
"related_billboard"
]
=
instance
.
get_related_billboard
()
return
res
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
...
...
This diff is collapsed.
Click to expand it.
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