|
|
|
|
@ -1,14 +1,18 @@ |
|
|
|
|
import pymysql |
|
|
|
|
from pymysql.cursors import DictCursor |
|
|
|
|
from ai.models import * |
|
|
|
|
from ai.models import TestCinema |
|
|
|
|
from ai.utils.sql import * |
|
|
|
|
import datetime |
|
|
|
|
import pandas as pd |
|
|
|
|
import json |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GetData: |
|
|
|
|
def __init__(self, db_config): |
|
|
|
|
self.conn = pymysql.connect(**db_config) |
|
|
|
|
def __init__(self, cinema): |
|
|
|
|
self.conn = pymysql.connect(**json.loads(cinema.db_config)) |
|
|
|
|
self.cur = self.conn.cursor(cursor=DictCursor) |
|
|
|
|
self.zz_code = cinema.zz_code |
|
|
|
|
|
|
|
|
|
def exit(self): |
|
|
|
|
try: |
|
|
|
|
@ -64,9 +68,9 @@ class GetData: |
|
|
|
|
|
|
|
|
|
# 获取指定日期的可放映影片 |
|
|
|
|
def get_available_movie(self, date): |
|
|
|
|
start_datetime = datetime.datetime.strptime(date, '%Y-%m-%d') + datetime.timedelta(hours=6) |
|
|
|
|
end_datetime = datetime.datetime.strptime(date, '%Y-%m-%d') + datetime.timedelta(hours=29, minutes=59, |
|
|
|
|
start_datetime = datetime.datetime.strptime(date, '%Y-%m-%d') + datetime.timedelta(hours=29, minutes=59, |
|
|
|
|
seconds=59) |
|
|
|
|
end_datetime = datetime.datetime.strptime(date, '%Y-%m-%d') + datetime.timedelta(hours=6) |
|
|
|
|
self.cur.execute(GET_AVAILABLE_MOVIE, (start_datetime, end_datetime)) |
|
|
|
|
available_movie = self.cur.fetchall() |
|
|
|
|
available_movie_list = [ |
|
|
|
|
@ -74,6 +78,19 @@ class GetData: |
|
|
|
|
for m in available_movie] |
|
|
|
|
return '\n'.join(available_movie_list) |
|
|
|
|
|
|
|
|
|
# 获取指定日期的可用于排片的影片 |
|
|
|
|
def get_handle_movie(self, date): |
|
|
|
|
start_datetime = datetime.datetime.strptime(date, '%Y-%m-%d') + datetime.timedelta(hours=29, minutes=59, |
|
|
|
|
seconds=59) |
|
|
|
|
end_datetime = datetime.datetime.strptime(date, '%Y-%m-%d') + datetime.timedelta(hours=6) |
|
|
|
|
black_list = json.loads(TestCinema.objects.filter(zz_code=self.zz_code).first().user_config)['movie_black_list'] |
|
|
|
|
self.cur.execute(GET_HANDLE_MOVIE, (start_datetime, end_datetime, black_list)) |
|
|
|
|
available_movie = self.cur.fetchall() |
|
|
|
|
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']};" |
|
|
|
|
for m in available_movie] |
|
|
|
|
return '\n'.join(available_movie_list) |
|
|
|
|
|
|
|
|
|
# 获取新上映的影片 |
|
|
|
|
def get_new_movie(self, date): |
|
|
|
|
start_datetime = datetime.datetime.strptime(date, '%Y-%m-%d') |
|
|
|
|
@ -122,15 +139,3 @@ class GetData: |
|
|
|
|
|
|
|
|
|
def get_media_type(self): |
|
|
|
|
self.cur.execute(GET_HALL_MEDIA_TYPE) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
|
from main import cinema_list |
|
|
|
|
|
|
|
|
|
data = GetData(cinema_list[0]['db']) |
|
|
|
|
# print(data.get_show_data('2026-05-28 06:00:00', '2026-06-04 05:59:59')) |
|
|
|
|
# print(data.get_sell_data('2026-05-28 06:00:00', '2026-06-04 05:59:59')) |
|
|
|
|
# print(data.get_available_movie('2026-06-05')) |
|
|
|
|
print(data.get_new_movie('2026-06-05')) |
|
|
|
|
# print(data.get_hall_media_type()) |
|
|
|
|
# print(data.get_template_date('2026-05-28 06:00:00', '2026-06-04 05:59:59')) |
|
|
|
|
|