Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
c5347b01a9 | 1 year ago |
183 changed files with 479 additions and 110860 deletions
@ -1,6 +1,2 @@ |
|||||||
/venv/ |
/venv/ |
||||||
.idea |
.idea |
||||||
/dx/ |
|
||||||
/logs/ |
|
||||||
/logs/dingxin.log |
|
||||||
*.log |
|
@ -1 +0,0 @@ |
|||||||
py .\manage.py runserver 0.0.0.0:8000 |
|
@ -1,2 +0,0 @@ |
|||||||
import pymysql |
|
||||||
pymysql.install_as_MySQLdb() |
|
@ -1,23 +0,0 @@ |
|||||||
from django.utils.deprecation import MiddlewareMixin |
|
||||||
|
|
||||||
|
|
||||||
class SetRemoteAddrFromForwardedFor(MiddlewareMixin): |
|
||||||
""" |
|
||||||
如果部署了代理,使用此中间件获取远程客户端IP。 |
|
||||||
在settings中注册该中间件。 |
|
||||||
""" |
|
||||||
|
|
||||||
def process_request(self, request): |
|
||||||
# print('process_request') |
|
||||||
# print("request.META") |
|
||||||
# print(request.META) |
|
||||||
try: |
|
||||||
# print("request.META") |
|
||||||
real_ip = request.META['HTTP_X_FORWARDED_FOR'] |
|
||||||
# print('real_ip', real_ip) |
|
||||||
except KeyError as err: |
|
||||||
print('HTTP_X_FORWARDED_FOR key error') |
|
||||||
print(err) |
|
||||||
else: |
|
||||||
real_ip = real_ip.split(",")[0] |
|
||||||
request.META['REMOTE_ADDR'] = real_ip |
|
@ -1,13 +0,0 @@ |
|||||||
from .wsgi import * |
|
||||||
# from channels.auth import AuthMiddlewareStack |
|
||||||
from channels.routing import ProtocolTypeRouter, URLRouter |
|
||||||
from django.core.asgi import get_asgi_application |
|
||||||
from .urls import websocket_urlpatterns |
|
||||||
|
|
||||||
|
|
||||||
application = ProtocolTypeRouter( |
|
||||||
{ |
|
||||||
'http': get_asgi_application(), |
|
||||||
'websocket': URLRouter(websocket_urlpatterns) |
|
||||||
} |
|
||||||
) |
|
@ -1,3 +0,0 @@ |
|||||||
from django.contrib import admin |
|
||||||
|
|
||||||
# Register your models here. |
|
@ -1,6 +0,0 @@ |
|||||||
from django.apps import AppConfig |
|
||||||
|
|
||||||
|
|
||||||
class DsptApiConfig(AppConfig): |
|
||||||
default_auto_field = 'django.db.models.BigAutoField' |
|
||||||
name = 'dspt_api' |
|
@ -1,120 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-05-23 07:57 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
initial = True |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='CinemaIds', |
|
||||||
fields=[ |
|
||||||
('id', models.IntegerField(primary_key=True, serialize=False)), |
|
||||||
('env', models.CharField(max_length=10, verbose_name='环境')), |
|
||||||
('cinema_id', models.IntegerField(verbose_name='影院id')), |
|
||||||
('cinema_name', models.CharField(max_length=30, verbose_name='影院名称')), |
|
||||||
('cid', models.CharField(max_length=10, verbose_name='影院cid')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': '影院cid', |
|
||||||
'verbose_name_plural': '影院cid', |
|
||||||
'db_table': 'ec_cinema_cid', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='EcApi', |
|
||||||
fields=[ |
|
||||||
('id', models.IntegerField(primary_key=True, serialize=False)), |
|
||||||
('desc', models.CharField(max_length=20, verbose_name='接口描述')), |
|
||||||
('path', models.CharField(max_length=50, verbose_name='非会员接口地址')), |
|
||||||
('m_path', models.CharField(max_length=50, verbose_name='会员接口地址')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': '接口', |
|
||||||
'verbose_name_plural': '接口', |
|
||||||
'db_table': 'ec_api', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='EcApiGroup', |
|
||||||
fields=[ |
|
||||||
('id', models.IntegerField(primary_key=True, serialize=False)), |
|
||||||
('group_id', models.CharField(max_length=20, verbose_name='接口分组id')), |
|
||||||
('name', models.CharField(max_length=20, verbose_name='接口分组id')), |
|
||||||
('order', models.IntegerField(verbose_name='子接口顺序')), |
|
||||||
('api_id', models.IntegerField(verbose_name='接口id')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': '接口组', |
|
||||||
'verbose_name_plural': '接口组', |
|
||||||
'db_table': 'ec_api_group', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='EcApiParams', |
|
||||||
fields=[ |
|
||||||
('id', models.IntegerField(primary_key=True, serialize=False)), |
|
||||||
('api_id', models.IntegerField(verbose_name='接口id')), |
|
||||||
('param', models.CharField(max_length=50, verbose_name='参数')), |
|
||||||
('desc', models.CharField(max_length=500, verbose_name='参数描述')), |
|
||||||
('value', models.CharField(max_length=500, verbose_name='参数值模版')), |
|
||||||
('is_checked', models.BooleanField(default=False, verbose_name='是否默认勾选')), |
|
||||||
('is_request', models.BooleanField(default=False, verbose_name='是否是必选项')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': '接口参数', |
|
||||||
'verbose_name_plural': '接口参数', |
|
||||||
'db_table': 'ec_api_params', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='EcChannel', |
|
||||||
fields=[ |
|
||||||
('id', models.IntegerField(primary_key=True, serialize=False)), |
|
||||||
('env', models.CharField(max_length=10, verbose_name='环境')), |
|
||||||
('name', models.CharField(max_length=20, verbose_name='渠道名称')), |
|
||||||
('pid', models.CharField(max_length=10, verbose_name='渠道id')), |
|
||||||
('channel_key', models.CharField(max_length=20, verbose_name='渠道key')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': '渠道', |
|
||||||
'verbose_name_plural': '渠道', |
|
||||||
'db_table': 'ec_channel', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='EcEnv', |
|
||||||
fields=[ |
|
||||||
('id', models.IntegerField(primary_key=True, serialize=False)), |
|
||||||
('name', models.CharField(max_length=20, verbose_name='环境名称')), |
|
||||||
('code', models.CharField(max_length=20, verbose_name='环境编码')), |
|
||||||
('host', models.CharField(max_length=50, verbose_name='环境地址')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': '环境', |
|
||||||
'verbose_name_plural': '环境', |
|
||||||
'db_table': 'ec_env', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='EcRequestLog', |
|
||||||
fields=[ |
|
||||||
('id', models.IntegerField(primary_key=True, serialize=False)), |
|
||||||
('ip', models.CharField(max_length=20, verbose_name='请求ip')), |
|
||||||
('env', models.CharField(max_length=10, verbose_name='环境')), |
|
||||||
('request', models.CharField(max_length=500, verbose_name='请求链接')), |
|
||||||
('response', models.CharField(max_length=10000, verbose_name='返回值')), |
|
||||||
('request_datetime', models.DateTimeField(verbose_name='请求发送时间')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': '请求日志', |
|
||||||
'verbose_name_plural': '请求日志', |
|
||||||
'db_table': 'ec_request_log', |
|
||||||
}, |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-05-23 08:02 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0001_initial'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AddField( |
|
||||||
model_name='ecenv', |
|
||||||
name='type', |
|
||||||
field=models.CharField(default='', max_length=20, verbose_name='会员非会员'), |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-05-23 08:34 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0002_ecenv_type'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AddField( |
|
||||||
model_name='ecchannel', |
|
||||||
name='type', |
|
||||||
field=models.CharField(default='', max_length=20, verbose_name='会员非会员'), |
|
||||||
), |
|
||||||
] |
|
@ -1,27 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-05-23 09:48 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0003_ecchannel_type'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.RemoveField( |
|
||||||
model_name='ecapi', |
|
||||||
name='m_path', |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='ecapi', |
|
||||||
name='type', |
|
||||||
field=models.CharField(default='', max_length=20, verbose_name='会员非会员'), |
|
||||||
), |
|
||||||
migrations.AlterField( |
|
||||||
model_name='ecapi', |
|
||||||
name='path', |
|
||||||
field=models.CharField(max_length=50, verbose_name='接口地址'), |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-05-23 10:23 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0004_remove_ecapi_m_path_ecapi_type_alter_ecapi_path'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AlterField( |
|
||||||
model_name='ecapiparams', |
|
||||||
name='value', |
|
||||||
field=models.CharField(blank=True, max_length=500, null=True, verbose_name='参数值模版'), |
|
||||||
), |
|
||||||
] |
|
@ -1,22 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-06-07 03:15 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0005_alter_ecapiparams_value'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.RenameModel( |
|
||||||
old_name='CinemaIds', |
|
||||||
new_name='EcCinemaIds', |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='ecapigroup', |
|
||||||
name='type', |
|
||||||
field=models.CharField(default='', max_length=20, verbose_name='会员非会员'), |
|
||||||
), |
|
||||||
] |
|
@ -1,22 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-06-07 03:18 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0006_rename_cinemaids_eccinemaids_ecapigroup_type'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.RemoveField( |
|
||||||
model_name='ecapigroup', |
|
||||||
name='order', |
|
||||||
), |
|
||||||
migrations.AlterField( |
|
||||||
model_name='ecapigroup', |
|
||||||
name='api_id', |
|
||||||
field=models.CharField(max_length=2000, verbose_name='接口id'), |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-07-19 02:23 |
|
||||||
|
|
||||||
from django.db import migrations |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0007_remove_ecapigroup_order_alter_ecapigroup_api_id'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.RenameField( |
|
||||||
model_name='ecapi', |
|
||||||
old_name='desc', |
|
||||||
new_name='comment', |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-07-19 02:24 |
|
||||||
|
|
||||||
from django.db import migrations |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0008_rename_desc_ecapi_comment'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.RenameField( |
|
||||||
model_name='ecapi', |
|
||||||
old_name='comment', |
|
||||||
new_name='description', |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-07-19 02:25 |
|
||||||
|
|
||||||
from django.db import migrations |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0009_rename_comment_ecapi_description'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.RenameField( |
|
||||||
model_name='ecapiparams', |
|
||||||
old_name='desc', |
|
||||||
new_name='description', |
|
||||||
), |
|
||||||
] |
|
@ -1,23 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-07-29 05:56 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0010_rename_desc_ecapiparams_description'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AlterField( |
|
||||||
model_name='ecrequestlog', |
|
||||||
name='request', |
|
||||||
field=models.CharField(max_length=5000, verbose_name='请求链接'), |
|
||||||
), |
|
||||||
migrations.AlterField( |
|
||||||
model_name='ecrequestlog', |
|
||||||
name='response', |
|
||||||
field=models.TextField(verbose_name='返回值'), |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-08-05 09:42 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0011_alter_ecrequestlog_request_and_more'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AlterField( |
|
||||||
model_name='ecapi', |
|
||||||
name='description', |
|
||||||
field=models.CharField(max_length=50, verbose_name='接口描述'), |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-08-05 10:22 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0012_alter_ecapi_description'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AlterField( |
|
||||||
model_name='ecapiparams', |
|
||||||
name='description', |
|
||||||
field=models.CharField(max_length=5000, verbose_name='参数描述'), |
|
||||||
), |
|
||||||
] |
|
@ -1,18 +0,0 @@ |
|||||||
# Generated by Django 4.2.7 on 2024-08-29 00:30 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('dspt_api', '0013_alter_ecapiparams_description'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AddField( |
|
||||||
model_name='ecapi', |
|
||||||
name='order', |
|
||||||
field=models.IntegerField(default=9999, verbose_name='显示顺序'), |
|
||||||
), |
|
||||||
] |
|
@ -1,117 +0,0 @@ |
|||||||
from django.db import models |
|
||||||
|
|
||||||
|
|
||||||
class EcChannel(models.Model): |
|
||||||
id = models.IntegerField(primary_key=True) |
|
||||||
env = models.CharField(verbose_name='环境', max_length=10, null=False) # 电商平台 dspt 自营电商 zyds |
|
||||||
name = models.CharField(verbose_name='渠道名称', max_length=20, null=False) # 电商平台 dspt 自营电商 zyds |
|
||||||
pid = models.CharField(verbose_name='渠道id', max_length=10, null=False) # pid |
|
||||||
channel_key = models.CharField(verbose_name='渠道key', max_length=20, null=False) # pid key |
|
||||||
type = models.CharField(verbose_name='会员非会员', max_length=20, default='', null=False) # 会员 member 非会员 nonmember |
|
||||||
|
|
||||||
def __str__(self): |
|
||||||
return self.name |
|
||||||
|
|
||||||
class Meta: |
|
||||||
verbose_name = '渠道' |
|
||||||
verbose_name_plural = '渠道' |
|
||||||
db_table = 'ec_channel' |
|
||||||
|
|
||||||
|
|
||||||
class EcEnv(models.Model): |
|
||||||
id = models.IntegerField(primary_key=True) |
|
||||||
name = models.CharField(verbose_name='环境名称', max_length=20, null=False) # 电商平台 自营电商 |
|
||||||
code = models.CharField(verbose_name='环境编码', max_length=20, null=False) # 电商平台 dspt 自营电商 zyds |
|
||||||
type = models.CharField(verbose_name='会员非会员', max_length=20, default='', null=False) # 会员 member 非会员 nonmember |
|
||||||
host = models.CharField(verbose_name='环境地址', max_length=50, null=False) # 环境地址 |
|
||||||
|
|
||||||
def __str__(self): |
|
||||||
return self.name |
|
||||||
|
|
||||||
class Meta: |
|
||||||
verbose_name = '环境' |
|
||||||
verbose_name_plural = '环境' |
|
||||||
db_table = 'ec_env' |
|
||||||
|
|
||||||
|
|
||||||
class EcApi(models.Model): |
|
||||||
id = models.IntegerField(primary_key=True) |
|
||||||
description = models.CharField(verbose_name='接口描述', max_length=50, null=False) |
|
||||||
path = models.CharField(verbose_name='接口地址', max_length=50, null=False) |
|
||||||
type = models.CharField(verbose_name='会员非会员', max_length=20, default='', null=False) # 会员 member 非会员 nonmember |
|
||||||
order = models.IntegerField(verbose_name='显示顺序', default=9999) |
|
||||||
|
|
||||||
def __str__(self): |
|
||||||
return self.description |
|
||||||
|
|
||||||
class Meta: |
|
||||||
verbose_name = '接口' |
|
||||||
verbose_name_plural = '接口' |
|
||||||
db_table = 'ec_api' |
|
||||||
|
|
||||||
|
|
||||||
class EcApiParams(models.Model): |
|
||||||
id = models.IntegerField(primary_key=True) |
|
||||||
api_id = models.IntegerField(verbose_name='接口id', null=False) |
|
||||||
param = models.CharField(verbose_name='参数', max_length=50, null=False) |
|
||||||
description = models.CharField(verbose_name='参数描述', max_length=5000, null=False) |
|
||||||
value = models.CharField(verbose_name='参数值模版', max_length=500, null=True, blank=True) |
|
||||||
is_checked = models.BooleanField(verbose_name='是否默认勾选', null=False, default=False) |
|
||||||
is_request = models.BooleanField(verbose_name='是否是必选项', null=False, default=False) |
|
||||||
|
|
||||||
def __str__(self): |
|
||||||
return self.param |
|
||||||
|
|
||||||
class Meta: |
|
||||||
verbose_name = '接口参数' |
|
||||||
verbose_name_plural = '接口参数' |
|
||||||
db_table = 'ec_api_params' |
|
||||||
|
|
||||||
|
|
||||||
class EcCinemaIds(models.Model): |
|
||||||
id = models.IntegerField(primary_key=True) |
|
||||||
env = models.CharField(verbose_name='环境', max_length=10, null=False) # 电商平台 dspt 自营电商 zyds |
|
||||||
cinema_id = models.IntegerField(verbose_name='影院id', null=False) |
|
||||||
cinema_name = models.CharField(verbose_name='影院名称', max_length=30, null=False) |
|
||||||
cid = models.CharField(verbose_name='影院cid', max_length=10, null=False) |
|
||||||
|
|
||||||
def __str__(self): |
|
||||||
return self.cid |
|
||||||
|
|
||||||
class Meta: |
|
||||||
verbose_name = '影院cid' |
|
||||||
verbose_name_plural = '影院cid' |
|
||||||
db_table = 'ec_cinema_cid' |
|
||||||
|
|
||||||
|
|
||||||
class EcRequestLog(models.Model): |
|
||||||
id = models.IntegerField(primary_key=True) |
|
||||||
ip = models.CharField(verbose_name='请求ip', max_length=20, null=False) # 接口测试人的ip |
|
||||||
env = models.CharField(verbose_name='环境', max_length=10, null=False) # 电商平台 dspt 自营电商 zyds |
|
||||||
request = models.CharField(verbose_name='请求链接', max_length=5000, null=False) |
|
||||||
response = models.TextField(verbose_name='返回值', null=False) |
|
||||||
request_datetime = models.DateTimeField(verbose_name='请求发送时间', null=False) |
|
||||||
|
|
||||||
def __str__(self): |
|
||||||
return self.ip |
|
||||||
|
|
||||||
class Meta: |
|
||||||
verbose_name = '请求日志' |
|
||||||
verbose_name_plural = '请求日志' |
|
||||||
db_table = 'ec_request_log' |
|
||||||
|
|
||||||
|
|
||||||
class EcApiGroup(models.Model): |
|
||||||
id = models.IntegerField(primary_key=True) |
|
||||||
group_id = models.CharField(verbose_name='接口分组id', max_length=20, null=False) |
|
||||||
name = models.CharField(verbose_name='接口分组id', max_length=20, null=False) |
|
||||||
api_id = models.CharField(verbose_name='接口id', max_length=2000, null=False) |
|
||||||
type = models.CharField(verbose_name='会员非会员', max_length=20, default='', null=False) # 会员 member 非会员 nonmember |
|
||||||
|
|
||||||
def __str__(self): |
|
||||||
return self.name |
|
||||||
|
|
||||||
class Meta: |
|
||||||
verbose_name = '接口组' |
|
||||||
verbose_name_plural = '接口组' |
|
||||||
db_table = 'ec_api_group' |
|
@ -1,45 +0,0 @@ |
|||||||
from rest_framework import serializers |
|
||||||
|
|
||||||
from dspt_api.models import EcChannel, EcEnv, EcApi, EcApiParams, EcCinemaIds, EcRequestLog, EcApiGroup |
|
||||||
|
|
||||||
|
|
||||||
class EcChannelSerializer(serializers.ModelSerializer): |
|
||||||
class Meta: |
|
||||||
model = EcChannel |
|
||||||
fields = '__all__' |
|
||||||
|
|
||||||
|
|
||||||
class EcEnvSerializer(serializers.ModelSerializer): |
|
||||||
class Meta: |
|
||||||
model = EcEnv |
|
||||||
fields = '__all__' |
|
||||||
|
|
||||||
|
|
||||||
class EcApiSerializer(serializers.ModelSerializer): |
|
||||||
class Meta: |
|
||||||
model = EcApi |
|
||||||
fields = '__all__' |
|
||||||
|
|
||||||
|
|
||||||
class EcApiParamsSerializer(serializers.ModelSerializer): |
|
||||||
class Meta: |
|
||||||
model = EcApiParams |
|
||||||
fields = '__all__' |
|
||||||
|
|
||||||
|
|
||||||
class EcCinemaIdsSerializer(serializers.ModelSerializer): |
|
||||||
class Meta: |
|
||||||
model = EcCinemaIds |
|
||||||
fields = '__all__' |
|
||||||
|
|
||||||
|
|
||||||
class EcRequestLogSerializer(serializers.ModelSerializer): |
|
||||||
class Meta: |
|
||||||
model = EcRequestLog |
|
||||||
fields = '__all__' |
|
||||||
|
|
||||||
|
|
||||||
class EcApiGroupSerializer(serializers.ModelSerializer): |
|
||||||
class Meta: |
|
||||||
model = EcApiGroup |
|
||||||
fields = '__all__' |
|
@ -1,3 +0,0 @@ |
|||||||
from django.test import TestCase |
|
||||||
|
|
||||||
# Create your tests here. |
|
@ -1,20 +0,0 @@ |
|||||||
from dspt_api import views |
|
||||||
from django.urls import path |
|
||||||
|
|
||||||
urlpatterns = [ |
|
||||||
path('get_channel', views.EcChannelViewSet.as_view({'get': 'list'}), name='get_ec_channel'), |
|
||||||
path('get_env', views.EcEnvViewSet.as_view({'get': 'list'}), name='get_ec_env'), |
|
||||||
path('get_api', views.EcApiViewSet.as_view({'get': 'list'}), name='get_ec_api'), |
|
||||||
path('get_api_params', views.EcApiParamsViewSet.as_view({'get': 'list'}), name='get_ec_api_params'), |
|
||||||
path('get_cinema_ids', views.EcCinemaIdsViewSet.as_view({'get': 'list'}), name='get_ec_cinema_ids'), |
|
||||||
path('get_request_log', views.EcRequestLogViewSet.as_view({'get': 'list'}), name='get_ec_request_log'), |
|
||||||
path('get_api_group', views.EcApiGroupViewSet.as_view({'get': 'list'}), name='get_ec_api_group'), |
|
||||||
path('get_params_by_type', views.get_api_params_by_api_type), |
|
||||||
path('get_url', views.general_api_url), |
|
||||||
path('send_request', views.send_request), |
|
||||||
path('get_suggest_params', views.get_suggest_params_by_api), |
|
||||||
path('get_suggest_params_timestamp', views.get_suggest_params_timestamp_by_api), |
|
||||||
path('set_user_data', views.set_user_select_data), |
|
||||||
path('clear_user_data', views.clear_user_select_data), |
|
||||||
path('get_quan', views.get_quan), |
|
||||||
] |
|
@ -1,41 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.goods_list import get_goods_list |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiCinemaGoodsPic(object): |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# play_id play_update_time |
|
||||||
request_api = {'name': '3.2.1 获取卖品列表', 'path': 'cinema/goods'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, redis_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result: |
|
||||||
goods_list = get_goods_list(redis_data, _format) |
|
||||||
goods = random.choice(goods_list) |
|
||||||
goods_id = goods['id'] |
|
||||||
goods_type = goods['type'] |
|
||||||
return [ |
|
||||||
{'param': 'goods_id', 'value': goods_id, 'is_checked': True, 'result': True, 'timestamp': _timestamp}, |
|
||||||
{'param': 'type', 'value': goods_type, 'is_checked': True, 'result': True, 'timestamp': _timestamp}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
return [ |
|
||||||
{'param': 'goods_id', 'value': redis_data + request_api["name"], 'is_checked': True, 'result': False, |
|
||||||
'timestamp': _timestamp}, |
|
||||||
{'param': 'type', 'value': redis_data + request_api["name"], 'is_checked': True, 'result': False, |
|
||||||
'timestamp': _timestamp}] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# play_id play_update_time |
|
||||||
request_api = {'name': '3.2.1 获取卖品列表', 'path': 'cinema/goods'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, redis_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
return _timestamp if result else 0 |
|
@ -1,33 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiCinemaHallSeats: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# hall_id |
|
||||||
request_api = {'name': '3.1.3 获取影厅列表', 'path': 'cinema/halls'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, hall_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result: |
|
||||||
hall_id = hall_data['id'] |
|
||||||
return [{'param': 'hall_id', 'value': hall_id, 'is_checked': True, 'result': True, 'timestamp': _timestamp}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
return [ |
|
||||||
{'param': 'hall_id', 'value': hall_data + request_api["name"], 'is_checked': True, 'result': False, |
|
||||||
'timestamp': _timestamp}] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# hall_id |
|
||||||
request_api = {'name': '3.1.3 获取影厅列表', 'path': 'cinema/halls'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, hall_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
return _timestamp if result else 0 |
|
@ -1,29 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
import datetime |
|
||||||
|
|
||||||
|
|
||||||
class ApiCinemaPlaysIncrement: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# start |
|
||||||
request_api = {'name': '3.1.6 获取放映计划列表(增量)', 'path': 'cinema/plays-increment'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, redis_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
# 生成默认值 |
|
||||||
start = redis_data['nextSyncStartTime'] if result else datetime.datetime.strftime(datetime.datetime.now(), |
|
||||||
'%Y-%m-%d') + ' 06:00:00' |
|
||||||
return [{'param': 'start', 'value': start, 'is_checked': True, 'result': True, 'timestamp': _timestamp}] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# start |
|
||||||
request_api = {'name': '3.1.6 获取放映计划列表(增量)', 'path': 'cinema/plays-increment'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, redis_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
return _timestamp if result else 0 |
|
@ -1,53 +0,0 @@ |
|||||||
import time |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.handle_ecard import get_ecard |
|
||||||
|
|
||||||
|
|
||||||
class ApiEcardDetail: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
_now = int(time.time() * 1000) |
|
||||||
# 获取本地记录的联名卡 |
|
||||||
if ecard_num := get_ecard(self.ip, self.env, self.pid, self.cid): |
|
||||||
return [{'param': 'ecard_number', 'value': ecard_num,'is_checked': True, 'result': True,'timestamp': _now}] |
|
||||||
# ecard_number |
|
||||||
request_api_ec_1 = {'name': '3.4.4 获取联名卡详情', 'path': 'ecard/detail'} |
|
||||||
redis_key_api_ec_1 = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api_ec_1["path"]}' |
|
||||||
request_api_ec_2 = {'name': '3.4.2 联名卡开卡', 'path': 'ecard/regist'} |
|
||||||
redis_key_api_ec_2 = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api_ec_2["path"]}' |
|
||||||
result_ec_1, _format_ec_1, redis_data_ec_1, _timestamp_ec_1 = get_data_from_redis(redis_key_api_ec_1) |
|
||||||
result_ec_2, _format_ec_2, redis_data_ec_2, _timestamp_ec_2 = get_data_from_redis(redis_key_api_ec_2) |
|
||||||
ecard_number_result = False |
|
||||||
ecard_number = False |
|
||||||
if result_ec_2: |
|
||||||
print('redis_data_ec_2', redis_data_ec_2) |
|
||||||
ecard_number_ec_2 = {'param': 'ecard_number', 'value': redis_data_ec_2['ecardNumber'], |
|
||||||
'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp_ec_2} |
|
||||||
ecard_number = ecard_number_ec_2 |
|
||||||
ecard_number_result = True |
|
||||||
if result_ec_1: |
|
||||||
ecard_number_ec_1 = {'param': 'ecard_number', 'value': redis_data_ec_1['ecardNumber'], |
|
||||||
'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp_ec_1} |
|
||||||
ecard_number = ecard_number_ec_1 |
|
||||||
ecard_number_result = True |
|
||||||
if result_ec_1 and result_ec_2: |
|
||||||
ecard_number = ecard_number_ec_1 if _timestamp_ec_1 >= _timestamp_ec_2 else ecard_number_ec_2 |
|
||||||
|
|
||||||
if ecard_number_result: |
|
||||||
return [ecard_number] |
|
||||||
else: |
|
||||||
return [{'param': 'ecard_number', 'value': redis_data_ec_1 + request_api_ec_1["name"], 'is_checked': True, |
|
||||||
'result': True, |
|
||||||
'timestamp': _now},] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,62 +0,0 @@ |
|||||||
import time |
|
||||||
from django_redis import get_redis_connection |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
|
|
||||||
|
|
||||||
class ApiEcardOrderDetail: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
_now = int(time.time() * 1000) |
|
||||||
# partner_order_no |
|
||||||
request_renew = {'name': '3.4.3 联名卡续卡', 'path': 'ecard/renew'} |
|
||||||
redis_key_renew_order_num = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_renew["path"]}_order_num' |
|
||||||
redis_key_renew = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_renew["path"]}' |
|
||||||
|
|
||||||
request_regist = {'name': '3.4.2 联名卡开卡', 'path': 'ecard/regist'} |
|
||||||
redis_key_regist_order_num = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_regist["path"]}_order_num' |
|
||||||
redis_key_regist = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_regist["path"]}' |
|
||||||
|
|
||||||
result_renew, _format__renew, redis_data_renew, _timestamp_renew = get_data_from_redis(redis_key_renew) |
|
||||||
result_regist, _format_regist, redis_data_regist, _timestamp_regist = get_data_from_redis(redis_key_regist) |
|
||||||
|
|
||||||
redis_conn = get_redis_connection() |
|
||||||
order_num_renew = redis_conn.get(redis_key_renew_order_num) |
|
||||||
print('order_num_renew', order_num_renew) |
|
||||||
order_num_regist = redis_conn.get(redis_key_regist_order_num) |
|
||||||
print('order_num_regist', order_num_regist) |
|
||||||
|
|
||||||
order_num_result = [ |
|
||||||
{'param': 'partner_order_no', 'value': '请手动输入参数!', 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _now}, |
|
||||||
{'param': 'order_type', 'value': '请手动输入参数!', 'is_checked': True, 'result': True, 'timestamp': _now}] |
|
||||||
|
|
||||||
if order_num_regist: |
|
||||||
order_num_result_regist = [ |
|
||||||
{'param': 'partner_order_no', 'value': str(order_num_regist, encoding='utf-8'), 'is_checked': True, |
|
||||||
'result': True, 'timestamp': _now}, |
|
||||||
{'param': 'order_type', 'value': '1', 'is_checked': True, 'result': True, 'timestamp': _now}] |
|
||||||
if order_num_renew: |
|
||||||
order_num_result_renew = [ |
|
||||||
{'param': 'partner_order_no', 'value': str(order_num_renew, encoding='utf-8'), 'is_checked': True, |
|
||||||
'result': True, |
|
||||||
'timestamp': _now}, |
|
||||||
{'param': 'order_type', 'value': '2', 'is_checked': True, 'result': True, 'timestamp': _now}] |
|
||||||
|
|
||||||
if order_num_renew: |
|
||||||
order_num_result = order_num_result_renew |
|
||||||
if order_num_regist: |
|
||||||
order_num_result = order_num_result_regist |
|
||||||
if order_num_renew and order_num_regist: |
|
||||||
order_num_result = order_num_result_regist if _timestamp_regist > _timestamp_renew else order_num_result_renew |
|
||||||
|
|
||||||
return order_num_result |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,30 +0,0 @@ |
|||||||
import time |
|
||||||
from django_redis import get_redis_connection |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.api.ecard_order_detail import ApiEcardOrderDetail |
|
||||||
from dspt_api.util.general.handle_ecard import get_ecard |
|
||||||
|
|
||||||
|
|
||||||
class ApiEcardRefund: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.kwargs = kwargs |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# source_order_no |
|
||||||
source_order_no = ApiEcardOrderDetail(**self.kwargs).get_suggestion()[0] |
|
||||||
# partner_order_no |
|
||||||
order_num = general_order_num('REF', self.api, self.member_type, self.ip, self.env, self.pid, self.cid) |
|
||||||
return [{'param': 'source_order_no', 'value': source_order_no['value'], 'is_checked': True, 'result': True, |
|
||||||
'timestamp': int(time.time() * 1000)}, |
|
||||||
{'param': 'partner_order_no', 'value': order_num, 'is_checked': True, 'result': True, |
|
||||||
'timestamp': int(time.time() * 1000)}] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,45 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiEcardRegist: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
request_api = {'name': '3.4.1 获取联名卡等级', 'path': 'ecard/ecard-levels'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, level_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result: |
|
||||||
level_no = level_data['ecardLevelNo'] |
|
||||||
fee = level_data['registerFee'] |
|
||||||
order_num = general_order_num('REG', self.api, self.member_type, self.ip, self.env, self.pid, self.cid) |
|
||||||
return [ |
|
||||||
{'param': 'mobile', 'value': 18688886666, 'is_checked': True, 'result': True, 'timestamp': _timestamp}, |
|
||||||
{'param': 'register_fee', 'value': fee, 'is_checked': True, 'result': True, 'timestamp': _timestamp}, |
|
||||||
{'param': 'ecard_level_no', 'value': level_no, 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}, |
|
||||||
{'param': 'partner_order_no', 'value': order_num, 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
return [ |
|
||||||
{'param': 'mobile', 'value': 18688886666, 'is_checked': True, 'result': True, 'timestamp': _timestamp}, |
|
||||||
{'param': 'register_fee', 'value': level_data + request_api["name"], 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}, |
|
||||||
{'param': 'ecard_level_no', 'value': level_data + request_api["name"], 'is_checked': True, |
|
||||||
'result': True, |
|
||||||
'timestamp': _timestamp}, |
|
||||||
{'param': 'partner_order_no', 'value': '', 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp} |
|
||||||
] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,83 +0,0 @@ |
|||||||
import random |
|
||||||
import time |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.handle_ecard import get_ecard, get_ecard_renew_fee |
|
||||||
|
|
||||||
|
|
||||||
class ApiEcardRenew: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
_now = int(time.time() * 1000) |
|
||||||
# ecard_number |
|
||||||
# 获取本地记录的联名卡 |
|
||||||
ecard_number_result = False |
|
||||||
ecard_number = False |
|
||||||
if ecard_num := get_ecard(self.ip, self.env, self.pid, self.cid): |
|
||||||
ecard_number = {'param': 'ecard_number', 'value': ecard_num, 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _now} |
|
||||||
ecard_number_result = True |
|
||||||
else: |
|
||||||
request_api_ec_1 = {'name': '3.4.4 获取联名卡详情', 'path': 'ecard/detail'} |
|
||||||
redis_key_api_ec_1 = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api_ec_1["path"]}' |
|
||||||
request_api_ec_2 = {'name': '3.4.2 联名卡开卡', 'path': 'ecard/regist'} |
|
||||||
redis_key_api_ec_2 = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api_ec_2["path"]}' |
|
||||||
result_ec_1, _format_ec_1, redis_data_ec_1, _timestamp_ec_1 = get_data_from_redis(redis_key_api_ec_1) |
|
||||||
result_ec_2, _format_ec_2, redis_data_ec_2, _timestamp_ec_2 = get_data_from_redis(redis_key_api_ec_2) |
|
||||||
|
|
||||||
if result_ec_2: |
|
||||||
print('redis_data_ec_2', redis_data_ec_2) |
|
||||||
ecard_number_ec_2 = {'param': 'ecard_number', 'value': redis_data_ec_2['ecardNumber'], |
|
||||||
'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp_ec_2} |
|
||||||
ecard_number = ecard_number_ec_2 |
|
||||||
ecard_number_result = True |
|
||||||
if result_ec_1: |
|
||||||
ecard_number_ec_1 = {'param': 'ecard_number', 'value': redis_data_ec_1['ecardNumber'], |
|
||||||
'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp_ec_1} |
|
||||||
ecard_number = ecard_number_ec_1 |
|
||||||
ecard_number_result = True |
|
||||||
if result_ec_1 and result_ec_2: |
|
||||||
ecard_number = ecard_number_ec_1 if _timestamp_ec_1 >= _timestamp_ec_2 else ecard_number_ec_2 |
|
||||||
|
|
||||||
# renew_fee |
|
||||||
result_renew_fee = False |
|
||||||
if ecard_number is not False: |
|
||||||
fee = get_ecard_renew_fee(ecard_number['value']) |
|
||||||
if fee is not None: |
|
||||||
renew_fee = {'param': 'renew_fee', 'value': fee, |
|
||||||
'is_checked': True, 'result': True, |
|
||||||
'timestamp': _now} |
|
||||||
result_renew_fee = True |
|
||||||
else: |
|
||||||
renew_fee = {'param': 'renew_fee', 'value': '此卡级别不能续卡', |
|
||||||
'is_checked': True, 'result': True, |
|
||||||
'timestamp': _now} |
|
||||||
result_renew_fee = True |
|
||||||
|
|
||||||
# partner_order_no |
|
||||||
order_num = general_order_num('REN', self.api, self.member_type, self.ip, self.env, self.pid, self.cid) |
|
||||||
partner_order_no = {'param': 'partner_order_no', 'value': order_num, 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _now} |
|
||||||
|
|
||||||
if ecard_number_result and result_renew_fee: |
|
||||||
return [ecard_number, renew_fee, partner_order_no] |
|
||||||
else: |
|
||||||
return [{'param': 'ecard_number', 'value': redis_data_ec_1 + request_api_ec_1["name"], 'is_checked': True, |
|
||||||
'result': True, |
|
||||||
'timestamp': _now}, |
|
||||||
{'param': 'renew_fee', 'value': '请手动输入参数!', 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _now}, |
|
||||||
partner_order_no |
|
||||||
] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,29 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.api.seat_lock import ApiSeatLock |
|
||||||
from dspt_api.util.api.ecard_detail import ApiEcardDetail |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiEcardSeatPrice: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.kwargs = kwargs |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# 获取 play_id seat_idplay_update_time |
|
||||||
params = ApiSeatLock(**self.kwargs).get_suggestion() |
|
||||||
# 获取 ecard_number |
|
||||||
ecard_number = ApiEcardDetail(**self.kwargs).get_suggestion() |
|
||||||
return params + ecard_number |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# 获取 play_id seat_idplay_update_time |
|
||||||
params_ts = ApiSeatLock(**self.kwargs).get_timestamp() |
|
||||||
# 获取 ecard_number |
|
||||||
ecard_number_ts = ApiEcardDetail(**self.kwargs).get_timestamp() |
|
||||||
return params_ts if params_ts > ecard_number_ts else ecard_number_ts |
|
@ -1,52 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
""" |
|
||||||
UPDATE cinema_common_info SET cinema_common_info_val = '[{"channel_name":"ziying","shelf_id":"1"}]' WHERE cinema_common_info_key = 'third_channel_autosell_config'; |
|
||||||
""" |
|
||||||
|
|
||||||
|
|
||||||
class ApiGoodsDeduct: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data) |
|
||||||
self.handle() |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 获取 ticket_flag |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_lock_buy = {'name': '3.3.3 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
result_lock_buy, _format_lock_buy, ticket_flag_lock_buy, _timestamp_lock_buy = get_data_from_redis( |
|
||||||
redis_key_api_lock_buy) |
|
||||||
if not result_lock_buy: |
|
||||||
self.add_param('center_flag', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('center_flag', ticket_flag_lock_buy['ticketFlag1'] + ticket_flag_lock_buy['ticketFlag2']) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,66 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_goods import general_goods_params |
|
||||||
from dspt_api.util.general.handle_ecard import get_ecard |
|
||||||
import time |
|
||||||
import random |
|
||||||
import json |
|
||||||
|
|
||||||
|
|
||||||
class ApiOrderBuyGoods: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# 通用字段 |
|
||||||
self.add_param('mobile', '18688886666', timestamp=1000000000000) |
|
||||||
_partner_buy_ticket_id = general_order_num('BUY_G', self.api, self.member_type, self.ip, self.env, self.pid, |
|
||||||
self.cid) |
|
||||||
self.add_param('partner_buy_ticket_id', _partner_buy_ticket_id) |
|
||||||
|
|
||||||
# 联名卡卡号 |
|
||||||
ecard_num = None |
|
||||||
if self.pay_type == 'ecard': |
|
||||||
ecard_num = get_ecard(self.ip, self.env, self.pid, self.cid) |
|
||||||
self.add_param('ecard_number', ecard_num, timestamp=1000000000000) |
|
||||||
|
|
||||||
self.goods() |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def goods(self): |
|
||||||
delivery_appoint_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time() + 5 * 60)) |
|
||||||
_good_result, _goods_field, _goods_cash, _quan, _goods_timestamp = general_goods_params(self.pay_type, |
|
||||||
self.user_data) |
|
||||||
if _good_result is False: |
|
||||||
self.add_param('goods', '请手动输入参数,或先请求接口:3.2.1 获取卖品列表', timestamp=_goods_timestamp) |
|
||||||
self.add_param('cash', '请手动输入参数,或先请求接口:3.2.1 获取卖品列表', timestamp=_goods_timestamp) |
|
||||||
return False |
|
||||||
self.add_param('goods', json.dumps(_goods_field), timestamp=_goods_timestamp) |
|
||||||
self.add_param('cash', _goods_cash, timestamp=_goods_timestamp) |
|
||||||
self.add_param('delivery_type', '2', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
self.add_param('delivery_location', '1号厅', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
self.add_param('delivery_appoint_time', delivery_appoint_time, is_checked=False, timestamp=_goods_timestamp) |
|
||||||
self.add_param('contact_number', '18688886666', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,4 +0,0 @@ |
|||||||
from dspt_api.util.api.order_ticket_flag import ApiOrderTicketFlag |
|
||||||
|
|
||||||
class ApiOrderInfo(ApiOrderTicketFlag): |
|
||||||
pass |
|
@ -1,46 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_param_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiOrderStatus: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data) |
|
||||||
self.handle() |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 获取 ticket_flag |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_lock_buy = {'name': '3.3.3 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
result_lock_buy = get_param_from_redis(redis_key_api_lock_buy) |
|
||||||
if not result_lock_buy: |
|
||||||
self.add_param('partner_order_id', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('partner_order_id', result_lock_buy['partner_buy_ticket_id']) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,46 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_param_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiOrderTicketFlag: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data) |
|
||||||
self.handle() |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 获取 ticket_flag |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_lock_buy = {'name': '3.3.3 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
result_lock_buy = get_param_from_redis(redis_key_api_lock_buy) |
|
||||||
if not result_lock_buy: |
|
||||||
self.add_param('partner_buy_ticket_id', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('partner_buy_ticket_id', result_lock_buy['partner_buy_ticket_id']) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,34 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from django_redis import get_redis_connection |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiPlayInfo: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# play_id |
|
||||||
request_api = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, play_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result: |
|
||||||
play_id = play_data['id'] |
|
||||||
return [{'param': 'play_id', 'value': play_id, 'is_checked': True, 'result': True, 'timestamp': _timestamp}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
return [ |
|
||||||
{'param': 'play_id', 'value': play_data + request_api["name"], 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# play_id |
|
||||||
request_api = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, redis_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
return _timestamp if result else 0 |
|
@ -1,38 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
import random |
|
||||||
import datetime |
|
||||||
|
|
||||||
|
|
||||||
class ApiPlayPeriodChangedSeats: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# play_id play_update_time |
|
||||||
request_api = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, play_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result: |
|
||||||
play_id = play_data['id'] |
|
||||||
start = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d') + ' 06:00:00' |
|
||||||
return [{'param': 'play_id', 'value': play_id, 'is_checked': True, 'result': True, 'timestamp': _timestamp}, |
|
||||||
{'param': 'start', 'value': start, 'is_checked': True, 'result': True, 'timestamp': _timestamp}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
return [ |
|
||||||
{'param': 'play_id', 'value': play_data + request_api["name"], 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}, |
|
||||||
{'param': 'start', 'value': play_data + request_api["name"], 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# play_id play_update_time |
|
||||||
request_api = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, redis_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
return _timestamp if result else 0 |
|
@ -1,33 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiPlaySeatOverview: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# play_id play_update_time |
|
||||||
request_api = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, play_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result: |
|
||||||
play_id = play_data['id'] |
|
||||||
return [{'param': 'play_id', 'value': play_id, 'is_checked': True, 'timestamp': _timestamp}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
return [ |
|
||||||
{'param': 'play_id', 'value': play_data + request_api["name"], 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# play_id play_update_time |
|
||||||
request_api = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, redis_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
return _timestamp if result else 0 |
|
@ -1,38 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiPlaySeatStatus: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# play_id play_update_time |
|
||||||
request_api = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, play_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result: |
|
||||||
play_id = play_data['id'] |
|
||||||
play_update_time = play_data['cineUpdateTime'] |
|
||||||
return [{'param': 'play_id', 'value': play_id, 'is_checked': True, 'result': True, 'timestamp': _timestamp}, |
|
||||||
{'param': 'play_update_time', 'value': play_update_time, 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
return [ |
|
||||||
{'param': 'play_id', 'value': play_data + request_api["name"], 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}, |
|
||||||
{'param': 'play_update_time', 'value': play_data + request_api["name"], 'is_checked': True, |
|
||||||
'result': True, 'timestamp': _timestamp}] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# play_id play_update_time |
|
||||||
request_api = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, redis_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
return _timestamp if result else 0 |
|
@ -1,81 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_goods import general_goods_field |
|
||||||
from dspt_api.util.general.handle_ticket import get_ticket_price |
|
||||||
import time |
|
||||||
import random |
|
||||||
import json |
|
||||||
|
|
||||||
|
|
||||||
class ApiSeatCheckCoupon: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('self.sale_type', self.sale_type) |
|
||||||
if self.sale_type == 'ticket': |
|
||||||
return self.get_play() |
|
||||||
if self.sale_type == 'goods': |
|
||||||
return self.get_goods() |
|
||||||
if self.sale_type == 'all': |
|
||||||
return self.get_play() + self.get_goods() |
|
||||||
|
|
||||||
def get_play(self): |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_' |
|
||||||
# play_id |
|
||||||
print('get_play') |
|
||||||
request_api_play = {'name': '3.1.8 获取某场次座位状态', 'path': 'cinema/plays'} |
|
||||||
redis_key_api_play = f'{redis_key_prefix}{request_api_play["path"]}' |
|
||||||
result_play, _format_play, redis_data_play, _timestamp_play = get_data_from_redis(redis_key_api_play) |
|
||||||
print('redis_data_play', redis_data_play) |
|
||||||
# seat_num |
|
||||||
request_api_seat = {'name': '3.1.5 获取放映计划列表', 'path': 'play/seat-status'} |
|
||||||
redis_key_api_seat = f'{redis_key_prefix}{request_api_seat["path"]}' |
|
||||||
result_seat, _format_seat, redis_data_seat, _timestamp_seat = get_data_from_redis(redis_key_api_seat) |
|
||||||
print('redis_data_seat', redis_data_seat) |
|
||||||
seat_num = len(redis_data_seat) if result_seat else 1 |
|
||||||
if result_play: |
|
||||||
ticket_price, service_fee = get_ticket_price(redis_data_play,None,None,True) |
|
||||||
return [{'param': 'play_id', 'value': redis_data_play['id'], 'is_checked': True, 'result': True}, |
|
||||||
{'param': 'price', 'value': ticket_price, 'is_checked': True, 'result': True}, |
|
||||||
{'param': 'seat_num', 'value': seat_num, 'is_checked': True, 'result': True}] |
|
||||||
else: |
|
||||||
return [{'param': 'play_id', 'value': redis_data_play + request_api_play["name"], 'is_checked': True, |
|
||||||
'result': True}, |
|
||||||
{'param': 'price', 'value': '0.00', 'is_checked': True, 'result': True}, |
|
||||||
{'param': 'seat_num', 'value': seat_num, 'is_checked': True, 'result': True}] |
|
||||||
|
|
||||||
def get_goods(self): |
|
||||||
request_api = {'name': '3.2.1 获取卖品列表', 'path': 'cinema/goods'} |
|
||||||
redis_key_api = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api["path"]}' |
|
||||||
result, _format, goods_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result: |
|
||||||
goods_info, cash = general_goods_field(goods_data) |
|
||||||
print('ApiSeatCheckCoupon', goods_info) |
|
||||||
coupon_goods = [self.format_goods(goods) for goods in goods_info] |
|
||||||
return [ |
|
||||||
{'param': 'goods', 'value': json.dumps(coupon_goods), 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
# redis_data + request_api["name"] |
|
||||||
return [ |
|
||||||
{'param': 'goods', 'value': goods_data + request_api["name"], 'is_checked': True, 'result': True, |
|
||||||
'timestamp': _timestamp}, ] |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def format_goods(goods): |
|
||||||
goods['goods_type'] = goods['type'] |
|
||||||
goods['sell_price'] = goods['price'] |
|
||||||
goods.pop('type') |
|
||||||
goods.pop('price') |
|
||||||
return goods |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,53 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiSeatLock: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
# play_id |
|
||||||
request_api_play = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api_play = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api_play["path"]}' |
|
||||||
result_play, _format_play, play_data, _timestamp_play = get_data_from_redis(redis_key_api_play) |
|
||||||
# seat_id |
|
||||||
request_api_seat = {'name': '3.1.8 获取某场次座位状态', 'path': 'play/seat-status'} |
|
||||||
redis_key_api_seat = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api_seat["path"]}' |
|
||||||
result_seat, _format_seat, seat_data, _timestamp_seat = get_data_from_redis(redis_key_api_seat) |
|
||||||
if result_play and result_seat: |
|
||||||
print('random.choice(redis_data_seat)', seat_data) |
|
||||||
seat_id = ','.join([seat['cineSeatId'] for seat in seat_data]) |
|
||||||
return [{'param': 'play_id', 'value': play_data['id'], 'is_checked': True, 'result': True}, |
|
||||||
{'param': 'play_update_time', 'value': play_data['cineUpdateTime'], 'is_checked': True, |
|
||||||
'result': True}, |
|
||||||
{'param': 'seat_id', 'value': seat_id, 'is_checked': True, 'result': True}] |
|
||||||
else: |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
return [ |
|
||||||
{'param': 'play_id', 'value': play_data + request_api_play["name"], 'is_checked': True, |
|
||||||
'result': True}, |
|
||||||
{'param': 'play_update_time', 'value': play_data + request_api_play["name"], 'is_checked': True, |
|
||||||
'result': True}, |
|
||||||
{'param': 'seat_id', 'value': seat_data + request_api_seat["name"], 'is_checked': True, |
|
||||||
'result': True} |
|
||||||
] |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
# play_id |
|
||||||
request_api_play = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api_play = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api_play["path"]}' |
|
||||||
result_play, _format_play, redis_data_play, _timestamp_play = get_data_from_redis(redis_key_api_play) |
|
||||||
# seat_id |
|
||||||
request_api_seat = {'name': '3.1.8 获取某场次座位状态', 'path': 'play/seat-status'} |
|
||||||
redis_key_api_seat = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}_{request_api_seat["path"]}' |
|
||||||
result_seat, _format_seat, redis_data_seat, _timestamp_seat = get_data_from_redis(redis_key_api_seat) |
|
||||||
# 处理混合结果 |
|
||||||
if result_play and result_seat: |
|
||||||
return _timestamp_play if _timestamp_play > _timestamp_seat else _timestamp_seat |
|
||||||
return 0 |
|
@ -1,109 +0,0 @@ |
|||||||
import json |
|
||||||
|
|
||||||
from twisted.mail.alias import handle |
|
||||||
|
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.handle_seat import general_seat_params |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_goods import general_goods_params |
|
||||||
from dspt_api.util.general.handle_ecard import get_ecard |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiSeatLockBuy: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
# 通用字段 |
|
||||||
self.add_param('mobile', '18688886666', timestamp=1000000000000) |
|
||||||
_partner_buy_ticket_id = general_order_num('BUY_T', self.api, self.member_type, self.ip, self.env, self.pid, |
|
||||||
self.cid) |
|
||||||
self.add_param('partner_buy_ticket_id', _partner_buy_ticket_id) |
|
||||||
|
|
||||||
# 联名卡卡号 |
|
||||||
ecard_num = None |
|
||||||
if self.pay_type == 'ecard': |
|
||||||
ecard_num = get_ecard(self.ip, self.env, self.pid, self.cid) |
|
||||||
self.add_param('ecard_number', ecard_num, timestamp=1000000000000) |
|
||||||
|
|
||||||
self.handle() |
|
||||||
print('ApiSeatLockBuy-get_suggestion', self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 处理影票部分 |
|
||||||
_ticket_result, _seat, _ticket_cash, _play_id, _play_update_time, _lock_flag, _quan, _ticket_timestamp = general_seat_params( |
|
||||||
self.pay_type, self.user_data) |
|
||||||
print('general_seat_params', _ticket_result, _seat, _ticket_cash, _play_id, _play_update_time, _lock_flag, |
|
||||||
_quan, _ticket_timestamp) |
|
||||||
if _ticket_result is False: |
|
||||||
self.add_param('play_id', '请手动输入参数,或先请求接口:3.1.5 获取放映计划列表', timestamp=_ticket_timestamp) |
|
||||||
self.add_param('seat', '请手动输入参数,或先请求接口:3.1.8 获取某场次座位状态', timestamp=_ticket_timestamp) |
|
||||||
self.add_param('lock_flag', '请手动输入参数,或先请求接口:3.3.1 座位锁定', timestamp=_ticket_timestamp) |
|
||||||
self.add_param('play_update_time', '请手动输入参数,或先请求接口:3.1.5 获取放映计划列表', |
|
||||||
timestamp=_ticket_timestamp) |
|
||||||
self.add_param('cash', '请手动输入参数,或先请求接口:3.1.5 获取放映计划列表', timestamp=_ticket_timestamp) |
|
||||||
if self.pay_type == 'ecard': |
|
||||||
self.add_param('ecard_number', '请手动输入参数,检查相关接口返回值:3.4.6 获取座位的联名卡价格', |
|
||||||
timestamp=_ticket_timestamp) |
|
||||||
if self.pay_type == 'yushouquan': |
|
||||||
self.add_param('coupons', '3.6.1添加券接口中选择的券类型为扫码券,与当前设置不符合', |
|
||||||
timestamp=_ticket_timestamp) |
|
||||||
if self.pay_type == 'equan': |
|
||||||
self.add_param('card_coupons', '3.6.1添加券接口中选择的券类型为扫码券,与当前设置不符合', |
|
||||||
timestamp=_ticket_timestamp) |
|
||||||
return False |
|
||||||
self.add_param('play_id', _play_id, timestamp=_ticket_timestamp) |
|
||||||
self.add_param('seat', _seat, timestamp=_ticket_timestamp) |
|
||||||
self.add_param('lock_flag', _lock_flag, timestamp=_ticket_timestamp) |
|
||||||
self.add_param('play_update_time', _play_update_time, timestamp=_ticket_timestamp) |
|
||||||
# 处理卖品部分 |
|
||||||
if self.sale_type == 'all': |
|
||||||
delivery_appoint_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time() + 5 * 60)) |
|
||||||
_good_result, _goods_field, _goods_cash, _quan, _goods_timestamp = general_goods_params(self.pay_type, |
|
||||||
self.user_data, |
|
||||||
_ticket_cash) |
|
||||||
print('_goods_field', _goods_field) |
|
||||||
if _good_result is False: |
|
||||||
self.add_param('goods', '请手动输入参数,或先请求接口:3.2.1 获取卖品列表', timestamp=_goods_timestamp) |
|
||||||
self.add_param('cash', '请手动输入参数,或先请求接口:3.2.1 获取卖品列表', timestamp=_goods_timestamp) |
|
||||||
return False |
|
||||||
self.add_param('goods', json.dumps(_goods_field), timestamp=_goods_timestamp) |
|
||||||
self.add_param('cash', _goods_cash, timestamp=_goods_timestamp) |
|
||||||
self.add_param('delivery_type', '2', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
self.add_param('delivery_location', '1号厅', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
self.add_param('delivery_appoint_time', delivery_appoint_time, is_checked=False, timestamp=_goods_timestamp) |
|
||||||
self.add_param('contact_number', '18688886666', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
else: |
|
||||||
self.add_param('cash', _ticket_cash, timestamp=_ticket_timestamp) |
|
||||||
# 处理券码部分 |
|
||||||
if self.pay_type == 'yushouquan': |
|
||||||
self.add_param('coupons', _quan, timestamp=_ticket_timestamp) |
|
||||||
if self.pay_type == 'equan': |
|
||||||
self.add_param('card_coupons', _quan, timestamp=_ticket_timestamp) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,61 +0,0 @@ |
|||||||
from django.utils.timezone import template_localtime |
|
||||||
from twisted.mail.alias import handle |
|
||||||
|
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class ApiSeatUnlock: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
self.handle() |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
self.handle() |
|
||||||
temp_timestamp = 0 |
|
||||||
for data in self.return_data: |
|
||||||
temp_timestamp = data['timestamp'] if data['timestamp'] > 0 else temp_timestamp |
|
||||||
return temp_timestamp |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
# 获取 play_id |
|
||||||
request_api_play = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api_play = f'{redis_key_prefix}_{request_api_play["path"]}' |
|
||||||
result_play, _format_play, data_play, _timestamp_play = get_data_from_redis(redis_key_api_play) |
|
||||||
if not result_play: |
|
||||||
self.add_param('play_id', '请手动输入参数,或先请求接口:3.1.5 获取放映计划列表') |
|
||||||
else: |
|
||||||
self.add_param('play_id', data_play['id'], timestamp=_timestamp_play) |
|
||||||
|
|
||||||
# 获取 seat_id |
|
||||||
request_api_seat = {'name': '3.1.8 获取某场次座位状态', 'path': 'play/seat-status'} |
|
||||||
redis_key_api_seat = f'{redis_key_prefix}_{request_api_seat["path"]}' |
|
||||||
result_seat, _format_seat, data_seat, _timestamp_seat = get_data_from_redis(redis_key_api_seat) |
|
||||||
if not result_seat: |
|
||||||
self.add_param('seat_id', '请手动输入参数,或先请求接口:3.1.8 获取某场次座位状态') |
|
||||||
else: |
|
||||||
seat_id = ','.join([seat['cineSeatId'] for seat in data_seat]) |
|
||||||
self.add_param('seat_id', seat_id, timestamp=_timestamp_seat) |
|
||||||
|
|
||||||
# 获取 lock_flag |
|
||||||
request_api_lock = {'name': '3.3.1 座位锁定', 'path': 'seat/lock'} |
|
||||||
redis_key_api_lock = f'{redis_key_prefix}_{request_api_lock["path"]}' |
|
||||||
result_lock, _format_lock, data_lock, _timestamp_lock = get_data_from_redis(redis_key_api_lock) |
|
||||||
if not result_lock: |
|
||||||
self.add_param('lock_flag', '请手动输入参数,或先请求接口:3.3.1 座位锁定') |
|
||||||
else: |
|
||||||
self.add_param('lock_flag', data_lock['lockFlag'], timestamp=_timestamp_lock) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,10 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
from dspt_api.util.api.ticket_print import ApiTicketPrint |
|
||||||
|
|
||||||
|
|
||||||
class ApiTicketInfo(ApiTicketPrint): |
|
||||||
pass |
|
@ -1,46 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiTicketInfoByQrcode: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data) |
|
||||||
self.handle() |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 获取 ticket_flag |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_lock_buy = {'name': '3.3.3 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
result_lock_buy, _format_lock_buy, ticket_flag_lock_buy, _timestamp_lock_buy = get_data_from_redis(redis_key_api_lock_buy) |
|
||||||
if not result_lock_buy: |
|
||||||
self.add_param('qr_code', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('qr_code', random.choice(ticket_flag_lock_buy['sellInfo'])['qrCode']) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,50 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiTicketPrint: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data) |
|
||||||
self.handle() |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 获取 ticket_flag |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_lock_buy = {'name': '3.3.3 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
print(redis_key_api_lock_buy) |
|
||||||
result_lock_buy, _format_lock_buy, ticket_flag_lock_buy, _timestamp_lock_buy = get_data_from_redis(redis_key_api_lock_buy) |
|
||||||
print('ApiTicketPrint', ticket_flag_lock_buy) |
|
||||||
if not result_lock_buy: |
|
||||||
self.add_param('ticket_flag1', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('ticket_flag2', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('ticket_flag1', ticket_flag_lock_buy['ticketFlag1']) |
|
||||||
self.add_param('ticket_flag2', ticket_flag_lock_buy['ticketFlag2']) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,54 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiTicketRefund: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data) |
|
||||||
|
|
||||||
_partner_refund_ticket_id = general_order_num('REF_T', self.api, self.member_type, self.ip, self.env, self.pid, |
|
||||||
self.cid) |
|
||||||
self.add_param('partner_refund_ticket_id', _partner_refund_ticket_id) |
|
||||||
|
|
||||||
self.handle() |
|
||||||
print('ApiTicketRefundV2-get_suggestion', self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 获取 area_info和partner_price |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_lock_buy = {'name': '3.3.3 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
result_lock_buy, _format_lock_buy, ticket_flag_lock_buy, _timestamp_lock_buy = get_data_from_redis(redis_key_api_lock_buy) |
|
||||||
if not result_lock_buy: |
|
||||||
self.add_param('ticket_flag1', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('ticket_flag2', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('ticket_flag1', ticket_flag_lock_buy['ticketFlag1']) |
|
||||||
self.add_param('ticket_flag2', ticket_flag_lock_buy['ticketFlag2']) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,52 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_param_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
import time |
|
||||||
import random |
|
||||||
|
|
||||||
|
|
||||||
class ApiTicketRefundV2: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data) |
|
||||||
|
|
||||||
_partner_refund_ticket_id = general_order_num('REF_T', self.api, self.member_type, self.ip, self.env, self.pid, |
|
||||||
self.cid) |
|
||||||
self.add_param('partner_refund_ticket_id', _partner_refund_ticket_id) |
|
||||||
|
|
||||||
self.handle() |
|
||||||
print('ApiTicketRefundV2-get_suggestion', self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 获取 area_info和partner_price |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_lock_buy = {'name': '3.3.3 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
params_lock_buy = get_param_from_redis(redis_key_api_lock_buy) |
|
||||||
if not params_lock_buy: |
|
||||||
self.add_param('partner_buy_ticket_id', '请手动输入参数,或先请求接口:3.3.3 混合下单(影票、卖品)') |
|
||||||
self.add_param('partner_buy_ticket_id', params_lock_buy['partner_buy_ticket_id']) |
|
||||||
|
|
||||||
def add_param(self, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
self.return_data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,8 +0,0 @@ |
|||||||
from xml.dom import minidom |
|
||||||
import xml.etree.ElementTree as ET |
|
||||||
|
|
||||||
def format_xml(_xml): |
|
||||||
root = ET.fromstring(_xml) |
|
||||||
dom = minidom.parseString(ET.tostring(root)) |
|
||||||
pretty_xml = dom.toprettyxml(indent="\t", newl="") |
|
||||||
return pretty_xml |
|
@ -1,110 +0,0 @@ |
|||||||
from pickletools import opcodes |
|
||||||
|
|
||||||
import pymysql |
|
||||||
from pymysql.cursors import DictCursor |
|
||||||
|
|
||||||
QUAN_SQL = sql = """ |
|
||||||
SELECT cqi.cinema_quan_name, |
|
||||||
cqi.cinema_allow_tickets_flag, |
|
||||||
cqi.cinema_tickets_pay_type , |
|
||||||
cqi.cinema_allow_retail_flag , |
|
||||||
cqi.cinema_retail_pay_type, |
|
||||||
m1.cinema_yushouquan_book_order, |
|
||||||
m1.cinema_yushouquan_encrypt_barcode |
|
||||||
FROM cinema_yushouquan_info m1 |
|
||||||
LEFT JOIN cinema_yushouquan_info m2 |
|
||||||
ON m1.cinema_yushouquan_id >m2.cinema_yushouquan_id AND m1.`cinema_yushouquan_book_order`=m2.`cinema_yushouquan_book_order` |
|
||||||
left join cinema_quan_info cqi ON |
|
||||||
cqi.cinema_quan_id = m1.cinema_quan_id |
|
||||||
where m1.cinema_yushouquan_status = '5' |
|
||||||
AND m1.cinema_yushouquan_active_flag = '1' |
|
||||||
AND cqi.card_quan_channel = '2' |
|
||||||
GROUP BY m2.`cinema_yushouquan_book_order`,m2.cinema_yushouquan_encrypt_barcode |
|
||||||
HAVING COUNT(*)<10 |
|
||||||
ORDER BY m1.cinema_yushouquan_book_order, m1.cinema_yushouquan_encrypt_barcode; |
|
||||||
""" |
|
||||||
|
|
||||||
CARD_QUAN_SQL = "SELECT cqo.card_quan_order_id, cqi.cinema_quan_name, cqo.cinema_quan_id, cqo.quan_remain_nums, cqo.cinema_dead_time FROM cine.card_quan_order cqo LEFT JOIN cine.cinema_quan_info cqi ON cqo.cinema_quan_id = cqi.cinema_quan_id WHERE cqi.card_quan_channel = '2' AND cqo.quan_remain_nums > 0 AND cqo.cinema_dead_time >= NOW() AND cqo.cinema_card_num = %s;" |
|
||||||
|
|
||||||
|
|
||||||
class GetQuan: |
|
||||||
|
|
||||||
def __init__(self, cinema_info): |
|
||||||
self.cinema_db = cinema_info |
|
||||||
|
|
||||||
def get_quan(self): |
|
||||||
db_conn = pymysql.connect(**self.cinema_db) |
|
||||||
db_cursor = db_conn.cursor(DictCursor) |
|
||||||
db_cursor.execute(QUAN_SQL) |
|
||||||
quan_list = db_cursor.fetchall() |
|
||||||
quan = [] |
|
||||||
quan_label_list = [] |
|
||||||
for q in quan_list: |
|
||||||
quan_pay_type = [] |
|
||||||
ticket = '' |
|
||||||
goods = '' |
|
||||||
if q['cinema_allow_tickets_flag'] == 1: |
|
||||||
match q['cinema_tickets_pay_type']: |
|
||||||
case 'zk': |
|
||||||
ticket = '票<折扣>' |
|
||||||
case 'dj': |
|
||||||
ticket = '票<代金>' |
|
||||||
case 'zq': |
|
||||||
ticket = '票<最低票价>' |
|
||||||
case 'dhbl': |
|
||||||
ticket = '票<兑换>' |
|
||||||
case 'zgxe': |
|
||||||
ticket = '票<最高限额>' |
|
||||||
quan_pay_type.append(ticket) |
|
||||||
if q['cinema_allow_retail_flag'] == 1: |
|
||||||
match q['cinema_retail_pay_type']: |
|
||||||
case 'zk': |
|
||||||
goods = '卖品<折扣>' |
|
||||||
case 'dj': |
|
||||||
goods = '卖品<代金>' |
|
||||||
case 'dhbl': |
|
||||||
goods = '卖品<兑换>' |
|
||||||
quan_pay_type.append(goods) |
|
||||||
quan_label_list_str = '(' + '+'.join(quan_pay_type) + ')' |
|
||||||
label = (q['cinema_quan_name'] + ' ' + quan_label_list_str + ' -> ' + q['cinema_yushouquan_book_order']) |
|
||||||
if label not in quan_label_list: |
|
||||||
quan.append({ |
|
||||||
'label': label, |
|
||||||
'value': label, |
|
||||||
'options': [{'label': q['cinema_yushouquan_encrypt_barcode'], |
|
||||||
'value': q['cinema_yushouquan_encrypt_barcode']}], |
|
||||||
}) |
|
||||||
quan_label_list.append(label) |
|
||||||
else: |
|
||||||
for item in quan: |
|
||||||
if item['label'] == label: |
|
||||||
item['options'].append({'label': q['cinema_yushouquan_encrypt_barcode'], |
|
||||||
'value': q['cinema_yushouquan_encrypt_barcode']}) |
|
||||||
|
|
||||||
|
|
||||||
# if quan['cinema_quan_name'] not in quan_dict.keys(): |
|
||||||
# quan_dict[quan['cinema_quan_name']] = { |
|
||||||
# 'rule': {'cinema_allow_tickets_flag': quan['cinema_allow_tickets_flag'], |
|
||||||
# 'cinema_tickets_pay_type': quan['cinema_tickets_pay_type'], |
|
||||||
# 'cinema_allow_retail_flag': quan['cinema_allow_retail_flag'], |
|
||||||
# 'cinema_retail_pay_type': quan['cinema_retail_pay_type']}, |
|
||||||
# 'order_num': [quan['cinema_yushouquan_book_order']], |
|
||||||
# 'order': {quan['cinema_yushouquan_book_order']: [quan['cinema_yushouquan_encrypt_barcode']]} |
|
||||||
# } |
|
||||||
# else: |
|
||||||
# if quan['cinema_yushouquan_book_order'] not in quan_dict[quan['cinema_quan_name']]['order_num']: |
|
||||||
# quan_dict[quan['cinema_quan_name']]['order_num'].append(quan['cinema_yushouquan_book_order']) |
|
||||||
# quan_dict[quan['cinema_quan_name']]['order'][quan['cinema_yushouquan_book_order']] = [ |
|
||||||
# quan['cinema_yushouquan_encrypt_barcode']] |
|
||||||
# else: |
|
||||||
# quan_dict[quan['cinema_quan_name']]['order'][quan['cinema_yushouquan_book_order']].append( |
|
||||||
# quan['cinema_yushouquan_encrypt_barcode']) |
|
||||||
|
|
||||||
return quan |
|
||||||
|
|
||||||
def get_card_quan(self, card_num): |
|
||||||
db_conn = pymysql.connect(**self.cinema_db) |
|
||||||
db_cursor = db_conn.cursor(DictCursor) |
|
||||||
db_cursor.execute(CARD_QUAN_SQL, (card_num,)) |
|
||||||
card_quan_list = db_cursor.fetchall() |
|
||||||
return card_quan_list |
|
@ -1,17 +0,0 @@ |
|||||||
import time |
|
||||||
import random |
|
||||||
from django_redis import get_redis_connection |
|
||||||
|
|
||||||
|
|
||||||
def general_order_num(prefix, api, api_type, ip, env, pid, cid): |
|
||||||
# 生成新的order_num |
|
||||||
_now = str(int(time.time() * 1000)) |
|
||||||
_rand = str(random.randint(100, 999)) |
|
||||||
order_num = prefix + _now + _rand |
|
||||||
# 注册redis写入order_num |
|
||||||
redis_conn = get_redis_connection() |
|
||||||
redis_key = f'dspt_api_{ip}_{env}_{api_type}_{pid}_{cid}_{api}_order_num' |
|
||||||
if redis_conn.get(redis_key): |
|
||||||
redis_conn.delete(redis_key) |
|
||||||
redis_conn.set(redis_key, order_num, 10 * 60 * 60) |
|
||||||
return order_num |
|
@ -1,12 +0,0 @@ |
|||||||
def get_goods_list(goods_resp, _format): |
|
||||||
goods_list = [] |
|
||||||
if _format == 'json': |
|
||||||
for goods_cate in goods_resp: |
|
||||||
goods_list = goods_list + goods_cate['goods'] |
|
||||||
if _format == 'xml': |
|
||||||
for goods_cate in goods_resp['cate']: |
|
||||||
if isinstance(goods_cate['goods']['item'], dict): |
|
||||||
goods_list.append(goods_cate['goods']['item']) |
|
||||||
else: |
|
||||||
goods_list = goods_list + goods_cate['goods']['item'] |
|
||||||
return goods_list |
|
@ -1,139 +0,0 @@ |
|||||||
from django_redis import get_redis_connection |
|
||||||
from dspt_api.models import EcChannel, EcEnv |
|
||||||
from django.db.models import Q |
|
||||||
from dspt_api.util.general.sign import Sign |
|
||||||
import requests |
|
||||||
|
|
||||||
|
|
||||||
def get_card(ip, env, pid, cid, card=None): |
|
||||||
if card is not None and card != "请手动输入会员卡号": |
|
||||||
set_card(ip, env, pid, cid, card) |
|
||||||
return True, card |
|
||||||
redis_con = get_redis_connection() |
|
||||||
redis_key = f"card_{ip}_{env}_{pid}_{cid}" |
|
||||||
print('get_card-card_num', redis_key) |
|
||||||
if redis_con.exists(redis_key): |
|
||||||
card_num = redis_con.get(redis_key) |
|
||||||
print('get_card-card_num', card_num) |
|
||||||
return True, str(card_num, encoding='utf-8') |
|
||||||
return False, '请手动输入会员卡号' |
|
||||||
|
|
||||||
|
|
||||||
def set_card(ip, env, pid, cid, card): |
|
||||||
redis_con = get_redis_connection() |
|
||||||
redis_key = f"card_{ip}_{env}_{pid}_{cid}" |
|
||||||
if redis_con.exists(redis_key): |
|
||||||
redis_con.delete(redis_key) |
|
||||||
return redis_con.set(redis_key, card) |
|
||||||
|
|
||||||
|
|
||||||
def get_card_type(env, pid, cid, card): |
|
||||||
params = { |
|
||||||
'format': 'json', |
|
||||||
'pid': pid, |
|
||||||
'cid': cid, |
|
||||||
'card': card, |
|
||||||
} |
|
||||||
|
|
||||||
try: |
|
||||||
base_url = EcEnv.objects.filter(Q(code=env) & Q(type='member')).values('host').first()['host'] |
|
||||||
except Exception as e: |
|
||||||
return False, e |
|
||||||
|
|
||||||
request_url = f"{base_url}/card/detail" |
|
||||||
|
|
||||||
try: |
|
||||||
key = EcChannel.objects.filter(Q(pid=pid) & Q(env=env)).values('channel_key').first()['channel_key'] |
|
||||||
except Exception as e: |
|
||||||
return False, e |
|
||||||
|
|
||||||
sign = Sign(key) |
|
||||||
req_params = sign.add_sig(params) |
|
||||||
|
|
||||||
response = requests.get(request_url, params=req_params) |
|
||||||
|
|
||||||
if response.json()['res']['status'] != 1: |
|
||||||
return False |
|
||||||
else: |
|
||||||
return response.json()['res']['data']['cardType'] |
|
||||||
|
|
||||||
|
|
||||||
def get_card_val(env, pid, cid, card, param): |
|
||||||
params = { |
|
||||||
'format': 'json', |
|
||||||
'pid': pid, |
|
||||||
'cid': cid, |
|
||||||
'card': card, |
|
||||||
} |
|
||||||
|
|
||||||
try: |
|
||||||
base_url = EcEnv.objects.filter(Q(code=env) & Q(type='member')).values('host').first()['host'] |
|
||||||
except Exception as e: |
|
||||||
return False, e |
|
||||||
|
|
||||||
card_request_url = f"{base_url}/card/detail" |
|
||||||
|
|
||||||
try: |
|
||||||
key = EcChannel.objects.filter(Q(pid=pid) & Q(env=env)).values('channel_key').first()['channel_key'] |
|
||||||
except Exception as e: |
|
||||||
return False, e |
|
||||||
|
|
||||||
sign = Sign(key) |
|
||||||
card_req_params = sign.add_sig(params) |
|
||||||
|
|
||||||
card_response = requests.get(card_request_url, params=card_req_params) |
|
||||||
|
|
||||||
if card_response.json()['res']['status'] != 1: |
|
||||||
return False |
|
||||||
else: |
|
||||||
return card_response.json()['res']['data'][param] |
|
||||||
|
|
||||||
|
|
||||||
def get_card_level_val(env, pid, cid, card, param): |
|
||||||
card_params = { |
|
||||||
'format': 'json', |
|
||||||
'pid': pid, |
|
||||||
'cid': cid, |
|
||||||
'card': card, |
|
||||||
} |
|
||||||
|
|
||||||
try: |
|
||||||
base_url = EcEnv.objects.filter(Q(code=env) & Q(type='member')).values('host').first()['host'] |
|
||||||
except Exception as e: |
|
||||||
return False, e |
|
||||||
|
|
||||||
card_request_url = f"{base_url}/card/detail" |
|
||||||
|
|
||||||
try: |
|
||||||
key = EcChannel.objects.filter(Q(pid=pid) & Q(env=env)).values('channel_key').first()['channel_key'] |
|
||||||
except Exception as e: |
|
||||||
return False, e |
|
||||||
|
|
||||||
sign = Sign(key) |
|
||||||
card_req_params = sign.add_sig(card_params) |
|
||||||
|
|
||||||
card_response = requests.get(card_request_url, params=card_req_params) |
|
||||||
|
|
||||||
if card_response.json()['res']['status'] != 1: |
|
||||||
return False |
|
||||||
|
|
||||||
card_level_id = card_response.json()['res']['data']['cardLevelId'] |
|
||||||
|
|
||||||
card_level_params = { |
|
||||||
'format': 'json', |
|
||||||
'pid': pid, |
|
||||||
'cid': cid, |
|
||||||
} |
|
||||||
|
|
||||||
card_level_request_url = f"{base_url}/cinema/card-level-rule" |
|
||||||
card_level_req_params = sign.add_sig(card_level_params) |
|
||||||
|
|
||||||
card_level_response = requests.get(card_level_request_url, params=card_level_req_params) |
|
||||||
|
|
||||||
if card_level_response.json()['res']['status'] != 1: |
|
||||||
return False |
|
||||||
|
|
||||||
for level in card_level_response.json()['res']['data']['rule']: |
|
||||||
if level['levelId'] == card_level_id: |
|
||||||
return level[param] |
|
||||||
return False |
|
@ -1,47 +0,0 @@ |
|||||||
from django_redis import get_redis_connection |
|
||||||
import pymysql |
|
||||||
from pymysql.cursors import DictCursor |
|
||||||
from dingxin_toolbox_drf.settings import CONFIG |
|
||||||
from env import ENV |
|
||||||
|
|
||||||
def get_ecard(ip, env, pid, cid): |
|
||||||
redis_con = get_redis_connection() |
|
||||||
redis_key = f"ecard_{ip}_{env}_{pid}_{cid}" |
|
||||||
print('get_ecard-ecard_num', redis_key) |
|
||||||
if redis_con.exists(redis_key): |
|
||||||
ecard_num = redis_con.get(redis_key) |
|
||||||
print('get_ecard-ecard_num', ecard_num) |
|
||||||
return str(ecard_num, encoding='utf-8') |
|
||||||
return False |
|
||||||
|
|
||||||
|
|
||||||
def set_ecard(ip, env, pid, cid, ecard): |
|
||||||
redis_con = get_redis_connection() |
|
||||||
redis_key = f"ecard_{ip}_{env}_{pid}_{cid}" |
|
||||||
if redis_con.exists(redis_key): |
|
||||||
redis_con.delete(redis_key) |
|
||||||
return redis_con.set(redis_key, ecard) |
|
||||||
|
|
||||||
|
|
||||||
def get_ecard_renew_fee(ecard_number): |
|
||||||
return get_ecard_info('renew_fee', ecard_number) |
|
||||||
|
|
||||||
|
|
||||||
def get_ecard_level(ecard_number): |
|
||||||
return get_ecard_info('card_level_no', ecard_number) |
|
||||||
|
|
||||||
|
|
||||||
def get_ecard_info(filed, ecard_number): |
|
||||||
ecard_server = { |
|
||||||
'host': CONFIG[ENV]['ECARD_DB']['HOST'], |
|
||||||
'user': CONFIG[ENV]['ECARD_DB']['USER'], |
|
||||||
'password': CONFIG[ENV]['ECARD_DB']['PASSWORD'], |
|
||||||
'port': CONFIG[ENV]['ECARD_DB']['PORT'], |
|
||||||
'database': CONFIG[ENV]['ECARD_DB']['NAME'], |
|
||||||
} |
|
||||||
ecard_conn = pymysql.Connect(**ecard_server) |
|
||||||
ecard_cursor = ecard_conn.cursor(DictCursor) |
|
||||||
sql = f'SELECT {filed} FROM fws_dgp_card_db.card_level WHERE card_level_no = (SELECT card_level_no FROM fws_dgp_card_db.card WHERE card_num = %s);' |
|
||||||
ecard_cursor.execute(sql, (ecard_number,)) |
|
||||||
result = ecard_cursor.fetchone()[filed] |
|
||||||
return result |
|
@ -1,4 +0,0 @@ |
|||||||
from decimal import Decimal, ROUND_HALF_UP |
|
||||||
|
|
||||||
def f2(val): |
|
||||||
return Decimal(str(val)).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP) |
|
@ -1,297 +0,0 @@ |
|||||||
from functools import reduce |
|
||||||
|
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis, get_param_from_redis |
|
||||||
from dspt_api.util.general.handle_ecard import get_ecard_level, get_ecard |
|
||||||
from dspt_api.util.general.handle_card import get_card_type |
|
||||||
from dspt_api.util.general.handle_float import f2 |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
# 将接口请求的数据中卖品信息整理成列表结构 |
|
||||||
def format_goods(_data): |
|
||||||
goods_list = [] |
|
||||||
for cate in _data['res']['data']: |
|
||||||
for g in cate['goods']: |
|
||||||
goods_list.append(g) |
|
||||||
return {'res': {'status': _data['res']['status'], 'data': goods_list}} |
|
||||||
|
|
||||||
|
|
||||||
# 将接口获取的卖品数据转化成请求参数格式 |
|
||||||
def general_goods_field(_data, ecard_level=None): |
|
||||||
params = [] |
|
||||||
total_cash = 0 |
|
||||||
for g in _data: |
|
||||||
_num = g.get('buy_num', 1) |
|
||||||
info = { |
|
||||||
'id': g['id'], |
|
||||||
'type': g['type'], |
|
||||||
'price': str(get_goods_price(g, _num, ecard_level=ecard_level)), |
|
||||||
'num': _num |
|
||||||
} |
|
||||||
if g['type'] == 'package' and g['packageType'] == '2': |
|
||||||
add_price = f2(0) |
|
||||||
optional_package = [] |
|
||||||
for key, val in g['user_select'].items(): |
|
||||||
member = [] |
|
||||||
member_id = [] |
|
||||||
for m in val['data']: |
|
||||||
if m['id'] in member_id: |
|
||||||
for item in member: |
|
||||||
if item['id'] == m['id']: |
|
||||||
item['num'] = item['num'] + 1 |
|
||||||
add_price += f2(m['addPrice']) |
|
||||||
else: |
|
||||||
member.append({'id': m['id'], 'num': 1, 'add_price': m['addPrice']}) |
|
||||||
member_id.append(m['id']) |
|
||||||
add_price += f2(m['addPrice']) |
|
||||||
optional_package.append({'index': key, 'members': member}) |
|
||||||
info['optional_package'] = optional_package |
|
||||||
info['price'] = str(f2(info['price']) + add_price) |
|
||||||
total_cash = f2(total_cash) + f2(info['price'])*f2(int(info['num'])) |
|
||||||
params.append(info) |
|
||||||
if g.get('discount1', False): |
|
||||||
total_discount = f2(0) |
|
||||||
discount_list = [] |
|
||||||
if g['discount1'] > 0: |
|
||||||
total_discount += f2(g['discount1']) |
|
||||||
discount_list.append( |
|
||||||
{"discount_price": g['discount1'], "discount_name": f"现金优惠券{str(g['discount1'])}元"}) |
|
||||||
if g['discount2'] > 0: |
|
||||||
total_discount += f2(g['discount2']) |
|
||||||
discount_list.append( |
|
||||||
{"discount_price": g['discount2'], "discount_name": f"现金优惠券{str(g['discount2'])}元"}) |
|
||||||
if len(discount_list) > 0: |
|
||||||
info['discount_price'] = str(total_discount) |
|
||||||
info['discount_detail'] = discount_list |
|
||||||
total_cash -= total_discount |
|
||||||
|
|
||||||
print('general_goods_param---------params', params) |
|
||||||
return params, str(total_cash) |
|
||||||
|
|
||||||
|
|
||||||
def get_goods_price(goods, num, ecard_level=None): |
|
||||||
price = goods.get('partnerPrice', goods['onlinePrice']) if ecard_level is None else get_ecard_price(goods, |
|
||||||
ecard_level) |
|
||||||
return f2(price) |
|
||||||
|
|
||||||
|
|
||||||
def get_ecard_price(goods, ecard_level): |
|
||||||
if ecard_price_list := goods.get('ecardPrices', False): |
|
||||||
for ecard_price_item in ecard_price_list: |
|
||||||
if ecard_price_item['ecardLevelNo'] == ecard_level: |
|
||||||
return ecard_price_item['ecardLevelPrice'] |
|
||||||
return False |
|
||||||
|
|
||||||
|
|
||||||
def general_goods_params(pay_type, data, ticket_cash=f2(0)): |
|
||||||
# 券信息 |
|
||||||
quan = '' |
|
||||||
# redis_key 前缀 |
|
||||||
redis_key_prefix = f'dspt_api_{data["ip"]}_{data["env"]}_{data["member_type"]}_{data["pid"]}_{data["cid"]}' |
|
||||||
# 获取卖品数据 |
|
||||||
request_api = {'name': '3.2.1 获取卖品列表', 'path': 'cinema/goods'} |
|
||||||
redis_key_api = f'{redis_key_prefix}_{request_api["path"]}' |
|
||||||
result, _format, goods_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result is False: |
|
||||||
return False, None, None, None, None |
|
||||||
if pay_type == 'cash': |
|
||||||
goods_field, goods_cash = general_goods_field(goods_data) |
|
||||||
goods_cash = f2(goods_cash) |
|
||||||
goods_cash += ticket_cash |
|
||||||
elif pay_type == 'ecard': |
|
||||||
ecard_num = get_ecard(data['ip'], data["env"], data["pid"], data["cid"]) |
|
||||||
ecard_level = get_ecard_level(ecard_num) |
|
||||||
goods_field, goods_cash = general_goods_field(goods_data, ecard_level) |
|
||||||
goods_cash = f2(goods_cash) |
|
||||||
goods_cash += ticket_cash |
|
||||||
elif pay_type in ['yushouquan', 'equan']: |
|
||||||
goods_field, goods_cash = general_goods_field(goods_data) |
|
||||||
# 获取券价格 |
|
||||||
request_api_yushouquan = {'name': '3.6.1 添加券', 'path': 'seat/check-coupon'} |
|
||||||
redis_key_api_yushouquan = f'{redis_key_prefix}_{request_api_yushouquan["path"]}' |
|
||||||
result_yushouquan, _format_yushouquan, cash_from_yushouquan, _timestamp_yushouquan = get_data_from_redis( |
|
||||||
redis_key_api_yushouquan) |
|
||||||
if not result_yushouquan: |
|
||||||
return False, None, None, None, None |
|
||||||
# 获取券码 |
|
||||||
req_params = get_param_from_redis(redis_key_api_yushouquan) |
|
||||||
if pay_type == 'yushouquan': |
|
||||||
quan = req_params['coupons'] if req_params.get('coupons', False) else '3.6.1添加券接口中选择的券类型为会员卡赠券,与当前设置不符合' |
|
||||||
elif pay_type == 'equan': |
|
||||||
quan = req_params['card_coupons'] if req_params.get('equan', False) else '3.6.1添加券接口中选择的券类型为扫码券,与当前设置不符合' |
|
||||||
else: |
|
||||||
quan = '请检查3.6.1添加券接口' |
|
||||||
goods_cash = cash_from_yushouquan['balance'] |
|
||||||
return True, goods_field, goods_cash, quan, _timestamp_yushouquan |
|
||||||
else: |
|
||||||
pass |
|
||||||
return True, goods_field, str(goods_cash), quan, _timestamp |
|
||||||
|
|
||||||
|
|
||||||
# 将接口获取的卖品数据转化成请求参数格式 |
|
||||||
def general_goods_field_member(_goods_data, _data): |
|
||||||
# 获取会员价 |
|
||||||
redis_key_prefix = f'dspt_api_{_data["ip"]}_{_data["env"]}_{_data["member_type"]}_{_data["pid"]}_{_data["cid"]}' |
|
||||||
request_api_get_goods_price = {'name': '3.3.2 获取卖品折扣信息', 'path': 'card/get-goods-price'} |
|
||||||
redis_key_api_get_goods_price = f'{redis_key_prefix}_{request_api_get_goods_price["path"]}' |
|
||||||
result, _format, _goods_price, _timestamp = get_data_from_redis(redis_key_api_get_goods_price, True) |
|
||||||
params = [] |
|
||||||
total_cash = 0 |
|
||||||
for g in _goods_data: |
|
||||||
_num = g.get('buy_num', 1) |
|
||||||
price = f2(g['counterPrice'] if g['cardDiscountType'] == "1" else g['onlinePrice']) |
|
||||||
if result: |
|
||||||
for gp in _goods_price: |
|
||||||
if gp['id'] == str(g['id']): |
|
||||||
price = f2(gp['discountPrice']) |
|
||||||
info = { |
|
||||||
'id': g['id'], |
|
||||||
'type': g['type'], |
|
||||||
'price': price, |
|
||||||
'num': _num |
|
||||||
} |
|
||||||
if g['type'] == 'package' and g['packageType'] == '2': |
|
||||||
add_price = f2(0) |
|
||||||
optional_package = [] |
|
||||||
for key, val in g['user_select'].items(): |
|
||||||
member = [] |
|
||||||
member_id = [] |
|
||||||
for m in val['data']: |
|
||||||
if m['id'] in member_id: |
|
||||||
for item in member: |
|
||||||
if item['id'] == m['id']: |
|
||||||
item['num'] = item['num'] + 1 |
|
||||||
add_price += f2(m['addPrice']) |
|
||||||
else: |
|
||||||
member.append({'id': m['id'], 'num': 1, 'add_price': m['addPrice']}) |
|
||||||
member_id.append(m['id']) |
|
||||||
add_price += f2(m['addPrice']) |
|
||||||
optional_package.append({'index': key, 'members': member}) |
|
||||||
info['optional_package'] = optional_package |
|
||||||
info['price'] += add_price |
|
||||||
total_cash = f2(total_cash) + f2(info['price']*info['num']) |
|
||||||
params.append(info) |
|
||||||
|
|
||||||
print('general_goods_param---------params', params) |
|
||||||
return params, total_cash |
|
||||||
|
|
||||||
|
|
||||||
def general_goods_params_member(data, pay_type, card, ticket_cash=f2(0)): |
|
||||||
# 返回值 result, goods_field, goods_card_balance_pay, goods_cash, cash, timestamp |
|
||||||
goods_card_balance_pay = 0 |
|
||||||
goods_cash = 0 |
|
||||||
third_pay = f2(ticket_cash) |
|
||||||
quan_num = int(pay_type['goods_quan']['goods_quan_num']) |
|
||||||
quan_val = f2(pay_type['goods_quan']['goods_quan_value']) |
|
||||||
quan_type = pay_type['goods_quan']['goods_quan_type'] |
|
||||||
|
|
||||||
# 获取卡类型 |
|
||||||
card_type = get_card_type(data["env"], data["pid"], data["cid"], card) |
|
||||||
if card_type is False: |
|
||||||
return_str = '此会员卡在该影院无法使用,请使用3.1.3 查询会员卡的详细信息接口查看卡信息' |
|
||||||
return False, return_str, return_str, return_str, third_pay, int(time.time() * 1000) |
|
||||||
|
|
||||||
# 券信息 |
|
||||||
quan = '' |
|
||||||
# redis_key 前缀 |
|
||||||
redis_key_prefix = f'dspt_api_{data["ip"]}_{data["env"]}_{data["member_type"]}_{data["pid"]}_{data["cid"]}' |
|
||||||
# 获取卖品数据 |
|
||||||
request_api = {'name': '3.2.1 获取卖品列表', 'path': 'cinema/goods'} |
|
||||||
redis_key_api = f'{redis_key_prefix}_{request_api["path"]}' |
|
||||||
result, _format, goods_data, _timestamp = get_data_from_redis(redis_key_api) |
|
||||||
if result is False: |
|
||||||
return False, None, None, None, third_pay, int(time.time() * 1000) |
|
||||||
|
|
||||||
goods_field_list, total_goods_val = general_goods_field_member(goods_data, data) |
|
||||||
|
|
||||||
if pay_type['select_price_type'] == 'cinema_price': |
|
||||||
goods_card_balance_pay = str(total_goods_val) |
|
||||||
if card_type == '权益卡(积分卡)': |
|
||||||
third_pay += total_goods_val |
|
||||||
return True, change_goods_price_str(goods_field_list), goods_card_balance_pay, goods_cash, third_pay, _timestamp |
|
||||||
if pay_type['select_price_type'] == 'third_price': |
|
||||||
if pay_type['goods_quan_check'] is False: |
|
||||||
goods_card_balance_pay = str(total_goods_val) |
|
||||||
if card_type == '权益卡(积分卡)': |
|
||||||
third_pay += total_goods_val |
|
||||||
return True, change_goods_price_str( |
|
||||||
goods_field_list), goods_card_balance_pay, goods_cash, third_pay, _timestamp |
|
||||||
else: |
|
||||||
quan_per_goods_list = quan_num_pre_goods(int(pay_type['goods_quan']['goods_quan_num']), |
|
||||||
len(goods_field_list)) |
|
||||||
if quan_type == '兑换券': |
|
||||||
total_goods_pay = 0 |
|
||||||
for i, goods in enumerate(goods_field_list): |
|
||||||
goods['coupons'] = [] |
|
||||||
for n in range(quan_per_goods_list[i]): |
|
||||||
goods['coupons'].append( |
|
||||||
{'name': 'Rog卖品接口兑换券', 'code': f'rog{str(time.time_ns())}{goods["id"]}', |
|
||||||
'show_price': 0, 'sell_price': 0, 'coupon_type': 1}) |
|
||||||
if n == 0: |
|
||||||
goods['price'] = f2(pay_type['goods_quan']['goods_quan_value']) |
|
||||||
else: |
|
||||||
goods['price'] += f2(pay_type['goods_quan']['goods_quan_value']) |
|
||||||
total_goods_pay += goods['price'] |
|
||||||
goods_card_balance_pay = str(total_goods_pay) |
|
||||||
if card_type == '权益卡(积分卡)': |
|
||||||
third_pay += total_goods_pay |
|
||||||
return True, change_goods_price_str( |
|
||||||
goods_field_list), goods_card_balance_pay, goods_cash, third_pay, _timestamp |
|
||||||
if quan_type == '代金券': |
|
||||||
total_quan_val = quan_val * quan_num |
|
||||||
remain_quan_val = total_quan_val |
|
||||||
total_goods_pay = 0 |
|
||||||
for i, goods in enumerate(goods_field_list): |
|
||||||
if i + 1 < len(goods_field_list): |
|
||||||
goods_val = f2(f2(goods['price']) - remain_quan_val) |
|
||||||
goods['price'] = goods_val if goods_val > 0 else 0 |
|
||||||
total_goods_pay += goods['price'] |
|
||||||
else: |
|
||||||
quan_val = f2((f2(goods['price']) / total_goods_val) * total_quan_val) |
|
||||||
remain_quan_val -= quan_val |
|
||||||
goods_val = f2(f2(goods['price']) - quan_val) |
|
||||||
goods['price'] = goods_val if goods_val > 0 else 0 |
|
||||||
total_goods_pay += goods['price'] |
|
||||||
goods_card_balance_pay = str(total_goods_pay) |
|
||||||
if card_type == '权益卡(积分卡)': |
|
||||||
third_pay += total_goods_pay |
|
||||||
return True, change_goods_price_str( |
|
||||||
goods_field_list), goods_card_balance_pay, goods_cash, third_pay, _timestamp |
|
||||||
if quan_type == '抵值兑换券': |
|
||||||
total_goods_pay = 0 |
|
||||||
total_quan_pay = 0 |
|
||||||
for i, goods in enumerate(goods_field_list): |
|
||||||
if quan_per_goods_list[i] == 0: |
|
||||||
total_goods_pay += f2(goods['price']) |
|
||||||
else: |
|
||||||
goods['coupons'] = [] |
|
||||||
for n in range(quan_per_goods_list[i]): |
|
||||||
goods['coupons'].append( |
|
||||||
{'name': 'Rog卖品接口抵值兑换券', 'code': f'rog{str(time.time_ns())}{goods["id"]}', |
|
||||||
'show_price': str(quan_val), 'sell_price': str(quan_val), 'coupon_type': 3}) |
|
||||||
if n == 0: |
|
||||||
goods['price'] = f2(quan_val) |
|
||||||
else: |
|
||||||
goods['price'] += f2(quan_val) |
|
||||||
total_quan_pay += goods['price'] |
|
||||||
goods_card_balance_pay = str(total_goods_pay) |
|
||||||
goods_cash = str(total_quan_pay) |
|
||||||
if card_type == '权益卡(积分卡)': |
|
||||||
third_pay += total_goods_pay |
|
||||||
return True, change_goods_price_str( |
|
||||||
goods_field_list), goods_card_balance_pay, goods_cash, third_pay, _timestamp |
|
||||||
return False, None, None, None, third_pay, int(time.time() * 1000) |
|
||||||
|
|
||||||
|
|
||||||
def quan_num_pre_goods(quan_total_num, goods_num): |
|
||||||
quan_average_num = int(quan_total_num / goods_num) # 计算个卖品平均用几张券 |
|
||||||
result = [quan_average_num] * goods_num # 生成每个卖品的用券数量列表 |
|
||||||
for i in range(quan_total_num % goods_num): # 用券与卖品的余数作为范围,为卖品添加券 |
|
||||||
result[i] += 1 |
|
||||||
return result |
|
||||||
|
|
||||||
|
|
||||||
def change_goods_price_str(goods_list): |
|
||||||
for goods in goods_list: |
|
||||||
goods['price'] = str(goods['price']) |
|
||||||
return goods_list |
|
@ -1,6 +0,0 @@ |
|||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
def add_param(data, field, value, is_checked=True, result=True, timestamp=int(time.time() * 1000)): |
|
||||||
data.append( |
|
||||||
{'param': field, 'value': value, 'is_checked': is_checked, 'result': result, 'timestamp': timestamp}) |
|
@ -1,65 +0,0 @@ |
|||||||
from random import random |
|
||||||
|
|
||||||
from django_redis import get_redis_connection |
|
||||||
import json |
|
||||||
import random |
|
||||||
import xmltodict |
|
||||||
|
|
||||||
|
|
||||||
# 封装方法处理从redis中获取接口数据 |
|
||||||
def get_data_from_redis(redis_key, raw=False): |
|
||||||
# 初始化redis |
|
||||||
redis_conn = get_redis_connection() |
|
||||||
# 如果有用户数据则处理用户数据 |
|
||||||
if redis_conn.exists(redis_key + '_user_data'): |
|
||||||
redis_data = json.loads(redis_conn.get(redis_key + '_user_data')) |
|
||||||
user_data = redis_data['user_data'] |
|
||||||
print('get_data_from_redis_user_data', json.dumps(user_data)) |
|
||||||
return True, redis_data['format'], user_data[0], redis_data['timestamp'] |
|
||||||
# 如果没用户数据时优先获取随机数据 |
|
||||||
if redis_conn.exists(redis_key + '_random'): |
|
||||||
redis_data = json.loads(redis_conn.get(redis_key + '_random')) |
|
||||||
user_data = redis_data['user_data'] |
|
||||||
print('get_data_from_redis_random', json.dumps(user_data)) |
|
||||||
return True, redis_data['format'], user_data[0], redis_data['timestamp'] |
|
||||||
# 没有用户数据时,随机选择数据 |
|
||||||
if redis_conn.exists(redis_key): |
|
||||||
redis_data = json.loads(redis_conn.get(redis_key)) |
|
||||||
resp_data = [] |
|
||||||
resp = redis_data['handled_data'] |
|
||||||
print('get_data_from_redis', json.dumps(redis_data['handled_data'])) |
|
||||||
resp_result = resp['res']['status'] |
|
||||||
print('resp_result', resp_result) |
|
||||||
print('resp_result-type', type(resp_result)) |
|
||||||
if str(resp_result) == '1': |
|
||||||
print('get_data_from_redis-1') |
|
||||||
resp_data = resp['res']['data'] if isinstance(resp['res']['data'], list) else [resp['res']['data']] |
|
||||||
print('get_data_from_redis-resp_data', resp_data) |
|
||||||
if str(resp_result) != '1': |
|
||||||
print('get_data_from_redis-2') |
|
||||||
return False, redis_data['format'], '请检查接口返回值或手动输入参数:', 0 |
|
||||||
if len(resp_data) == 0: |
|
||||||
print('get_data_from_redis-3') |
|
||||||
return False, redis_data['format'], '接口返回数据为空,请手动输入参数:', 0 |
|
||||||
if raw is True: |
|
||||||
return True, redis_data['format'], resp_data, redis_data['timestamp'] |
|
||||||
return True, redis_data['format'], random.choice(resp_data), redis_data['timestamp'] |
|
||||||
return False, 'json', '请手动输入参数,或先请求接口:', 0 |
|
||||||
|
|
||||||
def get_param_from_redis(redis_key): |
|
||||||
# 初始话redis |
|
||||||
redis_conn = get_redis_connection() |
|
||||||
if redis_conn.exists(redis_key): |
|
||||||
redis_data = json.loads(redis_conn.get(redis_key)) |
|
||||||
request_params = redis_data['params'] |
|
||||||
return request_params |
|
||||||
return False |
|
||||||
|
|
||||||
def get_timestamp_from_redis(redis_key): |
|
||||||
# 初始话redis |
|
||||||
redis_conn = get_redis_connection() |
|
||||||
if redis_conn.exists(redis_key): |
|
||||||
redis_data = json.loads(redis_conn.get(redis_key)) |
|
||||||
request_timestamp = redis_data['timestamp'] |
|
||||||
return request_timestamp |
|
||||||
return 0 |
|
@ -1,425 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_float import f2 |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis, get_param_from_redis |
|
||||||
from dspt_api.util.general.handle_card import get_card_type |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
def general_seat_params(pay_type, data): |
|
||||||
""" |
|
||||||
说明: |
|
||||||
支持现金、联名卡支付,电子券支付,扫码券支付 |
|
||||||
现金支付时,可以走电商渠道定价 |
|
||||||
联名卡支付时,价格取联名卡的优惠价,支付方式还是现金 |
|
||||||
电子券和扫码券都是走鼎新定价,然后通过券接口获取价格,剩余待支付的金额为现金支付 |
|
||||||
券只支持如下几种券: |
|
||||||
|
|
||||||
先从seat_lock接口获取座位价格 |
|
||||||
如果seat_lock没有获取到座位价格就到 |
|
||||||
|
|
||||||
返回 结果, seat , ticket_cash, play_id, play_update_time, lock_flag, quan, timestamp |
|
||||||
""" |
|
||||||
redis_key_prefix = f'dspt_api_{data["ip"]}_{data["env"]}_{data["member_type"]}_{data["pid"]}_{data["cid"]}' |
|
||||||
|
|
||||||
# 获取 area_info和partner_price |
|
||||||
request_api_lock = {'name': '3.3.1 座位锁定', 'path': 'seat/lock'} |
|
||||||
redis_key_api_lock = f'{redis_key_prefix}_{request_api_lock["path"]}' |
|
||||||
result_lock, _format_lock, seat_price_from_lock, _timestamp_lock = get_data_from_redis(redis_key_api_lock) |
|
||||||
if not result_lock: |
|
||||||
print('result_lock False') |
|
||||||
return False, None, None, None, None, None, None, None |
|
||||||
area_info = seat_price_from_lock['areaInfo'] if len(seat_price_from_lock['areaInfo']) > 0 else False |
|
||||||
lock_flag = seat_price_from_lock['lockFlag'] |
|
||||||
# partner_price = seat_price_from_lock['partnerPrice'] if seat_price_from_lock['partnerPrice'] is not None else False |
|
||||||
|
|
||||||
# 获取market_price |
|
||||||
request_api_play = {'name': '3.1.5 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api_play = f'{redis_key_prefix}_{request_api_play["path"]}' |
|
||||||
result_play, _format_play, seat_price_from_play, _timestamp_play = get_data_from_redis(redis_key_api_play) |
|
||||||
if not result_play: |
|
||||||
print('result_play False') |
|
||||||
return False, None, None, None, None, None, None, None |
|
||||||
market_price = seat_price_from_play['marketPrice'] |
|
||||||
play_id = seat_price_from_play['id'] |
|
||||||
play_update_time = seat_price_from_play['cineUpdateTime'] |
|
||||||
|
|
||||||
# 获取手续费 |
|
||||||
request_api_config = {'name': '3.1.2 获取单个影院配置信息', 'path': 'cinema/config'} |
|
||||||
redis_key_api_config = f'{redis_key_prefix}_{request_api_config["path"]}' |
|
||||||
result_config, _format_config, seat_price_from_config, _timestamp_config = get_data_from_redis(redis_key_api_config) |
|
||||||
if not result_config: |
|
||||||
print('result_config False') |
|
||||||
return False, None, None, None, None, None, None, None |
|
||||||
handle_fee = seat_price_from_config['handleFee'] |
|
||||||
partner_type = seat_price_from_config['partnerSubsidyType'] # 1:电商平台补贴;2:合作商补贴 |
|
||||||
|
|
||||||
# 获取座位信息 |
|
||||||
request_api_seat = {'name': '3.1.8 获取某场次座位状态', 'path': 'play/seat-status'} |
|
||||||
redis_key_api_seat = f'{redis_key_prefix}_{request_api_seat["path"]}' |
|
||||||
result_seat, _format_seat, seat_price_from_seat, _timestamp_seat = get_data_from_redis(redis_key_api_seat) |
|
||||||
if not result_seat: |
|
||||||
print('result_seat False') |
|
||||||
return False, None, None, None, None, None, None, None |
|
||||||
seat_id_list = [{'seat_id': seat['cineSeatId'], 'ticket_discount': seat.get('ticketDiscount', 0), |
|
||||||
'service_discount': seat.get('serviceDiscount', 0)} for seat in seat_price_from_seat] |
|
||||||
|
|
||||||
# 计算最大时间戳 |
|
||||||
last_timestamp = max([_timestamp_lock, _timestamp_play, _timestamp_config, _timestamp_seat]) |
|
||||||
|
|
||||||
# 判断获取到了全部接口数据,就继续,否则报错 |
|
||||||
if not (result_lock and result_play and result_config and result_seat): |
|
||||||
return_str = '请手动输入参数,检查相关接口返回值:3.3.1 座位锁定、3.1.5 获取放映计划列表、3.1.8 获取某场次座位状态、3.1.2 获取单个影院配置信息' |
|
||||||
return False, return_str, 0, return_str, return_str, return_str, return_str, last_timestamp |
|
||||||
|
|
||||||
if pay_type == 'cash': |
|
||||||
""" |
|
||||||
-- 当影院合作商是电商平台定价时(partner_type = 1) |
|
||||||
price:不包含手续费,含服务费 |
|
||||||
user_real_pay_price:用户真实支付影票金额,不含手续费、服务费,该字段只做记录不参与计算 |
|
||||||
service_fee:影厅座位服务费(仅当锁座接口返回的服务费[areaServiceFee]不为零时,才传此参数) |
|
||||||
ticket_discount_price:影票优惠金额; service_fee_discount_price:服务费优惠金额, |
|
||||||
注:如果是鼎新电商平台对合作商价格管控,使用以上两个优惠金额字段需要联系请联系鼎新杰盈公司商务打开开关即可使用,否则直接回传会产生掉单。 |
|
||||||
-- 当影院合作商是合作商自主定价时(partner_type = 2) |
|
||||||
price:真实的票价[不含服务费、不含手续费] |
|
||||||
user_real_pay_price:用户真实支付影票金额[不含手续费、服务费] 需要扣减 ticket_discount_price |
|
||||||
service_fee:真实的服务费 |
|
||||||
ticket_discount_price:影票优惠金额,仅做记录 |
|
||||||
service_fee_discount_price:服务费优惠金额,仅做记录 |
|
||||||
|
|
||||||
测试影院: |
|
||||||
测试影院3.166 乐影网 电商平台补贴 是否允许传递优惠金额 否 影票价格控制 是 卖品价格控制 是 |
|
||||||
测试影院3.166 淘票票 电商平台补贴 是否允许传递优惠金额 是 影票价格控制 否 卖品价格控制 否 |
|
||||||
测试影院3.166 美团猫眼 电商平台补贴 是否允许传递优惠金额 是 影票价格控制 是 卖品价格控制 是 |
|
||||||
测试影院3.166 合作商补贴 合作商补贴 是否允许传递优惠金额 否 影票价格控制 否 卖品价格控制 否 |
|
||||||
|
|
||||||
""" |
|
||||||
quan = '' |
|
||||||
seat_list = [] |
|
||||||
ticket_cash = 0 # 统计cash字段用 |
|
||||||
for seat_info in seat_id_list: |
|
||||||
seat = [seat_info["seat_id"], handle_fee] |
|
||||||
ticket_discount = seat_info["ticket_discount"] |
|
||||||
service_discount = seat_info["service_discount"] |
|
||||||
if area_info is not False: |
|
||||||
# 查找座位对应的区域价格 |
|
||||||
for area_seat_info in area_info: |
|
||||||
if int(area_seat_info['seatId']) == int(seat_info['seat_id']): |
|
||||||
# 获取price字段值 |
|
||||||
price = f2(area_seat_info["areaPrice"]) |
|
||||||
seat.append(str(price)) |
|
||||||
seat.append('0') |
|
||||||
seat.append(area_seat_info["areaServiceFee"]) |
|
||||||
# if partner_type == '2': # 合作商定价 |
|
||||||
# price -= Decimal(area_seat_info["areaServiceFee"]).quantize(Decimal('0.00'), ROUND_HALF_UP) |
|
||||||
# 计算用户实际支付的值 |
|
||||||
real_pay = f2(area_seat_info["areaPrice"]) |
|
||||||
real_pay -= f2(area_seat_info["areaServiceFee"]) |
|
||||||
# 处理影票和服务费折扣 |
|
||||||
if ticket_discount != 0: |
|
||||||
real_pay -= f2(ticket_discount) |
|
||||||
seat.append(str(ticket_discount)) |
|
||||||
if service_discount != 0: |
|
||||||
if partner_type == '2': |
|
||||||
real_pay -= f2(service_discount) |
|
||||||
seat.append(str(service_discount)) |
|
||||||
else: |
|
||||||
seat.append(str(service_discount)) |
|
||||||
seat[3] = str(real_pay) |
|
||||||
# seat = f'{seat_info["seat_id"]}-{handle_fee}-{str(price)}-{str(real_pay)}-{area_seat_info["areaServiceFee"]}{f"-{str(ticket_discount)}" if ticket_discount != 0 else ""}{f"-{str(service_discount)}" if service_discount != 0 else ""}' |
|
||||||
seat_list.append('-'.join(seat)) |
|
||||||
ticket_cash += real_pay |
|
||||||
else: |
|
||||||
seat.append(market_price) |
|
||||||
seat.append('0') |
|
||||||
seat.append('0.00') |
|
||||||
real_pay = f2(market_price) |
|
||||||
if ticket_discount != 0: |
|
||||||
real_pay -= f2(ticket_discount) |
|
||||||
seat.append(str(ticket_discount)) |
|
||||||
if service_discount != 0: |
|
||||||
real_pay -= f2(service_discount) |
|
||||||
seat.append(str(service_discount)) |
|
||||||
seat[3] = str(real_pay) |
|
||||||
# seat = f'{seat_info["seat_id"]}-{handle_fee}-{market_price}-{str(real_pay)}-0{f"-{str(ticket_discount)}" if ticket_discount != 0 else ""}{f"-{str(service_discount)}" if service_discount != 0 else ""}' |
|
||||||
seat_list.append('-'.join(seat)) |
|
||||||
ticket_cash += real_pay |
|
||||||
return True, ','.join(seat_list), ticket_cash, play_id, play_update_time, lock_flag, quan, last_timestamp |
|
||||||
|
|
||||||
elif pay_type == 'ecard': |
|
||||||
quan = '' |
|
||||||
# 获取联名卡价格 |
|
||||||
request_api_ecard = {'name': '3.4.6 获取座位的联名卡价格', 'path': 'ecard/seat-price'} |
|
||||||
redis_key_api_ecard = f'{redis_key_prefix}_{request_api_ecard["path"]}' |
|
||||||
result_ecard, _format_ecard, seat_price_from_ecard, _timestamp_ecard = get_data_from_redis( |
|
||||||
redis_key_api_ecard) |
|
||||||
if not result_ecard: |
|
||||||
print('result_ecard False') |
|
||||||
return False, None, None, None, None, None, None, None |
|
||||||
ecard_info = seat_price_from_ecard['seatPrices'] if len(seat_price_from_ecard['seatPrices']) > 0 else False |
|
||||||
# 错误判断 |
|
||||||
if ecard_info is False: |
|
||||||
return_str = '请手动输入参数,检查相关接口返回值:3.4.6 获取座位的联名卡价格' |
|
||||||
return False, return_str, 0, return_str, return_str, return_str, last_timestamp |
|
||||||
# 处理价格 |
|
||||||
seat_list = [] |
|
||||||
ticket_cash = 0 # 统计cash字段用 |
|
||||||
for seat_info in seat_id_list: |
|
||||||
seat = [seat_info["seat_id"], handle_fee] |
|
||||||
ticket_discount = seat_info["ticket_discount"] |
|
||||||
service_discount = seat_info["service_discount"] |
|
||||||
for ecard_seat_info in ecard_info: |
|
||||||
if int(ecard_seat_info['seatId']) == int(seat_info['seat_id']): |
|
||||||
# 获取price字段值 |
|
||||||
price = f2(ecard_seat_info["price"]) |
|
||||||
seat.append(str(price)) |
|
||||||
seat.append('0') |
|
||||||
seat.append(ecard_seat_info["serviceFee"]) |
|
||||||
# if partner_type == '2': # 合作商定价 |
|
||||||
# price -= Decimal(area_seat_info["areaServiceFee"]).quantize(Decimal('0.00'), ROUND_HALF_UP) |
|
||||||
# 计算用户实际支付的值 |
|
||||||
real_pay = f2(ecard_seat_info["price"]) |
|
||||||
real_pay -= f2(ecard_seat_info["serviceFee"]) |
|
||||||
# 处理影票和服务费折扣 |
|
||||||
if ticket_discount != 0: |
|
||||||
real_pay -= f2(ticket_discount) |
|
||||||
seat.append(str(ticket_discount)) |
|
||||||
if service_discount != 0: |
|
||||||
if partner_type == '2': |
|
||||||
real_pay -= f2(service_discount) |
|
||||||
seat.append(str(service_discount)) |
|
||||||
else: |
|
||||||
seat.append(str(service_discount)) |
|
||||||
seat[3] = str(real_pay) |
|
||||||
# seat = f'{seat_info["seat_id"]}-{handle_fee}-{str(price)}-{str(real_pay)}-{area_seat_info["areaServiceFee"]}{f"-{str(ticket_discount)}" if ticket_discount != 0 else ""}{f"-{str(service_discount)}" if service_discount != 0 else ""}' |
|
||||||
seat_list.append('-'.join(seat)) |
|
||||||
ticket_cash += real_pay |
|
||||||
return True, ','.join(seat_list), ticket_cash, play_id, play_update_time, lock_flag, quan, last_timestamp |
|
||||||
|
|
||||||
elif pay_type in ['yushouquan', 'equan']: |
|
||||||
# 获取券价格 |
|
||||||
request_api_yushouquan = {'name': '3.6.1 添加券', 'path': 'seat/check-coupon'} |
|
||||||
redis_key_api_yushouquan = f'{redis_key_prefix}_{request_api_yushouquan["path"]}' |
|
||||||
result_yushouquan, _format_yushouquan, seat_price_from_yushouquan, _timestamp_yushouquan = get_data_from_redis( |
|
||||||
redis_key_api_yushouquan) |
|
||||||
if not result_yushouquan: |
|
||||||
print('result_yushouquan False') |
|
||||||
return False, None, None, None, None, None, None, None |
|
||||||
# 获取券码 |
|
||||||
req_params = get_param_from_redis(redis_key_api_yushouquan) |
|
||||||
if pay_type == 'yushouquan': |
|
||||||
quan = req_params['coupons'] if req_params.get('coupons', False) else '3.6.1添加券接口中选择的券类型为会员卡赠券,与当前设置不符合' |
|
||||||
elif pay_type == 'equan': |
|
||||||
quan = req_params['card_coupons'] if req_params.get('equan', False) else '3.6.1添加券接口中选择的券类型为扫码券,与当前设置不符合' |
|
||||||
else: |
|
||||||
quan = '请检查3.6.1添加券接口' |
|
||||||
# 获取座位参数 |
|
||||||
seat_list = [] |
|
||||||
ticket_cash = 0 # 统计cash字段用 |
|
||||||
for seat_info in seat_id_list: |
|
||||||
seat = [seat_info["seat_id"], handle_fee] |
|
||||||
ticket_discount = seat_info["ticket_discount"] |
|
||||||
service_discount = seat_info["service_discount"] |
|
||||||
seat.append(market_price) |
|
||||||
seat.append('0') |
|
||||||
seat.append('0.00') |
|
||||||
real_pay = f2(market_price) |
|
||||||
if ticket_discount != 0: |
|
||||||
real_pay -= f2(ticket_discount) |
|
||||||
seat.append(str(ticket_discount)) |
|
||||||
if service_discount != 0: |
|
||||||
real_pay -= f2(service_discount) |
|
||||||
seat.append(str(service_discount)) |
|
||||||
seat[3] = str(real_pay) |
|
||||||
# seat = f'{seat_info["seat_id"]}-{handle_fee}-{market_price}-{str(real_pay)}-0{f"-{str(ticket_discount)}" if ticket_discount != 0 else ""}{f"-{str(service_discount)}" if service_discount != 0 else ""}' |
|
||||||
seat_list.append('-'.join(seat)) |
|
||||||
ticket_cash += real_pay |
|
||||||
ticket_cash = seat_price_from_yushouquan['balance'] |
|
||||||
return True, ','.join(seat_list), ticket_cash, play_id, play_update_time, lock_flag, quan, last_timestamp |
|
||||||
else: |
|
||||||
pass |
|
||||||
|
|
||||||
|
|
||||||
def general_seat_params_member(pay_type, data, card): |
|
||||||
""" |
|
||||||
seat_id-handle_fee-price-ticket_type-is_discount-settlement_price-service_fee 组成的字符串,多个值(多个seat)组用半角逗号分隔。 |
|
||||||
seat_id: 要购买的座位号 |
|
||||||
handle_fee:手续费,如果下单传入了退票订单号,会将handle_fee字段视为改签手续费 |
|
||||||
price:(不包含手续费)会员卡支付金额,该字段值是否包含影厅座位服务费取决于字段is_split_service_fee |
|
||||||
ticket_type: 影票类型(《会员卡详细信息》接口的业务响应参数desc的值) |
|
||||||
is_discount: 0:普通票,1:会员票,2:全局会员票 |
|
||||||
settlement_price:座位结算价,用于计算座位补贴(补贴=结算价-支付价),该值不能低于场次最低票价。(只有当参数is_cinema_price=2时,该值才有效,平台请求影院购票接口时会将计算出的补贴金额传给影院,补贴金额会计入影城报表。 |
|
||||||
注:该字段值是否包含影厅座位服务费取决于字段is_split_service_fee) |
|
||||||
service_fee:影厅座位服务费(只有当参数is_cinema_price=2时,该值才有效) |
|
||||||
|
|
||||||
返回 结果, seat, play_id, play_update_time, lock_flag, seat_coupons, is_cinema_price, is_split_service_fee, cash_pay, timestamp |
|
||||||
""" |
|
||||||
# 获取卡类型 |
|
||||||
card_type = get_card_type(data["env"], data["pid"], data["cid"], card) |
|
||||||
if card_type is False: |
|
||||||
return_str = '此会员卡在该影院无法使用,请使用3.1.3 查询会员卡的详细信息接口查看卡信息' |
|
||||||
return False, return_str, return_str, return_str, return_str, return_str, '2', 'Y', None, int( |
|
||||||
time.time() * 1000) |
|
||||||
|
|
||||||
# 获取其他参数 |
|
||||||
redis_key_prefix = f'dspt_api_{data["ip"]}_{data["env"]}_{data["member_type"]}_{data["pid"]}_{data["cid"]}' |
|
||||||
|
|
||||||
# seat_id |
|
||||||
request_api_seat = {'name': '3.2.6 获取某场次座位状态', 'path': 'play/seat-status'} |
|
||||||
redis_key_api_seat = f'{redis_key_prefix}_{request_api_seat["path"]}' |
|
||||||
result_seat, _format_seat, seat_data, _timestamp_seat = get_data_from_redis(redis_key_api_seat) |
|
||||||
if not result_seat: |
|
||||||
return False, None, None, None, None, None, None, None, None, None |
|
||||||
|
|
||||||
# 获取play_id 和 play_update_time |
|
||||||
request_api_play = {'name': '3.2.3 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api_play = f'{redis_key_prefix}_{request_api_play["path"]}' |
|
||||||
result_play, _format_play, seat_price_from_play, _timestamp_play = get_data_from_redis(redis_key_api_play) |
|
||||||
if not result_play: |
|
||||||
return False, None, None, None, None, None, None, None, None, None |
|
||||||
play_id = seat_price_from_play['id'] |
|
||||||
play_update_time = seat_price_from_play['cineUpdateTime'] |
|
||||||
lowest_price = f2(seat_price_from_play['lowestPrice']) |
|
||||||
|
|
||||||
# 获取 lock_flag |
|
||||||
request_api_lock = {'name': '3.4.3 座位锁定', 'path': 'seat/lock'} |
|
||||||
redis_key_api_lock = f'{redis_key_prefix}_{request_api_lock["path"]}' |
|
||||||
result_lock, _format_lock, seat_price_from_lock, _timestamp_lock = get_data_from_redis(redis_key_api_lock) |
|
||||||
if not result_lock: |
|
||||||
return False, None, None, None, None, None, None, None, None, None |
|
||||||
lock_flag = seat_price_from_lock['lockFlag'] |
|
||||||
|
|
||||||
# cinema_price |
|
||||||
request_api_seat = {'name': '3.4.4 锁定座位后获取票价', 'path': 'seat/price'} |
|
||||||
redis_key_api_seat = f'{redis_key_prefix}_{request_api_seat["path"]}' |
|
||||||
result_seat_price, _format_seat_price, seat_data_price, _timestamp_seat_price = get_data_from_redis( |
|
||||||
redis_key_api_seat) |
|
||||||
if not result_seat_price: |
|
||||||
return False, None, None, None, None, None, None, None, None, None |
|
||||||
|
|
||||||
# handle_fee |
|
||||||
request_api_config = {'name': '3.2.2 获取单个影院配置信息', 'path': 'cinema/config'} |
|
||||||
redis_key_api_config = f'{redis_key_prefix}_{request_api_config["path"]}' |
|
||||||
result_config, _format_config, seat_price_from_config, _timestamp_config = get_data_from_redis(redis_key_api_config) |
|
||||||
if not result_config: |
|
||||||
return False, None, None, None, None, None, None, None, None, None |
|
||||||
handle_fee = f2(seat_price_from_config['handleFee']) |
|
||||||
|
|
||||||
# 计算最大时间戳 |
|
||||||
last_timestamp = max([_timestamp_seat, _timestamp_play, _timestamp_config, _timestamp_lock, _timestamp_seat_price]) |
|
||||||
|
|
||||||
# 判断获取到了全部接口数据,就继续,否则报错 |
|
||||||
if not (result_seat and result_play and result_lock and result_seat_price and result_config): |
|
||||||
return_str = '请手动输入参数,检查相关接口返回值:3.2.6 获取某场次座位状态、3.2.3 获取放映计划列表、3.4.3 座位锁定、3.4.4 锁定座位后获取票价、3.2.2 获取单个影院配置信息' |
|
||||||
return False, return_str, return_str, return_str, return_str, return_str, '1', None, None, last_timestamp |
|
||||||
|
|
||||||
seat_list = [] |
|
||||||
|
|
||||||
# 处理影院定价逻辑 |
|
||||||
if pay_type['select_price_type'] == 'cinema_price': |
|
||||||
# 11682-1-27.7-会员票-1 |
|
||||||
is_cinema_price = '1' |
|
||||||
is_split_service_fee = None |
|
||||||
seat_coupons = None |
|
||||||
|
|
||||||
# 计算影票价 |
|
||||||
ticket_price = f2(f2(seat_data_price['totalPrice']) / int(seat_data_price['ticketNum'])) |
|
||||||
ticket_service = f2(f2(seat_data_price['totalServiceCharge']) / int(seat_data_price['ticketNum'])) |
|
||||||
|
|
||||||
cash_pay = 0 # 计算需要非卡余额支付的金额 |
|
||||||
|
|
||||||
# 生成座位字段 |
|
||||||
for seat in seat_data: |
|
||||||
seat_list.append(f"{seat['cineSeatId']}-{str(handle_fee)}-{str(ticket_price)}-会员票-1") |
|
||||||
if card_type == '权益卡(积分卡)': |
|
||||||
cash_pay += f2(ticket_price + handle_fee) |
|
||||||
else: |
|
||||||
cash_pay += 0 |
|
||||||
|
|
||||||
return True, ','.join( |
|
||||||
seat_list), play_id, play_update_time, lock_flag, seat_coupons, is_cinema_price, is_split_service_fee, str( |
|
||||||
cash_pay), last_timestamp |
|
||||||
|
|
||||||
# 处理三方定价的逻辑 |
|
||||||
if pay_type['select_price_type'] == 'third_price': |
|
||||||
quan_type = pay_type['ticket_quan']['ticket_quan_type'] |
|
||||||
|
|
||||||
# 11664-1-16.5-会员票-1-26.5-1.5 |
|
||||||
is_cinema_price = '2' |
|
||||||
|
|
||||||
# 处理is_split_service_fee字段 |
|
||||||
if pay_type['ticket_info']['have_service_fee'] is True: |
|
||||||
is_split_service_fee = 'Y' |
|
||||||
else: |
|
||||||
is_split_service_fee = 'N' |
|
||||||
|
|
||||||
# 生成券字段 |
|
||||||
# 11663-Rog自营兑换券10元@@6777bbcfhirW6VAqkHItn3PZ@@10.00@@0 |
|
||||||
quan_list = [] |
|
||||||
quan_price_list = [] |
|
||||||
|
|
||||||
if pay_type['ticket_quan_check']: |
|
||||||
|
|
||||||
quan_per_ticket = int(int(pay_type['ticket_quan']['ticket_quan_num']) / len(seat_data)) # 每张票平均分配的券数量 |
|
||||||
quan_price_num = [quan_per_ticket] * len(seat_data) # 每张票平均分配的券数量列表 |
|
||||||
# 多余的券添加到每张票上 |
|
||||||
for i in range(int(pay_type['ticket_quan']['ticket_quan_num']) % len(seat_data)): |
|
||||||
quan_price_num[i] += 1 |
|
||||||
print('quan_price_num', quan_price_num) # quan_price_num [2, 2, 1] 3个座位 5张券 |
|
||||||
|
|
||||||
# 生成券字段列表 |
|
||||||
quan_price = f2(pay_type['ticket_quan']['ticket_quan_value']) |
|
||||||
|
|
||||||
for i, num in enumerate(quan_price_num): |
|
||||||
seat_id = seat_data[i]['cineSeatId'] |
|
||||||
quan_code_list = [f"rog{str(time.time_ns())}{seat_id}{str(n)}" for n in range(num)] |
|
||||||
quan_code = '|'.join(quan_code_list) |
|
||||||
quan_code_price = f2(quan_price * num) |
|
||||||
# 券名称@@券码@@券面额@@券抵值金额 |
|
||||||
if quan_type == '抵值兑换券': |
|
||||||
quan_list.append( |
|
||||||
f"{seat_id}-Rog{quan_type}{str(quan_price)}@@{quan_code}@@{str(quan_code_price)}@@{str(quan_code_price)}") |
|
||||||
else: |
|
||||||
quan_list.append( |
|
||||||
f"{seat_id}-Rog{quan_type}{str(quan_price)}@@{quan_code}@@{str(quan_code_price)}@@0") |
|
||||||
quan_price_list.append(quan_code_price) |
|
||||||
|
|
||||||
seat_coupons = ','.join(quan_list) if len(quan_list) > 0 else None # 生成券字段 |
|
||||||
print('quan_price_list', |
|
||||||
quan_price_list) # quan_price_list [Decimal('22.22'), Decimal('22.22'), Decimal('11.11')] |
|
||||||
|
|
||||||
# 计算影票价格部分 |
|
||||||
ticket_price = f2(pay_type['ticket_info']['ticket_price']) |
|
||||||
service_fee = f2(f2(seat_data_price['totalServiceCharge']) / int(seat_data_price['ticketNum'])) |
|
||||||
|
|
||||||
cash_pay = 0 |
|
||||||
|
|
||||||
for i, seat in enumerate(seat_data): |
|
||||||
# 计算实付金额 |
|
||||||
ticket_real_pay = ticket_price |
|
||||||
if pay_type['ticket_quan_check']: |
|
||||||
if quan_type == '代金券': |
|
||||||
ticket_real_pay = f2(ticket_price - quan_price_list[i]) |
|
||||||
elif quan_type in ['抵值兑换券', '兑换券']: |
|
||||||
ticket_real_pay = quan_price_list[i] |
|
||||||
|
|
||||||
ticket_real_pay = ticket_real_pay if ticket_real_pay > 0 else 0 # 处理用券后小于0的情况 |
|
||||||
|
|
||||||
# 计算影票结算金额 |
|
||||||
ticket_pay = ticket_real_pay |
|
||||||
if ticket_real_pay < lowest_price: |
|
||||||
ticket_pay = lowest_price |
|
||||||
|
|
||||||
if is_split_service_fee == 'Y': |
|
||||||
ticket_real_pay += service_fee |
|
||||||
ticket_pay += service_fee |
|
||||||
|
|
||||||
if card_type == '权益卡(积分卡)' or quan_type == '抵值兑换券': |
|
||||||
cash_pay += f2(ticket_real_pay + handle_fee) # 当使用权益卡支付时,需要将实付票价累加到现金支付字段中 |
|
||||||
else: |
|
||||||
cash_pay += 0 |
|
||||||
|
|
||||||
seat_list.append( |
|
||||||
f"{seat['cineSeatId']}-{str(handle_fee)}-{str(ticket_real_pay)}-会员票-1-{str(ticket_pay)}-{str(service_fee)}") |
|
||||||
|
|
||||||
return True, ','.join( |
|
||||||
seat_list), play_id, play_update_time, lock_flag, seat_coupons, is_cinema_price, is_split_service_fee, str( |
|
||||||
cash_pay), last_timestamp |
|
@ -1,20 +0,0 @@ |
|||||||
def get_ticket_price(data, seat=None, ecard=None, quan=False): |
|
||||||
print('get_ticket_price-data', data) |
|
||||||
if quan is True: |
|
||||||
return data.get('marketPrice'), None |
|
||||||
if data.get('areaInfo') is None: |
|
||||||
if data.get('partnerPrice') is None: |
|
||||||
return data.get('marketPrice'), None |
|
||||||
else: |
|
||||||
return data.get('partnerPrice'), None |
|
||||||
else: |
|
||||||
if seat is None: |
|
||||||
return data.get('partnerPrice'), None |
|
||||||
else: |
|
||||||
area_id = seat.get('areaId') |
|
||||||
if ecard is None: |
|
||||||
for area in data.get('areaInfo'): |
|
||||||
if area.get('areaId') == area_id: |
|
||||||
return area.get('areaPrice'), area.get('areaServiceFee') |
|
||||||
else: |
|
||||||
pass |
|
@ -1,10 +0,0 @@ |
|||||||
import datetime |
|
||||||
|
|
||||||
|
|
||||||
def get_stime_etime(_type='date', today=True): |
|
||||||
# stime and etime |
|
||||||
time_format = '%Y-%m-%d' if _type == 'date' else '%Y-%m-%d %H:%M:%S' |
|
||||||
_now = datetime.datetime.now() |
|
||||||
end_date = _now.strftime(time_format) if today else (_now + datetime.timedelta(days=-1)).strftime(time_format) |
|
||||||
start_date = (_now + datetime.timedelta(days=-30)).strftime(time_format) |
|
||||||
return start_date, end_date |
|
File diff suppressed because it is too large
Load Diff
@ -1,100 +0,0 @@ |
|||||||
# import pymysql |
|
||||||
# from pymysql.cursors import DictCursor |
|
||||||
# |
|
||||||
# db_config = { |
|
||||||
# 'host': 'home.rogersun.cn', |
|
||||||
# 'database': 'dingxin_toolbox', |
|
||||||
# 'user': 'dingxin', |
|
||||||
# 'password': 'cine123456', |
|
||||||
# 'port': 3306, |
|
||||||
# } |
|
||||||
# |
|
||||||
# db_conn = pymysql.Connect(**db_config) |
|
||||||
# db_cursor = db_conn.cursor(DictCursor) |
|
||||||
# |
|
||||||
# api_data = { |
|
||||||
# 'desc': '3.5.4 发卡明细对账', |
|
||||||
# 'path': 'cinema/send-card-bill', |
|
||||||
# 'type': 'member', |
|
||||||
# } |
|
||||||
# |
|
||||||
# params_data = [ |
|
||||||
# { |
|
||||||
# 'param': 'format', |
|
||||||
# 'description': '返回数据格式:xml或json', |
|
||||||
# 'value': 'json', |
|
||||||
# 'is_checked': 1, |
|
||||||
# 'is_request': 1, |
|
||||||
# }, |
|
||||||
# { |
|
||||||
# 'param': 'pid', |
|
||||||
# 'description': '合作商id', |
|
||||||
# 'value': None, |
|
||||||
# 'is_checked': 1, |
|
||||||
# 'is_request': 1, |
|
||||||
# }, |
|
||||||
# { |
|
||||||
# 'param': 'cid', |
|
||||||
# 'description': '影院ID', |
|
||||||
# 'value': None, |
|
||||||
# 'is_checked': 1, |
|
||||||
# 'is_request': 1, |
|
||||||
# }, |
|
||||||
# { |
|
||||||
# 'param': 'start_date', |
|
||||||
# 'description': '对账开始日期 示例 2016-03-01', |
|
||||||
# 'value': None, |
|
||||||
# 'is_checked': 1, |
|
||||||
# 'is_request': 1, |
|
||||||
# }, |
|
||||||
# { |
|
||||||
# 'param': 'end_date', |
|
||||||
# 'description': '对账结束日期 示例 2016-03-01', |
|
||||||
# 'value': None, |
|
||||||
# 'is_checked': 1, |
|
||||||
# 'is_request': 1, |
|
||||||
# }, |
|
||||||
# { |
|
||||||
# 'param': 'start_order_time', |
|
||||||
# 'description': '查询订单开始时间,如:2016-03-01 00:00:00 首次调用不传,默认为{start_date 00:00:00},之后调用按返回字段startOrderTime进行调用该时间只能在start_date与end_date范围内', |
|
||||||
# 'value': None, |
|
||||||
# 'is_checked': 0, |
|
||||||
# 'is_request': 0, |
|
||||||
# }, |
|
||||||
# { |
|
||||||
# 'param': 'page_len', |
|
||||||
# 'description': '每次获取订单数,默认1000。范围:大于等于1000,小于等于2000。', |
|
||||||
# 'value': None, |
|
||||||
# 'is_checked': 0, |
|
||||||
# 'is_request': 0, |
|
||||||
# }, |
|
||||||
# ] |
|
||||||
# params_data.append({ |
|
||||||
# 'param': '_sig', |
|
||||||
# 'description': '接口签名', |
|
||||||
# 'value': None, |
|
||||||
# 'is_checked': 1, |
|
||||||
# 'is_request': 1, |
|
||||||
# }) |
|
||||||
# |
|
||||||
# api_sql = """ |
|
||||||
# insert into dingxin_toolbox.ec_api (id, description, path, type) |
|
||||||
# values (NULL, %s, %s, %s); |
|
||||||
# """ |
|
||||||
# |
|
||||||
# r = db_cursor.execute(api_sql, (api_data['desc'], api_data['path'], api_data['type'])) |
|
||||||
# db_conn.commit() |
|
||||||
# |
|
||||||
# get_id = """select id from dingxin_toolbox.ec_api where path = %s;""" |
|
||||||
# r1 = db_cursor.execute(get_id, (api_data['path'],)) |
|
||||||
# api_id = db_cursor.fetchone()['id'] |
|
||||||
# print(api_id) |
|
||||||
# |
|
||||||
# param_sql = """insert into dingxin_toolbox.ec_api_params (id, api_id, param, description, value, is_checked, is_request) |
|
||||||
# values (NULL, %s, %s, %s, %s, %s, %s);""" |
|
||||||
# |
|
||||||
# for param in params_data: |
|
||||||
# print(param) |
|
||||||
# r2 = db_cursor.execute(param_sql, ( |
|
||||||
# api_id, param['param'], param['description'], param['value'], param['is_checked'], param['is_request'])) |
|
||||||
# db_conn.commit() |
|
@ -1,64 +0,0 @@ |
|||||||
import random |
|
||||||
import json |
|
||||||
import time |
|
||||||
from django_redis import get_redis_connection |
|
||||||
|
|
||||||
RANDOM_DATA_API_LIST = ['cinema/plays', 'play/seat-status', 'cinema/goods', 'ecard/ecard-levels', 'cinema/card-level-rule'] |
|
||||||
|
|
||||||
|
|
||||||
def random_params(_user_info, _handle_data): |
|
||||||
if _user_info["api"] in RANDOM_DATA_API_LIST: |
|
||||||
if str(_handle_data['res']['status']) == '0': |
|
||||||
return False |
|
||||||
redis_key_api = f'dspt_api_{_user_info["user_ip"]}_{_user_info["env"]}_{_user_info["member_type"]}_{_user_info["pid"]}_{_user_info["cid"]}_{_user_info["api"]}_random' |
|
||||||
redis_conn = get_redis_connection() |
|
||||||
if redis_conn.get(redis_key_api): |
|
||||||
redis_conn.delete(redis_key_api) |
|
||||||
data = { |
|
||||||
'api': _user_info["api"], |
|
||||||
'member_type': _user_info["member_type"], |
|
||||||
'format': _user_info["format"], |
|
||||||
'timestamp': int(time.time() * 1000), |
|
||||||
} |
|
||||||
print('random_params_user_info["api"]', _user_info["api"]) |
|
||||||
if _user_info["api"] == 'play/seat-status': |
|
||||||
_user_data = get_ok_status_seat_list(_handle_data['res']['data']) |
|
||||||
elif _user_info["api"] == 'ecard/ecard-levels': |
|
||||||
print('ecard/ecard-levels') |
|
||||||
_user_data = _handle_data['res']['data']['ecardLevelData'] |
|
||||||
elif _user_info["api"] == 'cinema/goods': |
|
||||||
print('random_params', _handle_data['res']['data']) |
|
||||||
_user_data = [random_goods(_handle_data['res']['data'])] |
|
||||||
elif _user_info["api"] == 'cinema/card-level-rule': |
|
||||||
print('cinema/card-level-rule') |
|
||||||
_user_data = _handle_data['res']['data']['rule'] |
|
||||||
else: |
|
||||||
_user_data = _handle_data['res']['data'] |
|
||||||
print('random_params', _user_data) |
|
||||||
|
|
||||||
if len(_user_data) > 0: |
|
||||||
print('random_params', _user_data) |
|
||||||
if _user_info["api"] in ('play/seat-status', 'cinema/goods'): |
|
||||||
data['user_data'] = [[random.choice(_user_data)]] |
|
||||||
else: |
|
||||||
data['user_data'] = [random.choice(_user_data)] |
|
||||||
redis_conn.set(redis_key_api, json.dumps(data), 10 * 60 * 60) |
|
||||||
else: |
|
||||||
redis_conn.delete(redis_key_api) |
|
||||||
|
|
||||||
|
|
||||||
def get_ok_status_seat_list(_data): |
|
||||||
seat_list = [] |
|
||||||
for s in _data: |
|
||||||
if s['seatStatus'] == 'ok' and s['type'] in ['danren', 'zhendong', 'vip']: |
|
||||||
seat_list.append(s) |
|
||||||
return seat_list |
|
||||||
|
|
||||||
|
|
||||||
def random_goods(_data): |
|
||||||
goods = random.choice(_data) |
|
||||||
n = 1 |
|
||||||
while goods['type'] == 'package' and goods['packageType'] == '2' and n < 10: |
|
||||||
goods = random.choice(_data) |
|
||||||
n += 1 |
|
||||||
return goods |
|
@ -1,46 +0,0 @@ |
|||||||
import re |
|
||||||
from hashlib import md5 |
|
||||||
|
|
||||||
""" |
|
||||||
用于生成网售签名 |
|
||||||
""" |
|
||||||
|
|
||||||
|
|
||||||
class Sign: |
|
||||||
|
|
||||||
def __init__(self, salt='ly725xw701'): |
|
||||||
self.salt = salt |
|
||||||
|
|
||||||
def __ksort(self, params): |
|
||||||
""" |
|
||||||
请求参数排序 |
|
||||||
:params: 未排序的参数字典 |
|
||||||
:return: 排列后的请求参数字符串 |
|
||||||
""" |
|
||||||
sorted_params = sorted(params.items(), key=lambda k: k[0]) |
|
||||||
p = [f'{k}={v}' for k, v in sorted_params] |
|
||||||
params_str = '&'.join(p) |
|
||||||
return params_str |
|
||||||
|
|
||||||
def __generate_sign(self, params): |
|
||||||
""" |
|
||||||
生成签名方法 |
|
||||||
:param params: 未排序的参数字典 |
|
||||||
:param salt: 盐值(授权码) |
|
||||||
:return: 生成签名 |
|
||||||
""" |
|
||||||
str0 = self.salt + self.__ksort(params) |
|
||||||
m1 = md5(str0.encode()).hexdigest() |
|
||||||
str1 = m1 + self.salt |
|
||||||
sign = md5(str1.encode()).hexdigest() |
|
||||||
return sign |
|
||||||
|
|
||||||
def add_sig(self, params): |
|
||||||
""" |
|
||||||
添加sig到params |
|
||||||
:param params: |
|
||||||
:return: |
|
||||||
""" |
|
||||||
sig = self.__generate_sign(params) |
|
||||||
params.update({'_sig': sig}) |
|
||||||
return params |
|
@ -1,718 +0,0 @@ |
|||||||
from dspt_api.util.api.cinema_hall_seats import ApiCinemaHallSeats |
|
||||||
from dspt_api.util.api.cinema_plays_increment import ApiCinemaPlaysIncrement |
|
||||||
from dspt_api.util.api.ecard_refund import ApiEcardRefund |
|
||||||
from dspt_api.util.api.ecard_regist import ApiEcardRegist |
|
||||||
from dspt_api.util.api.ecard_renew import ApiEcardRenew |
|
||||||
from dspt_api.util.api.play_info import ApiPlayInfo |
|
||||||
from dspt_api.util.api.play_seat_status import ApiPlaySeatStatus |
|
||||||
from dspt_api.util.api.play_period_changed_seats import ApiPlayPeriodChangedSeats |
|
||||||
from dspt_api.util.api.play_seat_overview import ApiPlaySeatOverview |
|
||||||
from dspt_api.util.api.cinema_goods_pic import ApiCinemaGoodsPic |
|
||||||
from dspt_api.util.api.seat_lock import ApiSeatLock |
|
||||||
from dspt_api.util.api.order_buy_goods import ApiOrderBuyGoods |
|
||||||
from dspt_api.util.api.ecard_detail import ApiEcardDetail |
|
||||||
from dspt_api.util.api.ecard_order_detail import ApiEcardOrderDetail |
|
||||||
from dspt_api.util.api.ecard_seat_price import ApiEcardSeatPrice |
|
||||||
from dspt_api.util.api.seat_check_coupon import ApiSeatCheckCoupon |
|
||||||
from dspt_api.util.api.seat_lock_buy import ApiSeatLockBuy |
|
||||||
from dspt_api.util.api.ticket_refundv2 import ApiTicketRefundV2 |
|
||||||
from dspt_api.util.api.ticket_refund import ApiTicketRefund |
|
||||||
from dspt_api.util.api.seat_unlock import ApiSeatUnlock |
|
||||||
from dspt_api.util.api.ticket_print import ApiTicketPrint |
|
||||||
from dspt_api.util.api.ticket_info_by_qrcode import ApiTicketInfoByQrcode |
|
||||||
from dspt_api.util.api.ticket_info import ApiTicketInfo |
|
||||||
from dspt_api.util.api.order_ticket_flag import ApiOrderTicketFlag |
|
||||||
from dspt_api.util.api.order_status import ApiOrderStatus |
|
||||||
from dspt_api.util.api.order_info import ApiOrderInfo |
|
||||||
from dspt_api.util.api.goods_deduct import ApiGoodsDeduct |
|
||||||
from dspt_api.util.mapi.play_seat_status import MapiPlaySeatStatus |
|
||||||
from dspt_api.util.mapi.seat_lock import MapiSeatLock |
|
||||||
from dspt_api.util.mapi.seat_price import MapiSeatPrice |
|
||||||
from dspt_api.util.mapi.seat_lock_buy import MapiSeatLockBuy |
|
||||||
from dspt_api.util.mapi.card_get_goods_price import MapiCardGetGoodsPrice |
|
||||||
from dspt_api.util.mapi.order_buy_goods import MapiOrderBuyGoods |
|
||||||
from dspt_api.util.mapi.card_auth import MapiCardAuth |
|
||||||
from dspt_api.util.mapi.card_detail import MapiCardDetail |
|
||||||
from dspt_api.util.mapi.card_buy_info import MapiCardBuyInfo |
|
||||||
from dspt_api.util.mapi.order_tickets import MapiOrderTickets |
|
||||||
from dspt_api.util.mapi.card_recharge_log import MapiCardRechargeLog |
|
||||||
from dspt_api.util.mapi.order_list import MapiOrderList |
|
||||||
from dspt_api.util.mapi.order_detail import MapiOrderDetail |
|
||||||
from dspt_api.util.mapi.card_trade_query import MapiCardTradeQuery |
|
||||||
from dspt_api.util.mapi.card_jifen_query import MapiCardJifenQuery |
|
||||||
from dspt_api.util.mapi.movie_info import MapiMovieInfo |
|
||||||
from dspt_api.util.mapi.play_info import MapiPlayInfo |
|
||||||
from dspt_api.util.mapi.play_period_changed_seats import MapiPlayPeriodChangedSeats |
|
||||||
from dspt_api.util.mapi.play_seat_overview import MapiPlaySeatOverview |
|
||||||
from dspt_api.util.mapi.seat_book import MapiSeatBook |
|
||||||
from dspt_api.util.mapi.card_recharge import MapiCardRecharge |
|
||||||
from dspt_api.util.mapi.seat_unlock import MapiSeatUnlock |
|
||||||
from dspt_api.util.mapi.ticket_refund import MapiTicketRefund |
|
||||||
from dspt_api.util.mapi.order_ticket_flag import MapiOrderTicketFlag |
|
||||||
from dspt_api.util.mapi.order_status import MapiOrderStatus |
|
||||||
from dspt_api.util.mapi.ticket_info import MapiTicketInfo |
|
||||||
from dspt_api.util.mapi.order_info import MapiOrderInfo |
|
||||||
from dspt_api.util.mapi.ticket_print import MapiTicketPrint |
|
||||||
from dspt_api.util.mapi.card_active import MapiCardActive |
|
||||||
from dspt_api.util.mapi.card_regist import MapiCardRegist |
|
||||||
from dspt_api.util.mapi.cinema_recharge_bill import MapiCinemaRechargeBill |
|
||||||
from dspt_api.util.mapi.cinema_ticket_bill import MapiCinemaTicketBill |
|
||||||
from dspt_api.util.mapi.cinema_goods_bill import MapiCinemaGoodsBill |
|
||||||
from dspt_api.util.mapi.cinema_send_card_bill import MapiCinemaSendCardBill |
|
||||||
|
|
||||||
|
|
||||||
# 通过api来匹配不同的接口文件获取推荐 |
|
||||||
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态 |
|
||||||
def suggest_params(member_type, api, env, cid, pid, ip, **kwargs): |
|
||||||
data = {'member_type': member_type, 'api': api, 'env': env, 'cid': cid, 'pid': pid, 'ip': ip} |
|
||||||
print('suggest_params: ', data) |
|
||||||
params = [] |
|
||||||
# 非会员 |
|
||||||
# 3.1.4 获取影厅座位图* |
|
||||||
if api == 'cinema/hall-seats' and member_type == 'nonmember': |
|
||||||
print('cinema/hall-seats') |
|
||||||
params = ApiCinemaHallSeats(**data).get_suggestion() |
|
||||||
# 3.1.6 获取放映计划列表(增量)* |
|
||||||
if api == 'cinema/plays-increment' and member_type == 'nonmember': |
|
||||||
print('cinema/plays-increment') |
|
||||||
params = ApiCinemaPlaysIncrement(**data).get_suggestion() |
|
||||||
# 3.1.7 获取某(几)个场次信息* |
|
||||||
if api == 'play/info' and member_type == 'nonmember': |
|
||||||
print('play/info') |
|
||||||
params = ApiPlayInfo(**data).get_suggestion() |
|
||||||
# 3.1.8 获取某场次座位状态* |
|
||||||
if api == 'play/seat-status' and member_type == 'nonmember': |
|
||||||
print('play/seat-status') |
|
||||||
params = ApiPlaySeatStatus(**data).get_suggestion() |
|
||||||
# 3.1.9 获取某场次座位状态(增量)* |
|
||||||
if api == 'play/period-changed-seats' and member_type == 'nonmember': |
|
||||||
print('play/period-changed-seats') |
|
||||||
params = ApiPlayPeriodChangedSeats(**data).get_suggestion() |
|
||||||
# 3.1.10 获取某(几)个场次座位售卖统计信息* |
|
||||||
if api == 'play/seat-overview' and member_type == 'nonmember': |
|
||||||
print('play/seat-overview') |
|
||||||
params = ApiPlaySeatOverview(**data).get_suggestion() |
|
||||||
# 3.2.2 获取单个卖品的图片信息* |
|
||||||
if api == 'cinema/goods-pic' and member_type == 'nonmember': |
|
||||||
print('cinema/goods-pic') |
|
||||||
params = ApiCinemaGoodsPic(**data).get_suggestion() |
|
||||||
# 3.3.1 座位锁定* |
|
||||||
if api == 'seat/lock' and member_type == 'nonmember': |
|
||||||
print('seat/lock') |
|
||||||
params = ApiSeatLock(**data).get_suggestion() |
|
||||||
# 3.3.2 座位解锁* |
|
||||||
if api == 'seat/unlock' and member_type == 'nonmember': |
|
||||||
print('seat/unlock') |
|
||||||
params = ApiSeatUnlock(**data).get_suggestion() |
|
||||||
# 3.3.3 混合下单(影票、卖品)* |
|
||||||
if api == 'seat/lock-buy' and member_type == 'nonmember': |
|
||||||
print('seat/lock-buy') |
|
||||||
print("kwargs['sale_type']", kwargs['sale_type']) |
|
||||||
print("kwargs['pay_type']", kwargs['pay_type']) |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = ApiSeatLockBuy(**data).get_suggestion() |
|
||||||
# 3.3.4 单独下单(卖品)* |
|
||||||
if api == 'order/buy-goods' and member_type == 'nonmember': |
|
||||||
print('order/buy-goods') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = ApiOrderBuyGoods(**data).get_suggestion() |
|
||||||
# 3.3.5 混合退单(影票、卖品)* |
|
||||||
if api == 'ticket/refundv2' and member_type == 'nonmember': |
|
||||||
print('ticket/refundv2') |
|
||||||
params = ApiTicketRefundV2(**data).get_suggestion() |
|
||||||
# 3.3.6 单独退单(影票)* |
|
||||||
if api == 'ticket/refund' and member_type == 'nonmember': |
|
||||||
print('ticket/refund') |
|
||||||
params = ApiTicketRefund(**data).get_suggestion() |
|
||||||
# 3.3.7 查询订单状态及取票码* |
|
||||||
if api == 'order/ticket-flag' and member_type == 'nonmember': |
|
||||||
print('order/ticket-flag') |
|
||||||
params = ApiOrderTicketFlag(**data).get_suggestion() |
|
||||||
# 3.3.8 查询订单状态* |
|
||||||
if api == 'order/status' and member_type == 'nonmember': |
|
||||||
print('order/status') |
|
||||||
params = ApiOrderStatus(**data).get_suggestion() |
|
||||||
# 3.3.9 查询订单信息(影票)* |
|
||||||
if api == 'ticket/info' and member_type == 'nonmember': |
|
||||||
print('ticket/info') |
|
||||||
params = ApiTicketInfo(**data).get_suggestion() |
|
||||||
# 3.3.10 查询订单信息(影票、卖品)* |
|
||||||
if api == 'order/info' and member_type == 'nonmember': |
|
||||||
print('order/info') |
|
||||||
params = ApiOrderInfo(**data).get_suggestion() |
|
||||||
# 3.3.11 查询影票信息(检票商闸机扫码)* |
|
||||||
if api == 'ticket/info-by-qrcode' and member_type == 'nonmember': |
|
||||||
print('ticket/info-by-qrcode') |
|
||||||
params = ApiTicketInfoByQrcode(**data).get_suggestion() |
|
||||||
# 3.3.12 确认出票(设置影票为已出票)* |
|
||||||
if api == 'ticket/print' and member_type == 'nonmember': |
|
||||||
print('ticket/print') |
|
||||||
params = ApiTicketPrint(**data).get_suggestion() |
|
||||||
# 3.3.13 卖品确认出货(扣减卖品库存量)* |
|
||||||
if api == 'goods/deduct' and member_type == 'nonmember': |
|
||||||
print('goods/deduct') |
|
||||||
params = ApiGoodsDeduct(**data).get_suggestion() |
|
||||||
# 3.4.2 联名卡开卡* |
|
||||||
if api == 'ecard/regist' and member_type == 'nonmember': |
|
||||||
print('ecard/regist') |
|
||||||
params = ApiEcardRegist(**data).get_suggestion() |
|
||||||
# 3.4.3 联名卡续卡* |
|
||||||
if api == 'ecard/renew' and member_type == 'nonmember': |
|
||||||
print('ecard/renew') |
|
||||||
params = ApiEcardRenew(**data).get_suggestion() |
|
||||||
# 3.4.4 获取联名卡详情* |
|
||||||
if api == 'ecard/detail' and member_type == 'nonmember': |
|
||||||
print('ecard/detail') |
|
||||||
params = ApiEcardDetail(**data).get_suggestion() |
|
||||||
# 3.4.5 联名卡开卡/续卡订单详情* |
|
||||||
if api == 'ecard/order-detail' and member_type == 'nonmember': |
|
||||||
print('ecard/order-detail') |
|
||||||
params = ApiEcardOrderDetail(**data).get_suggestion() |
|
||||||
# 3.4.6 获取座位的联名卡价格* |
|
||||||
if api == 'ecard/seat-price' and member_type == 'nonmember': |
|
||||||
print('ecard/seat-price') |
|
||||||
params = ApiEcardSeatPrice(**data).get_suggestion() |
|
||||||
# 3.4.8 联名卡退单* |
|
||||||
if api == 'ecard/refund' and member_type == 'nonmember': |
|
||||||
print('ecard/refund') |
|
||||||
params = ApiEcardRefund(**data).get_suggestion() |
|
||||||
# 3.6.1 添加券* |
|
||||||
if api == 'seat/check-coupon' and member_type == 'nonmember': |
|
||||||
print('seat/check-coupon') |
|
||||||
print("kwargs['sale_type']", kwargs['sale_type']) |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
params = ApiSeatCheckCoupon(**data).get_suggestion() |
|
||||||
|
|
||||||
# 会员 |
|
||||||
# 3.1.2 会员卡密码校验 |
|
||||||
if api == 'card/auth' and member_type == 'member': |
|
||||||
print('card/auth') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardAuth(**data).get_suggestion() |
|
||||||
# 3.1.3 查询会员卡的详细信息 |
|
||||||
if api == 'card/detail' and member_type == 'member': |
|
||||||
print('card/detail') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardDetail(**data).get_suggestion() |
|
||||||
# 3.1.4 获取会员卡某场次的购票信息 |
|
||||||
if api == 'card/buy-info' and member_type == 'member': |
|
||||||
print('card/buy-info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardBuyInfo(**data).get_suggestion() |
|
||||||
# 3.1.5 获取有效的未出票订单 |
|
||||||
if api == 'order/tickets' and member_type == 'member': |
|
||||||
print('order/tickets') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiOrderTickets(**data).get_suggestion() |
|
||||||
# 3.1.6 查询会员卡充值记录 |
|
||||||
if api == 'card/recharge-log' and member_type == 'member': |
|
||||||
print('card/recharge-log') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardRechargeLog(**data).get_suggestion() |
|
||||||
# 3.1.7 查询会员卡历史订单 |
|
||||||
if api == 'order/list' and member_type == 'member': |
|
||||||
print('order/list') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiOrderList(**data).get_suggestion() |
|
||||||
# 3.1.8 查询某条订单的详细信息 |
|
||||||
if api == 'order/detail' and member_type == 'member': |
|
||||||
print('order/detail') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiOrderDetail(**data).get_suggestion() |
|
||||||
# 3.1.10 会员卡消费流水查询 |
|
||||||
if api == 'card/trade-query' and member_type == 'member': |
|
||||||
print('card/trade-query') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardTradeQuery(**data).get_suggestion() |
|
||||||
# 3.1.12 会员卡积分记录查询 |
|
||||||
if api == 'card/jifen-query' and member_type == 'member': |
|
||||||
print('card/jifen-query') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardJifenQuery(**data).get_suggestion() |
|
||||||
# 3.2.4 获取影片详细信息 |
|
||||||
if api == 'movie/info' and member_type == 'member': |
|
||||||
print('movie/info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiMovieInfo(**data).get_suggestion() |
|
||||||
# 3.2.5 获取场次详细信息 |
|
||||||
if api == 'play/info' and member_type == 'member': |
|
||||||
print('play/info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiPlayInfo(**data).get_suggestion() |
|
||||||
# 3.2.6 获取场次座位状态 |
|
||||||
if api == 'play/seat-status' and member_type == 'member': |
|
||||||
print('play/seat-status') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiPlaySeatStatus(**data).get_suggestion() |
|
||||||
# 3.2.7 获取场次座位状态增量 |
|
||||||
if api == 'play/period-changed-seats' and member_type == 'member': |
|
||||||
print('play/period-changed-seats') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiPlayPeriodChangedSeats(**data).get_suggestion() |
|
||||||
# 3.2.8 获取场次座位售卖统计信息 |
|
||||||
if api == 'play/seat-overview' and member_type == 'member': |
|
||||||
print('play/seat-overview') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiPlaySeatOverview(**data).get_suggestion() |
|
||||||
# 3.3.2 获取卖品折扣信息 |
|
||||||
if api == 'card/get-goods-price' and member_type == 'member': |
|
||||||
print('card/get-goods-price') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardGetGoodsPrice(**data).get_suggestion() |
|
||||||
# 3.4.1 订票 |
|
||||||
if api == 'seat/book' and member_type == 'member': |
|
||||||
print('seat/book') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiSeatBook(**data).get_suggestion() |
|
||||||
# 3.4.2 会员卡充值 |
|
||||||
if api == 'card/recharge' and member_type == 'member': |
|
||||||
print('card/recharge') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardRecharge(**data).get_suggestion() |
|
||||||
# 3.4.3 座位锁定 |
|
||||||
if api == 'seat/lock' and member_type == 'member': |
|
||||||
print('seat/lock') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiSeatLock(**data).get_suggestion() |
|
||||||
# 3.4.4 座位锁定后获取票价 |
|
||||||
if api == 'seat/price' and member_type == 'member': |
|
||||||
print('seat/price') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiSeatPrice(**data).get_suggestion() |
|
||||||
# 3.4.5 座位解锁 |
|
||||||
if api == 'seat/unlock' and member_type == 'member': |
|
||||||
print('seat/unlock') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiSeatUnlock(**data).get_suggestion() |
|
||||||
# 3.4.6 混合下单(影票、卖品) |
|
||||||
if api == 'seat/lock-buy' and member_type == 'member': |
|
||||||
print('seat/lock-buy') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiSeatLockBuy(**data).get_suggestion() |
|
||||||
# 3.4.7 单独下单(卖品) |
|
||||||
if api == 'order/buy-goods' and member_type == 'member': |
|
||||||
print('order/buy-goods') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiOrderBuyGoods(**data).get_suggestion() |
|
||||||
# 3.4.8 退单(影票、卖品) |
|
||||||
if api == 'ticket/refund' and member_type == 'member': |
|
||||||
print('ticket/refund') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiTicketRefund(**data).get_suggestion() |
|
||||||
# 3.4.9 查询订单状态及取票码 |
|
||||||
if api == 'order/ticket-flag' and member_type == 'member': |
|
||||||
print('order/ticket-flag') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiOrderTicketFlag(**data).get_suggestion() |
|
||||||
# 3.4.10 查询订单状态 |
|
||||||
if api == 'order/status' and member_type == 'member': |
|
||||||
print('order/status') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiOrderStatus(**data).get_suggestion() |
|
||||||
# 3.4.11 查询订单信息(影票) |
|
||||||
if api == 'ticket/info' and member_type == 'member': |
|
||||||
print('ticket/info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiTicketInfo(**data).get_suggestion() |
|
||||||
# 3.4.12 查询订单信息(影票、卖品) |
|
||||||
if api == 'order/info' and member_type == 'member': |
|
||||||
print('order/info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiOrderInfo(**data).get_suggestion() |
|
||||||
# 3.4.13 确认出票(设置影票为已出票) |
|
||||||
if api == 'ticket/print' and member_type == 'member': |
|
||||||
print('ticket/print') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiTicketPrint(**data).get_suggestion() |
|
||||||
# 3.4.14 会员卡激活 |
|
||||||
if api == 'card/active' and member_type == 'member': |
|
||||||
print('card/active') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardActive(**data).get_suggestion() |
|
||||||
# 3.4.15 会员卡线上开卡 |
|
||||||
if api == 'card/regist' and member_type == 'member': |
|
||||||
print('card/regist') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCardRegist(**data).get_suggestion() |
|
||||||
# 3.5.1 充值明细对账 |
|
||||||
if api == 'cinema/recharge-bill' and member_type == 'member': |
|
||||||
print('cinema/recharge-bill') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCinemaRechargeBill(**data).get_suggestion() |
|
||||||
# 3.5.2 影票对账 |
|
||||||
if api == 'cinema/ticket-bill' and member_type == 'member': |
|
||||||
print('cinema/ticket-bill') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCinemaTicketBill(**data).get_suggestion() |
|
||||||
# 3.5.3 卖品对账 |
|
||||||
if api == 'cinema/goods-bill' and member_type == 'member': |
|
||||||
print('cinema/goods-bill') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCinemaGoodsBill(**data).get_suggestion() |
|
||||||
# 3.5.4 发卡明细对账 |
|
||||||
if api == 'cinema/send-card-bill' and member_type == 'member': |
|
||||||
print('cinema/send-card-bill') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
params = MapiCinemaSendCardBill(**data).get_suggestion() |
|
||||||
return params |
|
||||||
|
|
||||||
|
|
||||||
def suggest_params_timestamp(member_type, api, env, cid, pid, ip, **kwargs): |
|
||||||
data = {'member_type': member_type, 'api': api, 'env': env, 'cid': cid, 'pid': pid, 'ip': ip} |
|
||||||
_timestamps = 0 |
|
||||||
# 非会员 |
|
||||||
# 3.1.4 获取影厅座位图* |
|
||||||
if api == 'cinema/hall-seats' and member_type == 'nonmember': |
|
||||||
print('cinema/hall-seats') |
|
||||||
_timestamps = ApiCinemaHallSeats(**data).get_timestamp() |
|
||||||
# 3.1.6 获取放映计划列表(增量)* |
|
||||||
if api == 'cinema/plays-increment' and member_type == 'nonmember': |
|
||||||
print('cinema/plays-increment') |
|
||||||
_timestamps = ApiCinemaPlaysIncrement(**data).get_timestamp() |
|
||||||
# 3.1.7 获取某(几)个场次信息* |
|
||||||
if api == 'play/info' and member_type == 'nonmember': |
|
||||||
print('play/info') |
|
||||||
_timestamps = ApiPlayInfo(**data).get_timestamp() |
|
||||||
# 3.1.8 获取某场次座位状态* |
|
||||||
if api == 'play/seat-status' and member_type == 'nonmember': |
|
||||||
print('play/seat-status') |
|
||||||
_timestamps = ApiPlaySeatStatus(**data).get_timestamp() |
|
||||||
# 3.1.9 获取某场次座位状态(增量)* |
|
||||||
if api == 'play/period-changed-seats' and member_type == 'nonmember': |
|
||||||
print('play/period-changed-seats') |
|
||||||
_timestamps = ApiPlayPeriodChangedSeats(**data).get_timestamp() |
|
||||||
# 3.1.10 获取某(几)个场次座位售卖统计信息* |
|
||||||
if api == 'play/seat-overview' and member_type == 'nonmember': |
|
||||||
print('play/seat-overview') |
|
||||||
_timestamps = ApiPlaySeatOverview(**data).get_timestamp() |
|
||||||
# 3.2.2 获取单个卖品的图片信息* |
|
||||||
if api == 'cinema/goods-pic' and member_type == 'nonmember': |
|
||||||
print('cinema/goods-pic') |
|
||||||
_timestamps = ApiCinemaGoodsPic(**data).get_timestamp() |
|
||||||
# 3.3.1 座位锁定* |
|
||||||
if api == 'seat/lock' and member_type == 'nonmember': |
|
||||||
print('seat/lock') |
|
||||||
_timestamps = ApiSeatLock(**data).get_timestamp() |
|
||||||
# 3.3.2 座位解锁* |
|
||||||
if api == 'seat/unlock' and member_type == 'nonmember': |
|
||||||
print('seat/unlock') |
|
||||||
_timestamps = ApiSeatUnlock(**data).get_timestamp() |
|
||||||
# 3.3.3 混合下单(影票、卖品)* |
|
||||||
if api == 'seat/lock-buy' and member_type == 'nonmember': |
|
||||||
print('seat/lock-buy') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = ApiSeatLockBuy(**data).get_timestamp() |
|
||||||
# 3.3.4 单独下单(卖品)* |
|
||||||
if api == 'order/buy-goods' and member_type == 'nonmember': |
|
||||||
print('order/buy-goods') |
|
||||||
_timestamps = ApiOrderBuyGoods(**data).get_timestamp() |
|
||||||
# 3.3.5 混合退单(影票、卖品)* |
|
||||||
if api == 'ticket/refundv2' and member_type == 'nonmember': |
|
||||||
print('ticket/refundv2') |
|
||||||
_timestamps = ApiTicketRefundV2(**data).get_timestamp() |
|
||||||
# 3.3.6 单独退单(影票)* |
|
||||||
if api == 'ticket/refund' and member_type == 'nonmember': |
|
||||||
print('ticket/refund') |
|
||||||
_timestamps = ApiTicketRefund(**data).get_timestamp() |
|
||||||
# 3.3.7 查询订单状态及取票码* |
|
||||||
if api == 'order/ticket-flag' and member_type == 'nonmember': |
|
||||||
print('order/ticket-flag') |
|
||||||
_timestamps = ApiOrderTicketFlag(**data).get_timestamp() |
|
||||||
# 3.3.8 查询订单状态* |
|
||||||
if api == 'order/status' and member_type == 'nonmember': |
|
||||||
print('order/status') |
|
||||||
_timestamps = ApiOrderStatus(**data).get_timestamp() |
|
||||||
# 3.3.9 查询订单信息(影票)* |
|
||||||
if api == 'ticket/info' and member_type == 'nonmember': |
|
||||||
print('ticket/info') |
|
||||||
_timestamps = ApiTicketInfo(**data).get_timestamp() |
|
||||||
# 3.3.10 查询订单信息(影票、卖品)* |
|
||||||
if api == 'order/info' and member_type == 'nonmember': |
|
||||||
print('order/info') |
|
||||||
_timestamps = ApiOrderInfo(**data).get_timestamp() |
|
||||||
# 3.3.11 查询影票信息(检票商闸机扫码)* |
|
||||||
if api == 'ticket/info-by-qrcode' and member_type == 'nonmember': |
|
||||||
print('ticket/info-by-qrcode') |
|
||||||
_timestamps = ApiTicketInfoByQrcode(**data).get_timestamp() |
|
||||||
# 3.3.12 确认出票(设置影票为已出票)* |
|
||||||
if api == 'ticket/print' and member_type == 'nonmember': |
|
||||||
print('ticket/print') |
|
||||||
_timestamps = ApiTicketPrint(**data).get_timestamp() |
|
||||||
# 3.3.13 卖品确认出货(扣减卖品库存量)* |
|
||||||
if api == 'goods/deduct' and member_type == 'nonmember': |
|
||||||
print('goods/deduct') |
|
||||||
_timestamps = ApiGoodsDeduct(**data).get_timestamp() |
|
||||||
# 3.4.2 联名卡开卡* |
|
||||||
if api == 'ecard/regist' and member_type == 'nonmember': |
|
||||||
print('ecard/regist') |
|
||||||
_timestamps = ApiEcardRegist(**data).get_timestamp() |
|
||||||
# 3.4.3 联名卡续卡* |
|
||||||
if api == 'ecard/renew' and member_type == 'nonmember': |
|
||||||
print('ecard/renew') |
|
||||||
_timestamps = ApiEcardRenew(**data).get_timestamp() |
|
||||||
# 3.4.4 获取联名卡详情* |
|
||||||
if api == 'ecard/detail' and member_type == 'nonmember': |
|
||||||
print('ecard/detail') |
|
||||||
_timestamps = ApiEcardDetail(**data).get_timestamp() |
|
||||||
# 3.4.5 联名卡开卡/续卡订单详情* |
|
||||||
if api == 'ecard/order-detail' and member_type == 'nonmember': |
|
||||||
print('ecard/order-detail') |
|
||||||
_timestamps = ApiEcardOrderDetail(**data).get_timestamp() |
|
||||||
# 3.4.6 获取座位的联名卡价格* |
|
||||||
if api == 'ecard/seat-price' and member_type == 'nonmember': |
|
||||||
print('ecard/seat-price') |
|
||||||
_timestamps = ApiEcardSeatPrice(**data).get_timestamp() |
|
||||||
# 3.4.8 联名卡退单* |
|
||||||
if api == 'ecard/refund' and member_type == 'nonmember': |
|
||||||
print('ecard/refund') |
|
||||||
_timestamps = ApiEcardRefund(**data).get_timestamp() |
|
||||||
# 3.6.1 添加券* |
|
||||||
if api == 'seat/check-coupon' and member_type == 'nonmember': |
|
||||||
print('seat/check-coupon') |
|
||||||
print("kwargs['sale_type']", kwargs['sale_type']) |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
_timestamps = ApiSeatCheckCoupon(**data).get_timestamp() |
|
||||||
|
|
||||||
# 会员 |
|
||||||
# 3.1.2 会员卡密码校验 |
|
||||||
if api == 'card/auth' and member_type == 'member': |
|
||||||
print('card/auth') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardAuth(**data).get_timestamp() |
|
||||||
# 3.1.3 查询会员卡的详细信息 |
|
||||||
if api == 'card/detail' and member_type == 'member': |
|
||||||
print('card/detail') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardDetail(**data).get_timestamp() |
|
||||||
# 3.1.4 获取会员卡某场次的购票信息 |
|
||||||
if api == 'card/buy-info' and member_type == 'member': |
|
||||||
print('card/buy-info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardBuyInfo(**data).get_timestamp() |
|
||||||
# 3.1.5 获取有效的未出票订单 |
|
||||||
if api == 'order/tickets' and member_type == 'member': |
|
||||||
print('order/tickets') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiOrderTickets(**data).get_timestamp() |
|
||||||
# 3.1.6 查询会员卡充值记录 |
|
||||||
if api == 'card/recharge-log' and member_type == 'member': |
|
||||||
print('card/recharge-log') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardRechargeLog(**data).get_timestamp() |
|
||||||
# 3.1.7 查询会员卡历史订单 |
|
||||||
if api == 'order/list' and member_type == 'member': |
|
||||||
print('order/list') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiOrderList(**data).get_timestamp() |
|
||||||
# 3.1.8 查询某条订单的详细信息 |
|
||||||
if api == 'order/detail' and member_type == 'member': |
|
||||||
print('order/detail') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiOrderDetail(**data).get_timestamp() |
|
||||||
# 3.1.10 会员卡消费流水查询 |
|
||||||
if api == 'card/trade-query' and member_type == 'member': |
|
||||||
print('card/trade-query') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardTradeQuery(**data).get_timestamp() |
|
||||||
# 3.1.12 会员卡积分记录查询 |
|
||||||
if api == 'card/jifen-query' and member_type == 'member': |
|
||||||
print('card/jifen-query') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardJifenQuery(**data).get_timestamp() |
|
||||||
# 3.2.4 获取影片详细信息 |
|
||||||
if api == 'movie/info' and member_type == 'member': |
|
||||||
print('movie/info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiMovieInfo(**data).get_timestamp() |
|
||||||
# 3.2.5 获取场次详细信息 |
|
||||||
if api == 'play/info' and member_type == 'member': |
|
||||||
print('play/info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiPlayInfo(**data).get_timestamp() |
|
||||||
# 3.2.6 获取场次座位状态 |
|
||||||
if api == 'play/seat-status' and member_type == 'member': |
|
||||||
print('play/seat-status') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiPlaySeatStatus(**data).get_timestamp() |
|
||||||
# 3.2.7 获取场次座位状态增量 |
|
||||||
if api == 'play/period-changed-seats' and member_type == 'member': |
|
||||||
print('play/period-changed-seats') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiPlayPeriodChangedSeats(**data).get_timestamp() |
|
||||||
# 3.2.8 获取场次座位售卖统计信息 |
|
||||||
if api == 'play/seat-overview' and member_type == 'member': |
|
||||||
print('play/seat-overview') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiPlaySeatOverview(**data).get_timestamp() |
|
||||||
# 3.3.2 获取卖品折扣信息 |
|
||||||
if api == 'card/get-goods-price' and member_type == 'member': |
|
||||||
print('card/get-goods-price') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardGetGoodsPrice(**data).get_timestamp() |
|
||||||
# 3.4.1 订票 |
|
||||||
if api == 'seat/book' and member_type == 'member': |
|
||||||
print('seat/book') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiSeatBook(**data).get_timestamp() |
|
||||||
# 3.4.2 会员卡充值 |
|
||||||
if api == 'card/recharge' and member_type == 'member': |
|
||||||
print('card/recharge') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardRecharge(**data).get_timestamp() |
|
||||||
# 3.4.3 座位锁定 |
|
||||||
if api == 'seat/lock' and member_type == 'member': |
|
||||||
print('seat/lock') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiSeatLock(**data).get_timestamp() |
|
||||||
# 3.4.4 座位锁定后获取票价 |
|
||||||
if api == 'seat/price' and member_type == 'member': |
|
||||||
print('seat/price') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiSeatPrice(**data).get_timestamp() |
|
||||||
# 3.4.5 座位解锁 |
|
||||||
if api == 'seat/unlock' and member_type == 'member': |
|
||||||
print('seat/unlock') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiSeatUnlock(**data).get_timestamp() |
|
||||||
# 3.4.6 混合下单(影票、卖品) |
|
||||||
if api == 'seat/lock-buy' and member_type == 'member': |
|
||||||
print('seat/lock-buy') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiSeatLockBuy(**data).get_timestamp() |
|
||||||
# 3.4.7 单独下单(卖品) |
|
||||||
if api == 'order/buy-goods' and member_type == 'member': |
|
||||||
print('order/buy-goods') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiOrderBuyGoods(**data).get_timestamp() |
|
||||||
# 3.4.8 退单(影票、卖品) |
|
||||||
if api == 'ticket/refund' and member_type == 'member': |
|
||||||
print('ticket/refund') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiTicketRefund(**data).get_timestamp() |
|
||||||
# 3.4.9 查询订单状态及取票码 |
|
||||||
if api == 'order/ticket-flag' and member_type == 'member': |
|
||||||
print('order/ticket-flag') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiOrderTicketFlag(**data).get_timestamp() |
|
||||||
# 3.4.10 查询订单状态 |
|
||||||
if api == 'order/status' and member_type == 'member': |
|
||||||
print('order/status') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiOrderStatus(**data).get_timestamp() |
|
||||||
# 3.4.11 查询订单信息(影票) |
|
||||||
if api == 'ticket/info' and member_type == 'member': |
|
||||||
print('ticket/info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiTicketInfo(**data).get_timestamp() |
|
||||||
# 3.4.12 查询订单信息(影票、卖品) |
|
||||||
if api == 'order/info' and member_type == 'member': |
|
||||||
print('order/info') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiOrderInfo(**data).get_timestamp() |
|
||||||
# 3.4.13 确认出票(设置影票为已出票) |
|
||||||
if api == 'ticket/print' and member_type == 'member': |
|
||||||
print('ticket/print') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiTicketPrint(**data).get_timestamp() |
|
||||||
# 3.4.14 会员卡激活 |
|
||||||
if api == 'card/active' and member_type == 'member': |
|
||||||
print('card/active') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardActive(**data).get_timestamp() |
|
||||||
# 3.4.15 会员卡线上开卡 |
|
||||||
if api == 'card/regist' and member_type == 'member': |
|
||||||
print('card/regist') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCardRegist(**data).get_timestamp() |
|
||||||
# 3.5.1 充值明细对账 |
|
||||||
if api == 'cinema/recharge-bill' and member_type == 'member': |
|
||||||
print('cinema/recharge-bill') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCinemaRechargeBill(**data).get_timestamp() |
|
||||||
# 3.5.2 影票对账 |
|
||||||
if api == 'cinema/ticket-bill' and member_type == 'member': |
|
||||||
print('cinema/ticket-bill') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCinemaTicketBill(**data).get_timestamp() |
|
||||||
# 3.5.3 卖品对账 |
|
||||||
if api == 'cinema/goods-bill' and member_type == 'member': |
|
||||||
print('cinema/goods-bill') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCinemaGoodsBill(**data).get_timestamp() |
|
||||||
# 3.5.4 发卡明细对账 |
|
||||||
if api == 'cinema/send-card-bill' and member_type == 'member': |
|
||||||
print('cinema/send-card-bill') |
|
||||||
data['sale_type'] = kwargs['sale_type'] |
|
||||||
data['pay_type'] = kwargs['pay_type'] |
|
||||||
_timestamps = MapiCinemaSendCardBill(**data).get_timestamp() |
|
||||||
return _timestamps |
|
@ -1,27 +0,0 @@ |
|||||||
import xml.etree.ElementTree as ET |
|
||||||
|
|
||||||
|
|
||||||
def parse_dict_to_xml(_root, data): |
|
||||||
for key, val in data.items(): |
|
||||||
child = ET.SubElement(_root, key) |
|
||||||
if isinstance(val, str) or isinstance(val, int) or isinstance(val, float): |
|
||||||
child.text = str(val) |
|
||||||
else: |
|
||||||
parse_dict_to_xml(child, val) |
|
||||||
return _root |
|
||||||
|
|
||||||
|
|
||||||
def get_xml(_data): |
|
||||||
root = ET.Element('root') |
|
||||||
xml_data = parse_dict_to_xml(root, _data) |
|
||||||
xml_str = ET.tostring(xml_data, encoding='utf8', method='xml') |
|
||||||
return xml_str |
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__': |
|
||||||
# failed_resp_data = {'url': '请检查foramt、pid参数', 'sig': ''} |
|
||||||
# root = ET.Element('root') |
|
||||||
# xml_data = parse_dict_to_xml(root, failed_resp_data) |
|
||||||
# xml_str = ET.tostring(xml_data, encoding='utf8', method='xml') |
|
||||||
# print(xml_str) |
|
||||||
pass |
|
@ -1,51 +0,0 @@ |
|||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_card import get_card, get_card_level_val |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardActive: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
|
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num) |
|
||||||
|
|
||||||
# partner_order_id |
|
||||||
partner_order_id = general_order_num('ACTIVE', self.api, self.member_type, self.ip, self.env, self.pid, |
|
||||||
self.cid) |
|
||||||
add_param(self.return_data, 'partner_order_id', partner_order_id) |
|
||||||
|
|
||||||
# money |
|
||||||
active_card_pay = '自动获取激活费用,请手动输入!' |
|
||||||
if card_result: |
|
||||||
active_card_pay = get_card_level_val(self.env, self.pid, self.cid, card_num, 'activeCardFee') |
|
||||||
add_param(self.return_data, 'money', active_card_pay) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,42 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_card import get_card |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import hashlib |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardAuth: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000)) |
|
||||||
|
|
||||||
# password |
|
||||||
add_param(self.return_data, 'password', self.pay_type['card_password'] , timestamp=int(time.time() * 1000)) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,49 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.handle_card import get_card |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardBuyInfo: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000)) |
|
||||||
|
|
||||||
# 获取play_id 和 play_update_time |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_play = {'name': '3.2.3 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api_play = f'{redis_key_prefix}_{request_api_play["path"]}' |
|
||||||
result_play, _format_play, seat_price_from_play, _timestamp_play = get_data_from_redis(redis_key_api_play) |
|
||||||
play_id = '请手动输入参数,检查相关接口返回值:3.2.3 获取放映计划列表' |
|
||||||
if result_play: |
|
||||||
play_id = seat_price_from_play['id'] |
|
||||||
add_param(self.return_data, 'play_id', play_id, timestamp=int(time.time() * 1000)) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,5 +0,0 @@ |
|||||||
from dspt_api.util.mapi.card_auth import MapiCardAuth |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardDetail(MapiCardAuth): |
|
||||||
pass |
|
@ -1,57 +0,0 @@ |
|||||||
import json |
|
||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
from dspt_api.util.general.handle_card import get_card |
|
||||||
from dspt_api.util.general.handle_goods import general_goods_field_member, change_goods_price_str |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardGetGoodsPrice: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data) |
|
||||||
|
|
||||||
# card & goods |
|
||||||
self.handle() |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
def get_timestamp(self): |
|
||||||
return self.handle() |
|
||||||
|
|
||||||
def handle(self): |
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num) |
|
||||||
|
|
||||||
# goods |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_play_seat_status = {'name': '3.3.1 获取卖品列表', 'path': 'cinema/goods'} |
|
||||||
redis_key_api_play_seat_status = f'{redis_key_prefix}_{request_api_play_seat_status["path"]}' |
|
||||||
result, _format, _goods_data, _timestamp = get_data_from_redis(redis_key_api_play_seat_status) |
|
||||||
goods = '请手动输入参数,或先请求接口:3.3.1 获取卖品列表' |
|
||||||
if result: |
|
||||||
goods_field_list, total_goods_val = general_goods_field_member(_goods_data, self.user_data) |
|
||||||
goods = json.dumps(change_goods_price_str(goods_field_list)) |
|
||||||
add_param(self.return_data,'goods', goods) |
|
||||||
|
|
||||||
return _timestamp if result else 0 |
|
@ -1,45 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_time import get_stime_etime |
|
||||||
from dspt_api.util.general.handle_card import get_card |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardJifenQuery: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
|
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000)) |
|
||||||
|
|
||||||
# stime and etime |
|
||||||
start_date, end_date = get_stime_etime('date') |
|
||||||
add_param(self.return_data, 'start', start_date) |
|
||||||
add_param(self.return_data, 'end', end_date) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,51 +0,0 @@ |
|||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_card import get_card, get_card_val |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardRecharge: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
|
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num) |
|
||||||
|
|
||||||
# partner_deposit_id |
|
||||||
partner_deposit_id = general_order_num('RECHARGE', self.api, self.member_type, self.ip, self.env, self.pid, |
|
||||||
self.cid) |
|
||||||
add_param(self.return_data, 'partner_deposit_id', partner_deposit_id) |
|
||||||
|
|
||||||
# money |
|
||||||
recharge_pay = get_card_val(self.env, self.pid, self.cid, card_num, 'minAddMoney') |
|
||||||
if not recharge_pay: |
|
||||||
recharge_pay = '自动获取最低充值金额失败,请手动输入!' |
|
||||||
add_param(self.return_data, 'money', recharge_pay) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,5 +0,0 @@ |
|||||||
from dspt_api.util.mapi.card_auth import MapiCardAuth |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardRechargeLog(MapiCardAuth): |
|
||||||
pass |
|
@ -1,62 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import json |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardRegist: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
# partner_order_id |
|
||||||
partner_order_id = general_order_num('REG', self.api, self.member_type, self.ip, self.env, self.pid, |
|
||||||
self.cid) |
|
||||||
add_param(self.return_data, 'partner_order_id', partner_order_id) |
|
||||||
|
|
||||||
# check_mobile |
|
||||||
add_param(self.return_data, 'check_mobile', '2') |
|
||||||
|
|
||||||
# card_info |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_card_level = {'name': '3.1.1 获取影院卡等级规则', 'path': 'cinema/card-level-rule'} |
|
||||||
redis_key_api_card_level = f'{redis_key_prefix}_{request_api_card_level["path"]}' |
|
||||||
result_card_level, _format_card_level, data_card_level, _timestamp_card_level = get_data_from_redis( |
|
||||||
redis_key_api_card_level) |
|
||||||
card_info = '请手动输入参数,或先请求接口:3.1.1 获取影院卡等级规则' |
|
||||||
if result_card_level: |
|
||||||
card_info = {'password': self.pay_type['card_password'], |
|
||||||
'mobile': '18688886666', |
|
||||||
'cardLevelId': data_card_level['levelId'], |
|
||||||
'cardLevelName': data_card_level['levelName'], |
|
||||||
'rechargeValue': data_card_level['initMoney'], |
|
||||||
'sendCardFee': data_card_level['sendCardFee'], |
|
||||||
'sendCardEquityFee': data_card_level['sendCardEquityFee'], |
|
||||||
'exchangeBarcode': None} |
|
||||||
add_param(self.return_data, 'card_info', json.dumps(card_info) if result_card_level else card_info) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,44 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_time import get_stime_etime |
|
||||||
from dspt_api.util.general.handle_card import get_card |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiCardTradeQuery: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000)) |
|
||||||
|
|
||||||
# stime and etime |
|
||||||
start_date, end_date = get_stime_etime('time') |
|
||||||
add_param(self.return_data, 'stime', start_date) |
|
||||||
add_param(self.return_data, 'etime', end_date) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,4 +0,0 @@ |
|||||||
from dspt_api.util.mapi.cinema_recharge_bill import MapiCinemaRechargeBill |
|
||||||
|
|
||||||
class MapiCinemaGoodsBill(MapiCinemaRechargeBill): |
|
||||||
pass |
|
@ -1,40 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_time import get_stime_etime |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiCinemaRechargeBill: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
|
|
||||||
# stime and etime |
|
||||||
start_date, end_date = get_stime_etime('date', today=False) |
|
||||||
add_param(self.return_data, 'start_date', start_date) |
|
||||||
add_param(self.return_data, 'end_date', end_date) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,4 +0,0 @@ |
|||||||
from dspt_api.util.mapi.cinema_recharge_bill import MapiCinemaRechargeBill |
|
||||||
|
|
||||||
class MapiCinemaSendCardBill(MapiCinemaRechargeBill): |
|
||||||
pass |
|
@ -1,4 +0,0 @@ |
|||||||
from dspt_api.util.mapi.cinema_recharge_bill import MapiCinemaRechargeBill |
|
||||||
|
|
||||||
class MapiCinemaTicketBill(MapiCinemaRechargeBill): |
|
||||||
pass |
|
@ -1,45 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiMovieInfo: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
|
|
||||||
# mid |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_play = {'name': '3.2.3 获取放映计划列表', 'path': 'cinema/plays'} |
|
||||||
redis_key_api_play = f'{redis_key_prefix}_{request_api_play["path"]}' |
|
||||||
result_play, _format_play, seat_price_from_play, _timestamp_play = get_data_from_redis(redis_key_api_play) |
|
||||||
mid = '请手动输入参数,检查相关接口返回值:3.2.3 获取放映计划列表' |
|
||||||
if result_play: |
|
||||||
mid = seat_price_from_play['movieInfo'][0]['cineMovieId'] |
|
||||||
add_param(self.return_data, 'mid', mid, timestamp=int(time.time() * 1000)) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,84 +0,0 @@ |
|||||||
from dspt_api.util.general.get_order_num import general_order_num |
|
||||||
from dspt_api.util.general.handle_goods import general_goods_params_member |
|
||||||
from dspt_api.util.general.handle_card import get_card |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
import json |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MapiOrderBuyGoods: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
|
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num) |
|
||||||
|
|
||||||
# mobile |
|
||||||
add_param(self.return_data, 'mobile', '18688886666', timestamp=1000000000000) |
|
||||||
|
|
||||||
# partner_buy_ticket_id |
|
||||||
partner_buy_ticket_id = general_order_num('BUY_G', self.api, self.member_type, self.ip, self.env, self.pid, |
|
||||||
self.cid) |
|
||||||
add_param(self.return_data, 'partner_buy_ticket_id', partner_buy_ticket_id) |
|
||||||
|
|
||||||
self.handle(card_num) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
||||||
|
|
||||||
def handle(self, card_num): |
|
||||||
_third_pay = 0 |
|
||||||
if self.sale_type == 'goods': |
|
||||||
# goods & goods_card_balance_pay & goods_cash |
|
||||||
_good_result, _goods_field, _goods_card_balance_pay, _goods_cash, _third_pay, _goods_timestamp = general_goods_params_member( |
|
||||||
self.user_data, self.pay_type, card_num, _third_pay) |
|
||||||
|
|
||||||
print('general_goods_params_member', _good_result, _goods_field, _goods_card_balance_pay, _goods_cash, |
|
||||||
_third_pay, _goods_timestamp) |
|
||||||
goods = '请手动输入参数,或先请求接口:3.3.1 获取卖品列表' |
|
||||||
goods_card_balance_pay = '请手动输入参数,或先请求接口:3.3.1 获取卖品列表' |
|
||||||
goods_cash = '请手动输入参数,或先请求接口:3.3.1 获取卖品列表' |
|
||||||
if (not _good_result) and _goods_field is not None: |
|
||||||
goods = _goods_field |
|
||||||
goods_card_balance_pay = _goods_card_balance_pay |
|
||||||
goods_cash = _goods_cash |
|
||||||
if _good_result: |
|
||||||
goods = json.dumps(_goods_field) |
|
||||||
goods_card_balance_pay = _goods_card_balance_pay |
|
||||||
goods_cash = _goods_cash |
|
||||||
add_param(self.return_data, 'goods', goods, timestamp=_goods_timestamp) |
|
||||||
add_param(self.return_data, 'goods_card_balance_pay', goods_card_balance_pay, timestamp=_goods_timestamp) |
|
||||||
add_param(self.return_data, 'goods_cash', goods_cash, timestamp=_goods_timestamp) |
|
||||||
add_param(self.return_data, 'delivery_type', '2', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
add_param(self.return_data, 'delivery_location', '1号厅', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
add_param(self.return_data, 'delivery_appoint_time', |
|
||||||
time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time() + 5 * 60)), is_checked=False, |
|
||||||
timestamp=_goods_timestamp) |
|
||||||
add_param(self.return_data, 'contact_number', '18688886666', is_checked=False, timestamp=_goods_timestamp) |
|
||||||
add_param(self.return_data, 't3d_pay_amount', _third_pay, timestamp=_goods_timestamp) |
|
@ -1,52 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis |
|
||||||
from dspt_api.util.general.handle_card import get_card |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiOrderDetail: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
# 获取会员卡号 |
|
||||||
card_result, card_num = get_card(self.ip, self.env, self.pid, self.cid, self.pay_type['card_num']) |
|
||||||
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000)) |
|
||||||
|
|
||||||
# order_id |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
request_api_play = {'name': '3.4.6 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_play = f'{redis_key_prefix}_{request_api_play["path"]}' |
|
||||||
result_buy, _format_buy, data_buy, _timestamp_buy = get_data_from_redis(redis_key_api_play) |
|
||||||
order_id = '请手动输入参数,检查相关接口返回值:3.4.6 混合下单(影票、卖品)' |
|
||||||
if result_buy: |
|
||||||
order_id = data_buy['ticketFlag1'] + data_buy['ticketFlag2'] |
|
||||||
add_param(self.return_data, 'order_id', order_id) |
|
||||||
|
|
||||||
#type |
|
||||||
add_param(self.return_data, 'type', 'sell') |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,70 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_data_from_redis, get_timestamp_from_redis |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiOrderInfo: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
# ticket_flag1 & ticket_flag2 |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
|
|
||||||
# 影票 |
|
||||||
request_api_lock_buy = {'name': '3.4.6 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
timestamp_lock_buy = get_timestamp_from_redis(redis_key_api_lock_buy) |
|
||||||
result_lock_buy, _format_lock_buy, data_lock_buy, _timestamp_lock_buy = get_data_from_redis( |
|
||||||
redis_key_api_lock_buy) |
|
||||||
|
|
||||||
# 卖品 |
|
||||||
request_api_buy_goods = {'name': '3.4.7 单独下单(卖品)', 'path': 'order/buy-goods'} |
|
||||||
redis_key_api_buy_goods = f'{redis_key_prefix}_{request_api_buy_goods["path"]}' |
|
||||||
timestamp_buy_goods = get_timestamp_from_redis(redis_key_api_buy_goods) |
|
||||||
result_buy_goods, _format_buy_goods, data_buy_goods, _timestamp_buy_goods = get_data_from_redis( |
|
||||||
redis_key_api_buy_goods) |
|
||||||
|
|
||||||
ticket_flag1 = '请手动输入参数,检查相关接口返回值:3.4.6 混合下单(影票、卖品) 或 3.4.7 单独下单(卖品)' |
|
||||||
ticket_flag2 = '请手动输入参数,检查相关接口返回值:3.4.6 混合下单(影票、卖品) 或 3.4.7 单独下单(卖品)' |
|
||||||
if result_lock_buy and result_buy_goods: |
|
||||||
if int(timestamp_lock_buy) > int(timestamp_buy_goods): |
|
||||||
ticket_flag1 = data_lock_buy['ticketFlag1'] |
|
||||||
ticket_flag2 = data_lock_buy['ticketFlag2'] |
|
||||||
else: |
|
||||||
ticket_flag1 = data_buy_goods['ticketFlag1'] |
|
||||||
ticket_flag2 = data_buy_goods['ticketFlag2'] |
|
||||||
elif result_lock_buy: |
|
||||||
ticket_flag1 = data_lock_buy['ticketFlag1'] |
|
||||||
ticket_flag2 = data_lock_buy['ticketFlag2'] |
|
||||||
elif result_buy_goods: |
|
||||||
ticket_flag1 = data_buy_goods['ticketFlag1'] |
|
||||||
ticket_flag2 = data_buy_goods['ticketFlag2'] |
|
||||||
|
|
||||||
add_param(self.return_data, 'ticket_flag1', ticket_flag1) |
|
||||||
add_param(self.return_data, 'ticket_flag2', ticket_flag2) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
@ -1,5 +0,0 @@ |
|||||||
from dspt_api.util.mapi.card_auth import MapiCardAuth |
|
||||||
|
|
||||||
|
|
||||||
class MapiOrderList(MapiCardAuth): |
|
||||||
pass |
|
@ -1,60 +0,0 @@ |
|||||||
from dspt_api.util.general.handle_redis import get_param_from_redis, get_timestamp_from_redis |
|
||||||
from dspt_api.util.general.handle_params import add_param |
|
||||||
import time |
|
||||||
|
|
||||||
|
|
||||||
class MapiOrderStatus: |
|
||||||
def __init__(self, **kwargs): |
|
||||||
self.member_type = kwargs.get('member_type') |
|
||||||
self.api = kwargs.get('api') |
|
||||||
self.ip = kwargs.get('ip') |
|
||||||
self.env = kwargs.get('env') |
|
||||||
self.cid = kwargs.get('cid') |
|
||||||
self.pid = kwargs.get('pid') |
|
||||||
self.sale_type = kwargs.get('sale_type') |
|
||||||
self.pay_type = kwargs.get('pay_type') |
|
||||||
self.user_data = { |
|
||||||
'ip': self.ip, |
|
||||||
'env': self.env, |
|
||||||
'member_type': self.member_type, |
|
||||||
'pid': self.pid, |
|
||||||
'cid': self.cid, |
|
||||||
'sale_type': self.sale_type, |
|
||||||
'pay_type': self.pay_type, |
|
||||||
} |
|
||||||
self.return_data = [] |
|
||||||
|
|
||||||
def get_suggestion(self): |
|
||||||
print('get_suggestion', self.user_data, self.sale_type, self.pay_type) |
|
||||||
# 获取其他参数 |
|
||||||
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}' |
|
||||||
# partner_buy_ticket_id |
|
||||||
# 影票 |
|
||||||
request_api_lock_buy = {'name': '3.4.6 混合下单(影票、卖品)', 'path': 'seat/lock-buy'} |
|
||||||
redis_key_api_lock_buy = f'{redis_key_prefix}_{request_api_lock_buy["path"]}' |
|
||||||
timestamp_lock_buy = get_timestamp_from_redis(redis_key_api_lock_buy) |
|
||||||
param_lock_buy = get_param_from_redis(redis_key_api_lock_buy) |
|
||||||
# 卖品 |
|
||||||
request_api_buy_goods = {'name': '3.4.7 单独下单(卖品)', 'path': 'order/buy-goods'} |
|
||||||
redis_key_api_buy_goods = f'{redis_key_prefix}_{request_api_buy_goods["path"]}' |
|
||||||
timestamp_buy_goods = get_timestamp_from_redis(redis_key_api_buy_goods) |
|
||||||
param_buy_goods = get_param_from_redis(redis_key_api_buy_goods) |
|
||||||
|
|
||||||
partner_order_id = '请手动输入参数,或先请求接口3.4.6 混合下单(影票、卖品)或 3.4.7 单独下单(卖品)' |
|
||||||
if timestamp_lock_buy and timestamp_buy_goods: |
|
||||||
if int(timestamp_lock_buy) > int(timestamp_buy_goods): |
|
||||||
partner_order_id = param_lock_buy['partner_buy_ticket_id'] |
|
||||||
else: |
|
||||||
partner_order_id = param_buy_goods['partner_buy_ticket_id'] |
|
||||||
elif timestamp_lock_buy: |
|
||||||
partner_order_id = param_lock_buy['partner_buy_ticket_id'] |
|
||||||
elif timestamp_buy_goods: |
|
||||||
partner_order_id = param_buy_goods['partner_buy_ticket_id'] |
|
||||||
add_param(self.return_data, 'partner_order_id', partner_order_id) |
|
||||||
|
|
||||||
print(__name__, self.return_data) |
|
||||||
return self.return_data |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def get_timestamp(): |
|
||||||
return int(time.time() * 1000) |
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue