优化提示词支持点映

main
rogersun 4 days ago
parent 4e491f12b2
commit e45df85c9e
  1. 57
      ai/utils/show_database.py
  2. 19
      ai/utils/sql.py

@ -120,10 +120,65 @@ class GetData:
if new is not None and len(new) > 0: if new is not None and len(new) > 0:
list(available_movie).extend(list(new)) list(available_movie).extend(list(new))
available_movie_list = [ available_movie_list = [
f"\t{m['cinema_movie_alias']} - 影片id:{m['cinema_movie_id']},影片时长:{m['cinema_movie_time']},语言:{m['language']},制式:{m['media_type']}, 最早排片开始时间:{m['cinema_movie_start_datetime']}, 最晚排片截止时间:{m['cinema_movie_end_datetime']}" f"\t{m['cinema_movie_alias']} - 影片id:{m['cinema_movie_id']},影片时长:{m['cinema_movie_time']},语言:{m['language']},制式:{m['media_type']}, 最早排片开始时间:{self.get_start(m,date)}, 最晚排片截止时间:{self.get_end(m,date)}"
for m in available_movie] for m in available_movie]
return '\n'.join(available_movie_list) return '\n'.join(available_movie_list)
@staticmethod
def get_start(movie, show_date_str):
start = '06:00'
show_date = datetime.datetime.strptime(show_date_str, '%Y-%m-%d')
show_start_datetime = movie['cinema_movie_show_datetime']
# show_end_datetime = movie['cinema_movie_offline_date']
if show_date.date() < show_start_datetime.date():
preview = json.loads(movie['cinema_movie_preview_show_time'])
if movie.get('cinema_movie_preview_show_type') == 1:
for p in preview:
p_start_date = datetime.datetime.strptime(p['startDate'], '%Y-%m-%d')
p_end_date = datetime.datetime.strptime(p['endDate'], '%Y-%m-%d')
if p_start_date.date() <= show_date.date() <= p_end_date.date():
start = p['startTime']
break
else:
for p in preview:
p_start_datetime = datetime.datetime.strptime(p['start'], '%Y-%m-%d %H:%M:%S')
# p_end_datetime = datetime.datetime.strptime(p['end'], '%Y-%m-%d %H:%M:%S')
if p_start_datetime.date() == show_date.date():
start = p_start_datetime.strftime('%H:%M')
break
else:
if show_date.date() == show_start_datetime.date():
start = datetime.datetime.strftime(show_start_datetime, '%H:%M')
return start
@staticmethod
def get_end(movie, show_date_str):
end = '23:59'
show_date = datetime.datetime.strptime(show_date_str, '%Y-%m-%d')
show_start_datetime = movie['cinema_movie_show_datetime']
show_end_datetime = movie['cinema_movie_offline_date']
if show_date.date() < show_start_datetime.date():
preview = json.loads(movie['cinema_movie_preview_show_time'])
if movie.get('cinema_movie_preview_show_type') == 1:
for p in preview:
p_start_date = datetime.datetime.strptime(p['startDate'], '%Y-%m-%d')
p_end_date = datetime.datetime.strptime(p['endDate'], '%Y-%m-%d')
if p_start_date.date() <= show_date.date() <= p_end_date.date():
end = p['endTime']
break
else:
for p in preview:
# p_start_datetime = datetime.datetime.strptime(p['start'], '%Y-%m-%d %H:%M:%S')
p_end_datetime = datetime.datetime.strptime(p['end'], '%Y-%m-%d %H:%M:%S')
if p_end_datetime.date() == show_date.date():
end = p_end_datetime.strftime('%H:%M')
break
else:
if show_date.date() == show_end_datetime.date():
end = datetime.datetime.strftime(show_end_datetime, '%H:%M')
return end
# 获取新上映的影片 # 获取新上映的影片
def get_new_movie(self, date): def get_new_movie(self, date):
start_datetime = datetime.datetime.strptime(date, '%Y-%m-%d') start_datetime = datetime.datetime.strptime(date, '%Y-%m-%d')

@ -203,8 +203,11 @@ SELECT cmi.cinema_movie_alias,
cmi.cinema_movie_time, cmi.cinema_movie_time,
cmlt.cinema_movie_lang_type_desc as language, cmlt.cinema_movie_lang_type_desc as language,
scvm.system_const_val_desc as media_type, scvm.system_const_val_desc as media_type,
cmi.cinema_movie_start_datetime, cmi.cinema_movie_show_date,
cmi.cinema_movie_end_datetime cmi.cinema_movie_show_datetime,
cmi.cinema_movie_offline_date,
cmi.cinema_movie_preview_show_type,
cmi.cinema_movie_preview_show_time
FROM cinema_movie_info cmi FROM cinema_movie_info cmi
JOIN cinema_movie_lang_type cmlt ON cmi.cinema_movie_lang_id = cmlt.cinema_movie_lang_type_id JOIN cinema_movie_lang_type cmlt ON cmi.cinema_movie_lang_id = cmlt.cinema_movie_lang_type_id
JOIN system_const_val_map scvm ON cmi.cinema_movie_media_type = scvm.system_const_val_value JOIN system_const_val_map scvm ON cmi.cinema_movie_media_type = scvm.system_const_val_value
@ -330,8 +333,11 @@ SELECT sd.cinema_movie_alias,
sd.cinema_movie_time, sd.cinema_movie_time,
sd.language, sd.language,
sd.media_type, sd.media_type,
sd.cinema_movie_start_datetime, sd.cinema_movie_show_date,
sd.cinema_movie_end_datetime, sd.cinema_movie_show_datetime,
sd.cinema_movie_offline_date,
sd.cinema_movie_preview_show_type,
sd.cinema_movie_preview_show_time,
SUM(sd.total_income) total_income, SUM(sd.total_income) total_income,
COUNT(sd.cinema_movie_show_id) show_count COUNT(sd.cinema_movie_show_id) show_count
FROM (SELECT mi.cinema_movie_alias, FROM (SELECT mi.cinema_movie_alias,
@ -342,6 +348,11 @@ FROM (SELECT mi.cinema_movie_alias,
scvm.system_const_val_desc as media_type, scvm.system_const_val_desc as media_type,
mi.cinema_movie_start_datetime, mi.cinema_movie_start_datetime,
mi.cinema_movie_end_datetime, mi.cinema_movie_end_datetime,
mi.cinema_movie_show_date,
mi.cinema_movie_show_datetime,
mi.cinema_movie_offline_date,
mi.cinema_movie_preview_show_type,
mi.cinema_movie_preview_show_time,
CAST(ms.cinema_movie_show_id AS CHAR) cinema_movie_show_id, CAST(ms.cinema_movie_show_id AS CHAR) cinema_movie_show_id,
SUM(IF(sl.cinema_ticket_status <> 3, sl.cinema_ticket_income, 0)) total_income SUM(IF(sl.cinema_ticket_status <> 3, sl.cinema_ticket_income, 0)) total_income
FROM cinema_movie_show ms FROM cinema_movie_show ms

Loading…
Cancel
Save