完成会员场次座位相关接口

main
RogerWork 4 weeks ago
parent 2b7628186f
commit 01ec30a462
  1. 10
      dspt_api/util/general/handle_time.py
  2. 63
      dspt_api/util/general/suggest_params.py
  3. 42
      dspt_api/util/mapi/card_jifen_query.py
  4. 42
      dspt_api/util/mapi/card_trade_query.py
  5. 46
      dspt_api/util/mapi/movie_info.py
  6. 50
      dspt_api/util/mapi/order_detail.py
  7. 47
      dspt_api/util/mapi/play_info.py
  8. 49
      dspt_api/util/mapi/play_period_changed_seats.py
  9. 5
      dspt_api/util/mapi/play_seat_overview.py

@ -0,0 +1,10 @@
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

@ -37,6 +37,13 @@ from dspt_api.util.mapi.card_buy_info import MapiCardBuyInfo
from dspt_api.util.mapi.order_tickets import MapiOrderTickets from dspt_api.util.mapi.order_tickets import MapiOrderTickets
from dspt_api.util.mapi.card_recharge_log import MapiCardRechargeLog 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_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
# 通过api来匹配不同的接口文件获取推荐 # 通过api来匹配不同的接口文件获取推荐
@ -188,10 +195,38 @@ def suggest_params(member_type, api, env, cid, pid, ip, **kwargs):
if api == 'order/list' and member_type == 'member': if api == 'order/list' and member_type == 'member':
print('order/list') print('order/list')
params = MapiOrderList(**data).get_suggestion() params = MapiOrderList(**data).get_suggestion()
# 3.1.8 查询某条订单的详细信息
if api == 'order/detail' and member_type == 'member':
print('order/detail')
params = MapiOrderDetail(**data).get_suggestion()
# 3.1.10 会员卡消费流水查询
if api == 'card/trade-query' and member_type == 'member':
print('card/trade-query')
params = MapiCardTradeQuery(**data).get_suggestion()
# 3.1.12 会员卡积分记录查询
if api == 'card/jifen-query' and member_type == 'member':
print('card/jifen-query')
params = MapiCardJifenQuery(**data).get_suggestion()
# 3.2.4 获取影片详细信息
if api == 'movie/info' and member_type == 'member':
print('movie/info')
params = MapiMovieInfo(**data).get_suggestion()
# 3.2.5 获取场次详细信息
if api == 'play/info' and member_type == 'member':
print('play/info')
params = MapiPlayInfo(**data).get_suggestion()
# 3.2.6 获取场次座位状态 # 3.2.6 获取场次座位状态
if api == 'play/seat-status' and member_type == 'member': if api == 'play/seat-status' and member_type == 'member':
print('play/seat-status') print('play/seat-status')
params = MapiPlaySeatStatus(**data).get_suggestion() params = MapiPlaySeatStatus(**data).get_suggestion()
# 3.2.7 获取场次座位状态增量
if api == 'play/period-changed-seats' and member_type == 'member':
print('play/period-changed-seats')
params = MapiPlayPeriodChangedSeats(**data).get_suggestion()
# 3.2.8 获取场次座位售卖统计信息
if api == 'play/seat-overview' and member_type == 'member':
print('play/seat-overview')
params = MapiPlaySeatOverview(**data).get_suggestion()
# 3.3.2 获取卖品折扣信息 # 3.3.2 获取卖品折扣信息
if api == 'card/get-goods-price' and member_type == 'member': if api == 'card/get-goods-price' and member_type == 'member':
print('card/get-goods-price') print('card/get-goods-price')
@ -364,10 +399,38 @@ def suggest_params_timestamp(member_type, api, env, cid, pid, ip, **kwargs):
if api == 'order/list' and member_type == 'member': if api == 'order/list' and member_type == 'member':
print('order/list') print('order/list')
_timestamps = MapiOrderList(**data).get_timestamp() _timestamps = MapiOrderList(**data).get_timestamp()
# 3.1.8 查询某条订单的详细信息
if api == 'order/detail' and member_type == 'member':
print('order/detail')
_timestamps = MapiOrderDetail(**data).get_timestamp()
# 3.1.10 会员卡消费流水查询
if api == 'card/trade-query' and member_type == 'member':
print('card/trade-query')
_timestamps = MapiCardTradeQuery(**data).get_timestamp()
# 3.1.12 会员卡积分记录查询
if api == 'card/jifen-query' and member_type == 'member':
print('card/jifen-query')
_timestamps = MapiCardJifenQuery(**data).get_timestamp()
# 3.2.4 获取影片详细信息
if api == 'movie/info' and member_type == 'member':
print('movie/info')
_timestamps = MapiMovieInfo(**data).get_timestamp()
# 3.2.5 获取场次详细信息
if api == 'play/info' and member_type == 'member':
print('play/info')
_timestamps = MapiPlayInfo(**data).get_timestamp()
# 3.2.6 获取场次座位状态 # 3.2.6 获取场次座位状态
if api == 'play/seat-status' and member_type == 'member': if api == 'play/seat-status' and member_type == 'member':
print('play/seat-status') print('play/seat-status')
_timestamps = MapiPlaySeatStatus(**data).get_timestamp() _timestamps = MapiPlaySeatStatus(**data).get_timestamp()
# 3.2.7 获取场次座位状态增量
if api == 'play/period-changed-seats' and member_type == 'member':
print('play/period-changed-seats')
_timestamps = MapiPlayPeriodChangedSeats(**data).get_timestamp()
# 3.2.8 获取场次座位售卖统计信息
if api == 'play/seat-overview' and member_type == 'member':
print('play/seat-overview')
_timestamps = MapiPlaySeatOverview(**data).get_timestamp()
# 3.3.2 获取卖品折扣信息 # 3.3.2 获取卖品折扣信息
if api == 'card/get-goods-price' and member_type == 'member': if api == 'card/get-goods-price' and member_type == 'member':
print('card/get-goods-price') print('card/get-goods-price')

