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
吴升宇
physical
Commits
b1b93c4b
Commit
b1b93c4b
authored
Jun 21, 2019
by
lixiaofang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增字段到topic
parent
ee97b18f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
87 additions
and
25 deletions
+87
-25
group.py
search/views/group.py
+17
-1
topic.py
trans2es/models/topic.py
+67
-24
topic_transfer.py
trans2es/utils/topic_transfer.py
+3
-0
No files found.
search/views/group.py
View file @
b1b93c4b
...
...
@@ -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,9 +252,24 @@ 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
}},
{
"nested"
:
{
"path"
:
"related_billboard"
,
"query"
:
{
"bool"
:
{
"must"
:
[
{
"term"
:
{
"pictorial_id"
:
pictorial_id
}
}
]
}
}
}
}
]
}
},
...
...
trans2es/models/topic.py
View file @
b1b93c4b
...
...
@@ -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'日记'
...
...
@@ -101,7 +104,7 @@ class Topic(models.Model):
try
:
topic_extra
=
TopicExtra
.
objects
.
filter
(
topic_id
=
self
.
id
)
.
first
()
virtual_vote_num
=
topic_extra
.
virtual_vote_num
if
topic_extra
else
0
return
virtual_vote_num
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
...
...
@@ -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,25 +196,27 @@ 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_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
)
topic_useful_tag_id_list
.
append
(
tag_item
.
tag_id
)
return
topic_useful_tag_id_list
except
:
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 +243,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
...
...
@@ -262,6 +271,25 @@ class Topic(models.Model):
return
0.0
def
get_related_billboard
(
self
):
try
:
related_billboard_list
=
list
()
query_results
=
TopicBillBoard
.
objects
.
filter
(
id
=
self
.
id
)
for
items
in
query_results
:
related_billboard_list
.
append
({
"pictorial_id"
:
items
.
pictorial_id
,
"real_vote_cnt"
:
items
.
real_vote_cnt
,
"virt_vote_cnt"
:
items
.
virt_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 +301,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 +331,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 +341,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"虚拟赞"
)
trans2es/utils/topic_transfer.py
View file @
b1b93c4b
...
...
@@ -138,6 +138,9 @@ class TopicTransfer(object):
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
))
#榜单关联的投票
res
[
"related_billboard"
]
=
instance
.
get_related_billboard
()
return
res
except
:
logging
.
error
(
"catch exception,err_msg:
%
s"
%
traceback
.
format_exc
())
...
...
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