51 lines
2.2 KiB
Plaintext
51 lines
2.2 KiB
Plaintext
async def customer_cartpay(ns):
|
|
""" 购物车下单
|
|
"""
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
try:
|
|
customer_cart = await sor.R('customer_cart', {'id':ns['id']})
|
|
amount = 0
|
|
count = 0
|
|
bz_ns = {}
|
|
# bz_ns['id'] = UUID()
|
|
bz_ns['id'] = uuid()
|
|
for i in eval(ns.get('goods')):
|
|
count += 1
|
|
cart_goods = await sor.R('cart_goods', {'id': i})
|
|
amount += float(cart_goods[0]['amount'])
|
|
nss = {}
|
|
nss['id'] = uuid()
|
|
# nss['id'] = UUID()
|
|
nss['orderid'] = bz_ns['id']
|
|
nss['productid'] = cart_goods[0]['productid']
|
|
product = await sor.R('product', {'id': cart_goods[0]['productid']})
|
|
nss['providerid'] = product[0]['providerid']
|
|
nss['list_price'] = cart_goods[0].get('list_price')
|
|
nss['discount'] = cart_goods[0].get('discount')
|
|
nss['quantity'] = cart_goods[0].get('quantity')
|
|
nss['price'] = cart_goods[0].get('price')
|
|
nss['spec_id'] = cart_goods[0].get('spec_id')
|
|
nss['amount'] = cart_goods[0].get('amount')
|
|
await sor.C('order_goods', nss)
|
|
sql = """ UPDATE cart_goods SET del_flg = '1' WHERE id = ${id}$ """
|
|
nsa = {'id': i}
|
|
await sor.sqlExe(sql, nsa)
|
|
bz_ns['order_status'] = '0'
|
|
bz_ns['business_op'] = 'BUY'
|
|
bz_ns['amount'] = amount
|
|
bz_ns['customerid'] = customer_cart[0]['customerid']
|
|
bz_ns['order_date'] = datetime.datetime.now().strftime("%Y-%m-%d")
|
|
await sor.C('bz_order', bz_ns)
|
|
olen = customer_cart[0]['goods_cnt']
|
|
ncount = olen - count
|
|
oamount = float(customer_cart[0]['amount'])
|
|
namount = oamount - amount
|
|
await sor.U('customer_cart', {'id': ns['id'],'amount':namount,'goods_cnt':ncount})
|
|
return {'status': True, 'msg': '添加成功', 'bz_id': bz_ns['id']}
|
|
except Exception as e:
|
|
raise e
|
|
return {'status': False, 'msg': '添加失败'}
|
|
|
|
ret = await customer_cartpay(params_kw)
|
|
return ret |