@ -0,0 +1,42 @@
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_num = get_card(self.ip, self.env, self.pid, self.cid)
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)

@ -0,0 +1,42 @@
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, datetime
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_num = get_card(self.ip, self.env, self.pid, self.cid)
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)

@ -0,0 +1,46 @@
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 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)
# 获取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)
cine_movie_id = seat_price_from_play['movieInfo'][0]['cineMovieId']
if result_play is False:
add_param(self.return_data, 'mid', '请手动输入参数,检查相关接口返回值:3.2.3 获取放映计划列表',
timestamp=int(time.time() * 1000))
else:
add_param(self.return_data, 'mid', cine_movie_id, timestamp=int(time.time() * 1000))
return self.return_data
@staticmethod
def get_timestamp():
return int(time.time() * 1000)

@ -0,0 +1,50 @@
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_num = get_card(self.ip, self.env, self.pid, self.cid)
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 = data_buy['ticketFlag1'] + data_buy['ticketFlag2']
if result_buy is False:
add_param(self.return_data, 'order_id', '请手动输入参数,检查相关接口返回值:3.4.6 混合下单(影票、卖品)',
timestamp=int(time.time() * 1000))
else:
add_param(self.return_data, 'order_id', order_id)
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)

@ -0,0 +1,47 @@
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 MapiPlayInfo:
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)
# 获取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)
print('seat_price_from_play', seat_price_from_play)
play_id = seat_price_from_play['id']
if result_play is False:
add_param(self.return_data, 'play_id', '请手动输入参数,检查相关接口返回值:3.2.3 获取放映计划列表',
timestamp=int(time.time() * 1000))
else:
add_param(self.return_data, 'play_id', play_id, timestamp=int(time.time() * 1000))
return self.return_data
@staticmethod
def get_timestamp():
return int(time.time() * 1000)

@ -0,0 +1,49 @@
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, datetime
class MapiPlayPeriodChangedSeats:
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)
# 获取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)
print('seat_price_from_play', seat_price_from_play)
play_id = seat_price_from_play['id']
if result_play is False:
add_param(self.return_data, 'play_id', '请手动输入参数,检查相关接口返回值:3.2.3 获取放映计划列表',
timestamp=int(time.time() * 1000))
else:
add_param(self.return_data, 'play_id', play_id, timestamp=int(time.time() * 1000))
start = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d') + ' 06:00:00'
add_param(self.return_data, 'start', start, timestamp=int(time.time() * 1000))
return self.return_data
@staticmethod
def get_timestamp():
return int(time.time() * 1000)

@ -0,0 +1,5 @@
from dspt_api.util.mapi.play_info import MapiPlayInfo
class MapiPlaySeatOverview(MapiPlayInfo):
pass
Loading…
Cancel
Save