|
|
|
# 将接口请求的数据中卖品信息整理成列表结构
|
|
|
|
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_param(_data):
|
|
|
|
params = []
|
|
|
|
total_cash = 0
|
|
|
|
for g in _data:
|
|
|
|
_num = g.get('buy_num', 1)
|
|
|
|
info = {
|
|
|
|
'id': g['id'],
|
|
|
|
'type': g['type'],
|
|
|
|
'price': round(float(g.get('partnerPrice', g['onlinePrice'])) * _num, 2),
|
|
|
|
'num': _num
|
|
|
|
}
|
|
|
|
if g['type'] == 'package' and g['packageType'] == '2':
|
|
|
|
add_price = 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 += round(float(m['addPrice']), 2)
|
|
|
|
else:
|
|
|
|
member.append({'id': m['id'], 'num': 1, 'add_price': m['addPrice']})
|
|
|
|
member_id.append(m['id'])
|
|
|
|
add_price += round(float(m['addPrice']), 2)
|
|
|
|
optional_package.append({'index': key, 'members': member})
|
|
|
|
info['optional_package'] = optional_package
|
|
|
|
info['price'] = round(info['price'] + add_price, 2)
|
|
|
|
total_cash = round(total_cash + info['price'] * _num, 2)
|
|
|
|
params.append(info)
|
|
|
|
if g.get('discount1', False):
|
|
|
|
total_discount = 0
|
|
|
|
discount_list = []
|
|
|
|
if g['discount1'] > 0:
|
|
|
|
total_discount = round(total_discount + g['discount1'], 2)
|
|
|
|
discount_list.append(
|
|
|
|
{"discount_price": g['discount1'], "discount_name": f"现金优惠券{str(g['discount1'])}元"})
|
|
|
|
if g['discount2'] > 0:
|
|
|
|
total_discount = round(total_discount + g['discount2'], 2)
|
|
|
|
discount_list.append(
|
|
|
|
{"discount_price": g['discount2'], "discount_name": f"现金优惠券{str(g['discount2'])}元"})
|
|
|
|
if len(discount_list) > 0:
|
|
|
|
info['discount_price'] = total_discount
|
|
|
|
info['discount_detail'] = discount_list
|
|
|
|
total_cash = round(total_cash - total_discount, 2)
|
|
|
|
|
|
|
|
print('general_goods_param---------params', params)
|
|
|
|
return params, total_cash
|