|
|
|
@ -46,8 +46,9 @@ def general_seat_params(pay_type, data): |
|
|
|
|
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) |
|
|
|
|
seat_id_list = [{'seat_id': seat['cineSeatId'], 'ticket_discount': seat['ticketDiscount'], |
|
|
|
|
'service_discount': seat['serviceDiscount']} for seat in seat_price_from_seat] |
|
|
|
|
print('seat_price_from_seat', seat_price_from_seat) |
|
|
|
|
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]) |
|
|
|
@ -68,46 +69,65 @@ def general_seat_params(pay_type, data): |
|
|
|
|
-- 当影院合作商是合作商自主定价时(partner_type = 2) |
|
|
|
|
price:真实的票价[不含服务费、不含手续费] |
|
|
|
|
user_real_pay_price:用户真实支付影票金额[不含手续费、服务费] 需要扣减 ticket_discount_price |
|
|
|
|
service_fee:真实的服务费 需要扣减 service_fee_discount_price |
|
|
|
|
service_fee:真实的服务费 |
|
|
|
|
ticket_discount_price:影票优惠金额,仅做记录 |
|
|
|
|
service_fee_discount_price:服务费优惠金额,仅做记录 |
|
|
|
|
|
|
|
|
|
测试影院: |
|
|
|
|
测试影院3.166 乐影网 电商平台补贴 是否允许传递优惠金额 否 影票价格控制 是 卖品价格控制 是 |
|
|
|
|
测试影院3.166 淘票票 电商平台补贴 是否允许传递优惠金额 是 影票价格控制 否 卖品价格控制 否 |
|
|
|
|
测试影院3.166 美团猫眼 电商平台补贴 是否允许传递优惠金额 否 影票价格控制 是 卖品价格控制 是 |
|
|
|
|
测试影院3.166 美团猫眼 电商平台补贴 是否允许传递优惠金额 是 影票价格控制 是 卖品价格控制 是 |
|
|
|
|
测试影院3.166 合作商补贴 合作商补贴 是否允许传递优惠金额 否 影票价格控制 否 卖品价格控制 否 |
|
|
|
|
|
|
|
|
|
""" |
|
|
|
|
seat_list = [] |
|
|
|
|
ticket_cash = 0 |
|
|
|
|
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 area_seat_info['seatId'] == int(seat_info['seat_id']): |
|
|
|
|
# 获取price字段值 |
|
|
|
|
price = Decimal(area_seat_info["areaPrice"]).quantize(Decimal('0.00'), ROUND_HALF_UP) |
|
|
|
|
seat.append(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 = Decimal(area_seat_info["areaPrice"]).quantize(Decimal('0.00'), ROUND_HALF_UP) |
|
|
|
|
real_pay -= Decimal(area_seat_info["areaServiceFee"]).quantize(Decimal('0.00'), ROUND_HALF_UP) |
|
|
|
|
# 处理影票和服务费折扣 |
|
|
|
|
if ticket_discount != 0: |
|
|
|
|
real_pay -= Decimal(ticket_discount) |
|
|
|
|
seat.append(str(ticket_discount)) |
|
|
|
|
if service_discount != 0: |
|
|
|
|
if partner_type == '2': |
|
|
|
|
real_pay -= Decimal(service_discount) |
|
|
|
|
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(seat) |
|
|
|
|
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 = Decimal(market_price).quantize(Decimal('0.00'), ROUND_HALF_UP) |
|
|
|
|
if ticket_discount != 0: |
|
|
|
|
real_pay -= Decimal(ticket_discount) |
|
|
|
|
seat.append(str(ticket_discount)) |
|
|
|
|
if service_discount != 0: |
|
|
|
|
real_pay -= Decimal(service_discount) |
|
|
|
|
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(seat) |
|
|
|
|
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, last_timestamp |
|
|
|
|
|
|
|
|
|