diff --git a/discount/init.py b/discount/init.py index 1befdc1..a9b75cc 100644 --- a/discount/init.py +++ b/discount/init.py @@ -1041,19 +1041,19 @@ async def get_free_customers(request): if is_owner: rows = await sor.sqlExe( """SELECT dcb.id as bind_id, dcb.customerid, - o.orgname as customer_name, dcb.sale_id + COALESCE(u.username, u.nick_name, u.id) as customer_name, dcb.sale_id FROM discount_customer_bind dcb - JOIN organization o ON o.id = dcb.customerid + LEFT JOIN users u ON u.id = dcb.customerid WHERE dcb.sale_id IS NULL OR dcb.sale_id = '' - ORDER BY o.orgname""", {}) + ORDER BY customer_name""", {}) else: rows = await sor.sqlExe( """SELECT dcb.id as bind_id, dcb.customerid, - o.orgname as customer_name, dcb.sale_id + COALESCE(u.username, u.nick_name, u.id) as customer_name, dcb.sale_id FROM discount_customer_bind dcb - JOIN organization o ON o.id = dcb.customerid + LEFT JOIN users u ON u.id = dcb.customerid WHERE dcb.resellerid = ${rid}$ AND (dcb.sale_id IS NULL OR dcb.sale_id = '') - ORDER BY o.orgname""", + ORDER BY customer_name""", {'rid': userorgid}) return rows or [] @@ -1072,23 +1072,23 @@ async def get_bound_customers(request): if is_owner: rows = await sor.sqlExe( """SELECT dcb.id as bind_id, dcb.customerid, - o.orgname as customer_name, dcb.sale_id, - u.nick_name as sale_name + COALESCE(u.username, u.nick_name, u.id) as customer_name, dcb.sale_id, + COALESCE(u.username, u.nick_name, u.id) as sale_name FROM discount_customer_bind dcb - JOIN organization o ON o.id = dcb.customerid + LEFT JOIN users u ON u.id = dcb.customerid LEFT JOIN users u ON u.id = dcb.sale_id WHERE dcb.sale_id IS NOT NULL AND dcb.sale_id != '' - ORDER BY o.orgname""", {}) + ORDER BY customer_name""", {}) else: rows = await sor.sqlExe( """SELECT dcb.id as bind_id, dcb.customerid, - o.orgname as customer_name, dcb.sale_id, - u.nick_name as sale_name + COALESCE(u.username, u.nick_name, u.id) as customer_name, dcb.sale_id, + COALESCE(u.username, u.nick_name, u.id) as sale_name FROM discount_customer_bind dcb - JOIN organization o ON o.id = dcb.customerid + LEFT JOIN users u ON u.id = dcb.customerid LEFT JOIN users u ON u.id = dcb.sale_id WHERE dcb.resellerid = ${rid}$ AND dcb.sale_id IS NOT NULL AND dcb.sale_id != '' - ORDER BY o.orgname""", + ORDER BY customer_name""", {'rid': userorgid}) return rows or [] @@ -1141,20 +1141,20 @@ async def get_reseller_sales(request): async with DBPools().sqlorContext('sage') as sor: if userorgid == '0': rows = await sor.sqlExe( - """SELECT DISTINCT u.id as sale_id, u.nick_name as sale_name + """SELECT DISTINCT u.id as sale_id, COALESCE(u.username, u.nick_name, u.id) as sale_name FROM users u JOIN userrole ur ON ur.userid = u.id JOIN role r ON r.id = ur.roleid WHERE r.name = 'sale' - ORDER BY u.nick_name""", {}) + ORDER BY sale_name""", {}) else: rows = await sor.sqlExe( - """SELECT DISTINCT u.id as sale_id, u.nick_name as sale_name + """SELECT DISTINCT u.id as sale_id, COALESCE(u.username, u.nick_name, u.id) as sale_name FROM users u JOIN userrole ur ON ur.userid = u.id JOIN role r ON r.id = ur.roleid WHERE r.name = 'sale' AND u.orgid = ${oid}$ - ORDER BY u.nick_name""", + ORDER BY sale_name""", {'oid': userorgid}) return [{'value': r.sale_id, 'text': r.sale_name} for r in rows]