优化前端详情页面
This commit is contained in:
parent
6dfcda492e
commit
5a1c14a080
@ -368,42 +368,19 @@ class DouyinAutoScheduler:
|
||||
yesterday_rank = item["yesterday_data"].get("rank", 0)
|
||||
rank_change = yesterday_rank - rank # 使用当前排名计数器
|
||||
|
||||
# 🔍 从Rankings_management获取详细信息(按日期和mix_name查询)
|
||||
today_str = datetime.now().strftime('%Y-%m-%d')
|
||||
management_data = rankings_management_collection.find_one({
|
||||
"mix_name": mix_name,
|
||||
"$or": [
|
||||
{"created_at": {"$gte": datetime.strptime(today_str, '%Y-%m-%d'),
|
||||
"$lt": datetime.strptime(today_str, '%Y-%m-%d') + timedelta(days=1)}},
|
||||
{"last_updated": {"$gte": datetime.strptime(today_str, '%Y-%m-%d'),
|
||||
"$lt": datetime.strptime(today_str, '%Y-%m-%d') + timedelta(days=1)}}
|
||||
]
|
||||
})
|
||||
# 🔍 从Rankings_management获取详细信息(按mix_id查询,因为管理数据库每个短剧只有一条记录)
|
||||
mix_id = video.get("mix_id", "").strip()
|
||||
management_data = None
|
||||
|
||||
# 🔑 如果今天没有数据,查询昨天的 Rankings_management(仅用于获取分类字段和锁定状态)
|
||||
classification_data = None
|
||||
if not management_data:
|
||||
# 查询昨天的 Rankings_management
|
||||
yesterday_start = datetime.strptime(yesterday_str, '%Y-%m-%d')
|
||||
yesterday_end = yesterday_start + timedelta(days=1)
|
||||
classification_data = rankings_management_collection.find_one({
|
||||
"mix_name": mix_name,
|
||||
"$or": [
|
||||
{"created_at": {"$gte": yesterday_start, "$lt": yesterday_end}},
|
||||
{"last_updated": {"$gte": yesterday_start, "$lt": yesterday_end}}
|
||||
]
|
||||
})
|
||||
if classification_data:
|
||||
novel_ids = classification_data.get('Novel_IDs', [])
|
||||
anime_ids = classification_data.get('Anime_IDs', [])
|
||||
drama_ids = classification_data.get('Drama_IDs', [])
|
||||
logging.info(f"📋 今天没有数据,从昨天的 Rankings_management 获取分类: {mix_name}")
|
||||
logging.info(f" - Novel_IDs: {novel_ids}")
|
||||
logging.info(f" - Anime_IDs: {anime_ids}")
|
||||
logging.info(f" - Drama_IDs: {drama_ids}")
|
||||
logging.info(f" - last_updated: {classification_data.get('last_updated')}")
|
||||
if mix_id:
|
||||
# 直接按mix_id查询,不需要按日期查询
|
||||
management_data = rankings_management_collection.find_one({"mix_id": mix_id})
|
||||
if management_data:
|
||||
logging.info(f"📋 从 Rankings_management 获取数据: {mix_name} (mix_id: {mix_id})")
|
||||
else:
|
||||
logging.warning(f"⚠️ 今天和昨天都没有数据: {mix_name}")
|
||||
logging.warning(f"⚠️ 未找到管理数据: {mix_name} (mix_id: {mix_id})")
|
||||
else:
|
||||
logging.warning(f"⚠️ mix_id 为空: {mix_name}")
|
||||
|
||||
ranking_item = {
|
||||
# 🎯 核心榜单字段
|
||||
@ -435,35 +412,20 @@ class DouyinAutoScheduler:
|
||||
"realtime_saved": management_data.get("realtime_saved", True) if management_data else True,
|
||||
"created_at": management_data.get("created_at") if management_data else None,
|
||||
"last_updated": management_data.get("last_updated") if management_data else None,
|
||||
# 🎬 评论总结字段
|
||||
# 🎬 评论总结字段:直接从管理数据库获取(按mix_id查询)
|
||||
"comments_summary": management_data.get("comments_summary", "") if management_data else "",
|
||||
|
||||
# 🔑 分类字段:区分今天数据和历史数据
|
||||
# - 如果今天有数据:从今天的数据获取所有字段
|
||||
# - 如果今天没有数据:只从历史记录获取分类字段和锁定状态,其他字段为空
|
||||
# 注意:使用 .get() 的第二个参数确保即使字段不存在也会返回空字符串
|
||||
"Manufacturing_Field": (management_data.get("Manufacturing_Field", "") if management_data else "") or "",
|
||||
"Copyright_field": (management_data.get("Copyright_field", "") if management_data else "") or "",
|
||||
"classification_type": (management_data.get("classification_type", "") if management_data else "") or "", # 新增:类型/元素(确保字段存在)
|
||||
"release_date": (management_data.get("release_date", "") if management_data else "") or "", # 新增:上线日期(确保字段存在)
|
||||
"Novel_IDs": (
|
||||
management_data.get("Novel_IDs", []) if management_data
|
||||
else (classification_data.get("Novel_IDs", []) if classification_data else [])
|
||||
),
|
||||
"Anime_IDs": (
|
||||
management_data.get("Anime_IDs", []) if management_data
|
||||
else (classification_data.get("Anime_IDs", []) if classification_data else [])
|
||||
),
|
||||
"Drama_IDs": (
|
||||
management_data.get("Drama_IDs", []) if management_data
|
||||
else (classification_data.get("Drama_IDs", []) if classification_data else [])
|
||||
),
|
||||
# 🔑 分类字段:直接从管理数据库获取(按mix_id查询,每个短剧只有一条记录)
|
||||
"Manufacturing_Field": management_data.get("Manufacturing_Field", "") if management_data else "",
|
||||
"Copyright_field": management_data.get("Copyright_field", "") if management_data else "",
|
||||
"classification_type": management_data.get("classification_type", "") if management_data else "",
|
||||
"release_date": management_data.get("release_date", "") if management_data else "",
|
||||
"Novel_IDs": management_data.get("Novel_IDs", []) if management_data else [],
|
||||
"Anime_IDs": management_data.get("Anime_IDs", []) if management_data else [],
|
||||
"Drama_IDs": management_data.get("Drama_IDs", []) if management_data else [],
|
||||
|
||||
# 🔒 锁定状态:同样区分今天数据和历史数据
|
||||
"field_lock_status": (
|
||||
management_data.get("field_lock_status", {}) if management_data
|
||||
else (classification_data.get("field_lock_status", {}) if classification_data else {})
|
||||
),
|
||||
# 🔒 锁定状态:直接从管理数据库获取
|
||||
"field_lock_status": management_data.get("field_lock_status", {}) if management_data else {},
|
||||
|
||||
# 📊 时间轴对比数据(重要:包含播放量差值)
|
||||
"timeline_data": {
|
||||
|
||||
@ -253,12 +253,12 @@ onMounted(() => {
|
||||
.card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: 16px;
|
||||
border-radius: 0;
|
||||
overflow: hidden;
|
||||
background: #f3f4f6;
|
||||
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
|
||||
width: 100%;
|
||||
max-width: 448px;
|
||||
max-width: 428px;
|
||||
}
|
||||
|
||||
.header {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user