kboss/b/bo_old/customer_cartpay.dspy
2025-07-16 14:27:17 +08:00

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