Merge branch 'main' of https://git.opencomputing.cn/yumoqing/kboss
This commit is contained in:
commit
9fde58d1ec
54
b/bz_order/cumulative_order.dspy
Normal file
54
b/bz_order/cumulative_order.dspy
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
async def cumulative_order(ns={}):
|
||||||
|
"""查询订单商品详情,带分页功能"""
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
users_id = await get_user()
|
||||||
|
if not users_id:
|
||||||
|
server_error(401)
|
||||||
|
|
||||||
|
user = await sor.R('users', {'id': users_id, 'del_flg': '0'})
|
||||||
|
orgid = await sor.R('organization', {'id': user[0]['orgid'], 'del_flg': '0'})
|
||||||
|
customerid = orgid[0]['id']
|
||||||
|
|
||||||
|
# 统计全部 累计支付金额和累计优惠金额 不包含各种筛选条件
|
||||||
|
# 累计支付金额=BUY+RENEW-BUY_REVERSE并且对应order_status=1是实际支付金额 累计优惠金额=BUY+RENEW-BUY_REVERSE并且对应order_status=1是优惠金额
|
||||||
|
total_amount_sql = """
|
||||||
|
SELECT
|
||||||
|
COALESCE(SUM(
|
||||||
|
CASE
|
||||||
|
WHEN bo.order_status = 1 AND bo.business_op IN ('BUY', 'RENEW') THEN og.amount
|
||||||
|
WHEN bo.order_status = 1 AND bo.business_op = 'BUY_REVERSE' THEN -og.amount
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
), 0) AS total_paid_amount,
|
||||||
|
COALESCE(SUM(
|
||||||
|
CASE
|
||||||
|
WHEN bo.order_status = 1 AND bo.business_op IN ('BUY', 'RENEW') THEN (og.list_price * og.quantity - og.amount)
|
||||||
|
WHEN bo.order_status = 1 AND bo.business_op = 'BUY_REVERSE' THEN -(og.list_price * og.quantity - og.amount)
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
), 0) AS total_discount_amount
|
||||||
|
FROM order_goods og
|
||||||
|
JOIN bz_order bo ON og.orderid = bo.id
|
||||||
|
WHERE og.del_flg = '0'
|
||||||
|
AND bo.del_flg = '0'
|
||||||
|
AND bo.customerid = ${customerid}$
|
||||||
|
"""
|
||||||
|
total_amount_result = await sor.sqlExe(total_amount_sql, {'customerid': customerid})
|
||||||
|
total_paid_amount = float(total_amount_result[0]['total_paid_amount']) if total_amount_result else 0.0
|
||||||
|
total_discount_amount = float(total_amount_result[0]['total_discount_amount']) if total_amount_result else 0.0
|
||||||
|
# 将累计支付金额和累计优惠金额添加到返回结果中
|
||||||
|
ns['total_paid_amount'] = total_paid_amount
|
||||||
|
ns['total_discount_amount'] = total_discount_amount
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'data': ns
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
return {'status': False, 'msg': '信息错误: %s' % str(e) + traceback.format_exc()}
|
||||||
|
|
||||||
|
ret = await cumulative_order(params_kw)
|
||||||
|
return ret
|
||||||
39
b/bz_order/todo_info.dspy
Normal file
39
b/bz_order/todo_info.dspy
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
async def todo_info(ns={}):
|
||||||
|
"""查询订单待支付,待续费,处理中的信息"""
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext('kboss') as sor:
|
||||||
|
try:
|
||||||
|
users_id = await get_user()
|
||||||
|
if not users_id:
|
||||||
|
server_error(401)
|
||||||
|
|
||||||
|
user = await sor.R('users', {'id': users_id, 'del_flg': '0'})
|
||||||
|
orgid = await sor.R('organization', {'id': user[0]['orgid'], 'del_flg': '0'})
|
||||||
|
customerid = orgid[0]['id']
|
||||||
|
print(customerid)
|
||||||
|
|
||||||
|
# 查询订单待支付,待续费,处理中的信息
|
||||||
|
pending_payment_orders = await sor.sqlExe(
|
||||||
|
"SELECT COUNT(*) AS count FROM bz_order WHERE customerid = '%s' AND order_status = '0' AND del_flg = '0';" % customerid, {}
|
||||||
|
)
|
||||||
|
ns['pending_payment_orders'] = pending_payment_orders[0]['count'] if pending_payment_orders else 0
|
||||||
|
pending_renew_orders = await sor.sqlExe(
|
||||||
|
"SELECT COUNT(*) AS count FROM bz_order WHERE customerid = '%s' AND order_status = '0' AND del_flg = '0';" % customerid, {}
|
||||||
|
)
|
||||||
|
ns['pending_renew_orders'] = pending_renew_orders[0]['count'] if pending_renew_orders else 0
|
||||||
|
processing_orders = await sor.sqlExe(
|
||||||
|
"SELECT COUNT(*) AS count FROM bz_order WHERE customerid = '%s' AND order_status = '1000' AND del_flg = '0';" % customerid, {}
|
||||||
|
)
|
||||||
|
ns['processing_orders'] = processing_orders[0]['count'] if processing_orders else 0
|
||||||
|
|
||||||
|
return {
|
||||||
|
'status': True,
|
||||||
|
'data': ns
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
return {'status': False, 'msg': '信息错误: %s' % str(e) + traceback.format_exc()}
|
||||||
|
|
||||||
|
ret = await todo_info(params_kw)
|
||||||
|
return ret
|
||||||
Loading…
x
Reference in New Issue
Block a user