From 20c33f7625c61dcafc9430c91a3479e2d7dd00eb Mon Sep 17 00:00:00 2001 From: rogersun Date: Fri, 10 Jul 2026 10:09:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=AA=E6=9D=A57=E5=A4=A9=E6=96=B0=E7=89=87?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ai/models.py | 2 ++ ai/utils/show_func.py | 27 +++++++++++++++++++-------- ai/views.py | 13 ++++++++++--- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/ai/models.py b/ai/models.py index fd247c4..9a8c505 100644 --- a/ai/models.py +++ b/ai/models.py @@ -158,6 +158,8 @@ class MovieHotInfo(models.Model): class NewMovieSuggestion(models.Model): id = models.AutoField(primary_key=True) + cinema = models.CharField(max_length=50) + zz_code = models.CharField(max_length=50) movie_zz_code = models.CharField(max_length=50) movie_name = models.CharField(max_length=50) suggestion = models.CharField(max_length=50) diff --git a/ai/utils/show_func.py b/ai/utils/show_func.py index f3db04e..68b1f18 100644 --- a/ai/utils/show_func.py +++ b/ai/utils/show_func.py @@ -139,7 +139,7 @@ def get_new_suggestion(cinema, show_date): movie = data.get_movie_info(show_date, 'new') new_movie_list = [] for m in movie: - new_movie = NewMovieSuggestion.objects.filter(movie_name=m['cinema_movie_cn_name']).first() + new_movie = NewMovieSuggestion.objects.filter(Q(movie_name=m['cinema_movie_cn_name']) & Q(zz_code=cinema.zz_code)).first() if new_movie is not None: new_movie_list.append( f"\t《{m['cinema_movie_cn_name']}》的不同制式版本总计建议排片占比为{new_movie.suggestion}%;") @@ -148,9 +148,16 @@ def get_new_suggestion(cinema, show_date): return None -def get_new_movie(): +def get_new_movie(start_date='today'): cinema_list = TestCinema.objects.all() - date_list = [datetime.datetime.strftime(datetime.datetime.today() + datetime.timedelta(days=i), '%Y-%m-%d') for i in + start_date_obj = datetime.datetime.today() + if start_date != 'today': + try: + start_date_obj = datetime.datetime.strptime(start_date, '%Y-%m-%d') + except ValueError: + print(start_date) + return False + date_list = [datetime.datetime.strftime(start_date_obj + datetime.timedelta(days=i), '%Y-%m-%d') for i in range(1, 8)] new_dict = dict() new_data = False @@ -162,11 +169,15 @@ def get_new_movie(): new_dict[cinema.name][date_val] = [] for new in new_list: print(new) - if NewMovieSuggestion.objects.filter(movie_zz_code=new['cinema_movie_num']).first() is None: - NewMovieSuggestion.objects.create(movie_zz_code=new['cinema_movie_num'], - movie_name=new['cinema_movie_cn_name'], - suggestion=0, - delete_flag=True) + if NewMovieSuggestion.objects.filter( + Q(movie_zz_code=new['cinema_movie_num']) & Q(zz_code=cinema.zz_code)).first() is None: + NewMovieSuggestion.objects.create( + cinema=cinema.name, + zz_code=cinema.zz_code, + movie_zz_code=new['cinema_movie_num'], + movie_name=new['cinema_movie_cn_name'], + suggestion=0, + delete_flag=True) new_dict[cinema.name][date_val].append( {'movie_zz_code': new['cinema_movie_num'], 'movie_name': new['cinema_movie_cn_name']}) new_data = True diff --git a/ai/views.py b/ai/views.py index ff3ea60..3fb8da7 100644 --- a/ai/views.py +++ b/ai/views.py @@ -142,14 +142,21 @@ def get_report_date_api(request): print(result_dict) return JsonResponse(result_dict, json_dumps_params={'ensure_ascii': False}) + @csrf_exempt def insert_new_movie(request): - result = get_new_movie() + start = request.GET.get('start') + result = get_new_movie(start) + if result is None: + data = 'None' + elif result is False: + data = '参数start格式错误,示例2026-07-11' + else: + data = result result_dict = { 'status': 'success', 'message': '成功', - 'data': 'None' if result is None else result, + 'data': data } print(result_dict) return JsonResponse(result_dict, json_dumps_params={'ensure_ascii': False}) -