parent
28e47abe07
commit
7f005cc298
10 changed files with 425 additions and 23 deletions
@ -0,0 +1,23 @@ |
||||
# Generated by Django 4.2.7 on 2023-12-22 03:37 |
||||
|
||||
from django.db import migrations, models |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('mock', '0001_initial'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AddField( |
||||
model_name='zzmockmodel', |
||||
name='auditSessionCode', |
||||
field=models.CharField(help_text='需要审核的过场场次编码', max_length=20, null=True, verbose_name='需要审核的过场场次编码'), |
||||
), |
||||
migrations.AddField( |
||||
model_name='zzmockmodel', |
||||
name='auditStatus', |
||||
field=models.CharField(help_text='需要审核的过场场次状态', max_length=3, null=True, verbose_name='需要审核的过场场次状态'), |
||||
), |
||||
] |
@ -0,0 +1,142 @@ |
||||
import pymysql |
||||
from pymysql.cursors import DictCursor |
||||
|
||||
|
||||
def get(): |
||||
mock_data = { |
||||
'message': '操作成功', |
||||
'data': |
||||
{ |
||||
'filmList': |
||||
[ |
||||
{ |
||||
'filmCode': '001299992022', |
||||
'duration': 90, |
||||
'aliasName': None, |
||||
'keyEndtime': '2050-12-31', |
||||
'keyStarttime': '2022-01-01', |
||||
'reshowFlag': False, |
||||
'publishDate': '2023-01-01', |
||||
'filmName': 'Mock测试影片(不要排片!)', |
||||
'producer': '无', |
||||
'publisher': '暂空', |
||||
'language': None, |
||||
'version': '0' |
||||
} |
||||
], |
||||
'pageable': |
||||
{ |
||||
'size': 20, |
||||
'totalPages': 1, |
||||
'page': 1 |
||||
} |
||||
}, |
||||
'code': '200', |
||||
'status': 'success' |
||||
} |
||||
return mock_data |
||||
|
||||
|
||||
""" |
||||
国家编码(3)+ 发行版本编码(1)+ 当年流水编码(4)+ 年份(4) |
||||
例如 001d12342023 |
||||
|
||||
国家编码: |
||||
001 中国 |
||||
002 中国香港 |
||||
003 中国台湾 |
||||
011 朝鲜 |
||||
012 日本 |
||||
013 越南 |
||||
014 泰国 |
||||
015 缅甸 |
||||
016 新加坡 |
||||
017 印尼 |
||||
018 斯里兰卡 |
||||
019 印度 |
||||
020 巴基斯坦 |
||||
021 蒙古 |
||||
022 伊拉克 |
||||
023 黎巴嫩 |
||||
024 土尔其 |
||||
025 菲律宾 |
||||
026 尼泊尔 |
||||
027 叙利亚 |
||||
035 澳大利亚 |
||||
036 新西兰 |
||||
041 埃及 |
||||
042 阿尔及利亚 |
||||
043 突尼斯 |
||||
044 摩洛哥 |
||||
051 美国 |
||||
052 墨西哥 |
||||
053 委内瑞拉 |
||||
054 古巴 |
||||
055 哥伦比亚 |
||||
056 玻利维亚 |
||||
058 阿根廷 |
||||
059 加拿大 |
||||
060 巴西 |
||||
073 丹麦 |
||||
076 荷兰 |
||||
077 西班牙 |
||||
078 意大利 |
||||
079 西德 |
||||
080 东德 |
||||
081 瑞士 |
||||
082 奥地利 |
||||
083 波兰 |
||||
084 捷克 |
||||
085 匈牙利 |
||||
086 罗马尼亚 |
||||
087 保加利亚 |
||||
088 南斯拉夫 |
||||
089 阿尔巴尼亚 |
||||
090 希腊 |
||||
091 俄罗斯 |
||||
092 比利时 |
||||
093 瑞典 |
||||
其他未列出的三位编码由《影片编码原则》保留。 |
||||
|
||||
发行版本: |
||||
0、故事片观摩影片 |
||||
1、故事片普通 |
||||
2、故事片普通立体 |
||||
3、故事片IMAX |
||||
4、故事片IMAX立体 |
||||
5、故事片胶片(进口) |
||||
6、故事片其他特种电影 |
||||
7、故事片其他 |
||||
8、故事片中国巨幕 |
||||
9、故事片中国巨幕立体 |
||||
a、动画片观摩影片 |
||||
b、动画片普通 |
||||
o、动画片普通立体 |
||||
d、动画片IMAX |
||||
e、动画片IMAX立体 |
||||
f、动画片胶片(进口) |
||||
g、动画片其他特种电影 |
||||
h、动画片其他 |
||||
i、动画片中国巨幕 |
||||
j、动画片中国巨幕立体 |
||||
k、纪录片观摩影片 |
||||
l、纪录片普通 |
||||
m、纪录片普通立体 |
||||
n、纪录片IMAX |
||||
o、纪录片IMAX立体 |
||||
p、纪录片胶片(进口) |
||||
q、纪录片其他特种电影 |
||||
r、纪录片其他 |
||||
s、纪录片中国巨幕 |
||||
t、纪录片中国巨幕立体 |
||||
u、科教片观摩影片 |
||||
v、科教片普逋 |
||||
w、科教片普通立体 |
||||
x、科教片IMAX |
||||
y、科教片IMAX立体 |
||||
z、科教片胶片(进口) |
||||
A、科教片其他特种电影 |
||||
B、科教片其他 |
||||
C、科教片中国巨幕 |
||||
D、科教片中国巨幕立体 |
||||
""" |
@ -0,0 +1,125 @@ |
||||
import pymysql |
||||
from pymysql.cursors import DictCursor |
||||
from mock.models import ZZMockModel |
||||
|
||||
|
||||
# 转换sessionCode为show_id |
||||
def handle_session_code(session_code): |
||||
while session_code.startswith('0'): |
||||
session_code = session_code[1:] |
||||
return session_code |
||||
|
||||
|
||||
def get(cinema_data, request): |
||||
# 审核状态映射 |
||||
# 退票状态 1-未提交 2-审核中 3-审核通过 4-审核失败 |
||||
# 售票状态 1-已审核 2-已驳回 3-审核中 4-已补登 5-未提交 6-提交失败 |
||||
# 专资接口 # operation 1售票 2退票 # status 0不通过 1通过 2待审核 99待提交 |
||||
refund_status_dict = { |
||||
'3': '1', |
||||
'4': '0' |
||||
} |
||||
sell_status_dict = { |
||||
'1': '1', |
||||
'2': '0', |
||||
'4': '1', |
||||
} |
||||
|
||||
# 定义影院数据库 |
||||
db_config = { |
||||
'host': cinema_data.ip, |
||||
'user': cinema_data.db_user, |
||||
'password': cinema_data.db_pwd, |
||||
'database': 'cine', |
||||
'connect_timeout': 5, |
||||
} |
||||
|
||||
# 获取审核状态 |
||||
audit_config = ZZMockModel.objects.filter(ip=cinema_data.ip).first() |
||||
target_show_id = audit_config.auditShowId |
||||
target_status = audit_config.auditStatus |
||||
|
||||
# 获取请求数据 |
||||
session_code = request.query_params.get('sessionCode') |
||||
overtime_type = request.query_params.get('overtimeType') |
||||
|
||||
# session_code装show_id |
||||
request_show_id = handle_session_code(session_code) |
||||
|
||||
# 如果不是要测试的场次直接返回None, 从而执行bypass |
||||
if request_show_id != target_show_id: |
||||
return None |
||||
|
||||
db_conn = pymysql.Connect(**db_config) |
||||
db_cursor = db_conn.cursor(cursor=DictCursor) |
||||
ticket_list = [] |
||||
# 处理过场收票 |
||||
|
||||
if overtime_type == '0': |
||||
# zz_audit_status 专资审核状态 1-已审核 2-已驳回 3-审核中 4-已补登 5-未提交 6-提交失败 |
||||
# cinema_sell_add_status 补登状态 1-已审核 2-已驳回 3-审核中, |
||||
sell_sql = """ |
||||
SELECT csad.id, |
||||
csad.ticket_no AS ticket_no, |
||||
csa.cinema_sell_add_status AS add_status, |
||||
csa.zz_audit_status AS audit_status, |
||||
csa.cinema_sell_add_showid AS show_id |
||||
FROM cinema_sell_add_detail csad |
||||
LEFT JOIN cinema_sell_add csa ON csad.cinema_sell_add_id = csa.cinema_sell_add_id |
||||
WHERE csad.ticket_no <> '' |
||||
AND csa.cinema_sell_add_showid = %s |
||||
ORDER BY csad.id DESC; |
||||
""" |
||||
db_cursor.execute(sell_sql, (target_show_id,)) |
||||
sell_tickets = db_cursor.fetchall() |
||||
for ticket in sell_tickets: |
||||
sell_status = str(ticket['audit_status']) |
||||
if sell_status in ('5', '6'): |
||||
continue |
||||
elif sell_status == '3': |
||||
ticket_list.append({ |
||||
'ticketNo': ticket['ticket_no'], |
||||
'operation': 2, |
||||
'status': target_status |
||||
}) |
||||
else: |
||||
ticket_list.append({ |
||||
'ticketNo': ticket['ticket_no'], |
||||
'operation': 2, |
||||
'status': sell_status_dict[sell_status] |
||||
}) |
||||
# 处理过场退票 |
||||
if overtime_type == '1': |
||||
# cinema_refund_order_detail |
||||
refund_sql = """ |
||||
SELECT crod.id, crod.cinema_sell_id, crod.refund_status, cslei.ticket_no |
||||
FROM cinema_refund_order_detail crod |
||||
LEFT JOIN cinema_sell_log_ext_info cslei ON crod.cinema_sell_id = cslei.cinema_sell_id |
||||
WHERE refund_order_id IN (SELECT cinema_refund_order.refund_order_id FROM cinema_refund_order WHERE show_id = %s) |
||||
ORDER BY id DESC; |
||||
""" |
||||
db_cursor.execute(refund_sql, (target_show_id,)) |
||||
refund_tickets = db_cursor.fetchall() |
||||
|
||||
for ticket in refund_tickets: |
||||
refund_status = str(ticket['refund_status']) |
||||
if refund_status == '1': |
||||
continue |
||||
elif refund_status == '2': |
||||
ticket_list.append({ |
||||
'ticketNo': ticket['ticket_no'], |
||||
'operation': 2, |
||||
'status': target_status |
||||
}) |
||||
else: |
||||
ticket_list.append({ |
||||
'ticketNo': ticket['ticket_no'], |
||||
'operation': 2, |
||||
'status': refund_status_dict[refund_status] |
||||
}) |
||||
print(ticket_list) |
||||
mock_data = {'message': '操作成功', |
||||
'data': {'ticketList': ticket_list}, |
||||
'code': '200', |
||||
'status': 'success'} |
||||
return mock_data |
@ -0,0 +1,3 @@ |
||||
def get(): |
||||
mock_data = {'message': '操作成功', 'data': [], 'code': '200', 'status': 'success'} |
||||
return mock_data |
Loading…
Reference in new issue