完成基本的会员卡接口

main
RogerWork 3 months ago
parent 6608249bc2
commit 2b7628186f
  1. 2
      dspt_api/util/general/handle_card.py
  2. 55
      dspt_api/util/general/suggest_params.py
  3. 37
      dspt_api/util/mapi/card_auth.py
  4. 50
      dspt_api/util/mapi/card_buy_info.py
  5. 5
      dspt_api/util/mapi/card_detail.py
  6. 5
      dspt_api/util/mapi/card_get_goods_price.py
  7. 5
      dspt_api/util/mapi/card_recharge_log.py
  8. 5
      dspt_api/util/mapi/order_buy_goods.py
  9. 5
      dspt_api/util/mapi/order_list.py
  10. 5
      dspt_api/util/mapi/order_tickets.py
  11. 5
      dspt_api/util/mapi/seat_lock_buy.py
  12. 6
      dspt_api/util/mapi/seat_price.py

@ -13,7 +13,7 @@ def get_card(ip, env, pid, cid):
card_num = redis_con.get(redis_key)
print('get_card-card_num', card_num)
return str(card_num, encoding='utf-8')
return False
return '请手动输入会员卡号'
def set_card(ip, env, pid, cid, card):

@ -31,6 +31,13 @@ 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
# 通过api来匹配不同的接口文件获取推荐
# 返回推荐参数应该包含参数名,参数值,和是否勾选的状态
@ -157,6 +164,30 @@ def suggest_params(member_type, api, env, cid, pid, ip, **kwargs):
params = ApiSeatCheckCoupon(**data).get_suggestion()
# 会员
# 3.1.2 会员卡密码校验
if api == 'card/auth' and member_type == 'member':
print('card/auth')
params = MapiCardAuth(**data).get_suggestion()
# 3.1.3 查询会员卡的详细信息
if api == 'card/detail' and member_type == 'member':
print('card/detail')
params = MapiCardDetail(**data).get_suggestion()
# 3.1.4 获取会员卡某场次的购票信息
if api == 'card/buy-info' and member_type == 'member':
print('card/buy-info')
params = MapiCardBuyInfo(**data).get_suggestion()
# 3.1.5 获取有效的未出票订单
if api == 'order/tickets' and member_type == 'member':
print('order/tickets')
params = MapiOrderTickets(**data).get_suggestion()
# 3.1.6 查询会员卡充值记录
if api == 'card/recharge-log' and member_type == 'member':
print('card/recharge-log')
params = MapiCardRechargeLog(**data).get_suggestion()
# 3.1.7 查询会员卡历史订单
if api == 'order/list' and member_type == 'member':
print('order/list')
params = MapiOrderList(**data).get_suggestion()
# 3.2.6 获取场次座位状态
if api == 'play/seat-status' and member_type == 'member':
print('play/seat-status')
@ -309,6 +340,30 @@ def suggest_params_timestamp(member_type, api, env, cid, pid, ip, **kwargs):
_timestamps = ApiSeatCheckCoupon(**data).get_timestamp()
# 会员
# 3.1.2 会员卡密码校验
if api == 'card/auth' and member_type == 'member':
print('card/auth')
_timestamps = MapiCardAuth(**data).get_timestamp()
# 3.1.3 查询会员卡的详细信息
if api == 'card/detail' and member_type == 'member':
print('card/detail')
_timestamps = MapiCardDetail(**data).get_timestamp()
# 3.1.4 获取会员卡某场次的购票信息
if api == 'card/buy-info' and member_type == 'member':
print('card/buy-info')
_timestamps = MapiCardBuyInfo(**data).get_timestamp()
# 3.1.5 获取有效的未出票订单
if api == 'order/tickets' and member_type == 'member':
print('order/tickets')
_timestamps = MapiOrderTickets(**data).get_timestamp()
# 3.1.6 查询会员卡充值记录
if api == 'card/recharge-log' and member_type == 'member':
print('card/recharge-log')
_timestamps = MapiCardRechargeLog(**data).get_timestamp()
# 3.1.7 查询会员卡历史订单
if api == 'order/list' and member_type == 'member':
print('order/list')
_timestamps = MapiOrderList(**data).get_timestamp()
# 3.2.6 获取场次座位状态
if api == 'play/seat-status' and member_type == 'member':
print('play/seat-status')

@ -0,0 +1,37 @@
from dspt_api.util.general.handle_card import get_card
from dspt_api.util.general.handle_params import add_param
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_num = get_card(self.ip, self.env, self.pid, self.cid)
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000))
print(__name__, self.return_data)
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 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_num = get_card(self.ip, self.env, self.pid, self.cid)
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000))
print(__name__, self.return_data)
# 获取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 = 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,5 @@
from dspt_api.util.mapi.card_auth import MapiCardAuth
class MapiCardDetail(MapiCardAuth):
pass

@ -36,10 +36,7 @@ class MapiCardGetGoodsPrice:
def handle(self):
# 获取会员卡号
card_num = get_card(self.ip, self.env, self.pid, self.cid)
if card_num is False:
add_param(self.return_data, 'card', '请手动输入会员卡号', timestamp=int(time.time() * 1000))
else:
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000))
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000))
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"]}'

@ -0,0 +1,5 @@
from dspt_api.util.mapi.card_auth import MapiCardAuth
class MapiCardRechargeLog(MapiCardAuth):
pass

@ -34,10 +34,7 @@ class MapiOrderBuyGoods:
print('get_suggestion', self.user_data, self.sale_type, self.pay_type)
# 获取会员卡号
card_num = get_card(self.ip, self.env, self.pid, self.cid)
if card_num is False:
add_param(self.return_data, 'card', '请手动输入会员卡号', timestamp=int(time.time() * 1000))
else:
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000))
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000))
# 通用字段
add_param(self.return_data, 'mobile', '18688886666', timestamp=1000000000000)
_partner_buy_ticket_id = general_order_num('BUY_T', self.api, self.member_type, self.ip, self.env, self.pid,

@ -0,0 +1,5 @@
from dspt_api.util.mapi.card_auth import MapiCardAuth
class MapiOrderList(MapiCardAuth):
pass

@ -0,0 +1,5 @@
from dspt_api.util.mapi.card_auth import MapiCardAuth
class MapiOrderTickets(MapiCardAuth):
pass

@ -34,10 +34,7 @@ class MapiSeatLockBuy:
print('get_suggestion', self.user_data, self.sale_type, self.pay_type)
# 获取会员卡号
card_num = get_card(self.ip, self.env, self.pid, self.cid)
if card_num is False:
add_param(self.return_data, 'card', '请手动输入会员卡号', timestamp=int(time.time() * 1000))
else:
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000))
add_param(self.return_data, 'card', card_num, timestamp=int(time.time() * 1000))
# 通用字段
add_param(self.return_data, 'mobile', '18688886666', timestamp=1000000000000)
_partner_buy_ticket_id = general_order_num('BUY_T', self.api, self.member_type, self.ip, self.env, self.pid,

@ -30,10 +30,8 @@ class MapiSeatPrice:
def handle(self):
# card
card = get_card(self.ip, self.env, self.pid, self.cid)
if not card:
add_param(self.return_data, 'card', '请手动输入参数')
add_param(self.return_data, 'card', card)
card_num = get_card(self.ip, self.env, self.pid, self.cid)
add_param(self.return_data, 'card', card_num)
redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}'
# lock_code

Loading…
Cancel
Save