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