|
|
@@ -91,6 +91,8 @@ def Request(ctx):
|
|
|
res = RecycleCard(_conn, ctx)
|
|
|
elif ctx["function"] == "AddCardBlock":
|
|
|
res = AddCardBlock(_conn, ctx)
|
|
|
+ elif ctx["function"] == "Search":
|
|
|
+ res = Search(_conn, ctx)
|
|
|
|
|
|
_conn.close()
|
|
|
|
|
|
@@ -816,6 +818,87 @@ def RecycleCard(db, ctx):
|
|
|
|
|
|
return res
|
|
|
|
|
|
+
|
|
|
+## _
|
|
|
+## ___ ___ __ _ _ __ ___| |__
|
|
|
+## / __|/ _ \/ _` | '__/ __| '_ \
|
|
|
+## \__ \ __/ (_| | | | (__| | | |
|
|
|
+## |___/\___|\__,_|_| \___|_| |_|
|
|
|
+##
|
|
|
+
|
|
|
+def Search(db, ctx):
|
|
|
+ res = {"result":"fail"}
|
|
|
+ cursor = db.cursor()
|
|
|
+
|
|
|
+ fields = ["search_type", "search_string"]
|
|
|
+
|
|
|
+ val = {}
|
|
|
+ for f in fields:
|
|
|
+ if f in ctx:
|
|
|
+ if ctx[f] and len(ctx[f]) > 0:
|
|
|
+ val[f] = ctx[f]
|
|
|
+
|
|
|
+ if val["search_type"] == "card":
|
|
|
+
|
|
|
+ t = val["search_string"]
|
|
|
+ p = '%' + t + '%'
|
|
|
+
|
|
|
+ query = "select logical_card_id, mag_token, rfid_token, userid, issued, firstused, lastused, group_id, issuetype"
|
|
|
+ query += " from user_card where mag_token like %s "
|
|
|
+ query += " or rfid_token like %s "
|
|
|
+ query += " or comment like %s "
|
|
|
+ query += " or issuetype like %s "
|
|
|
+ cursor.execute(query, [p, p, p, p])
|
|
|
+ rows = cursor.fetchall()
|
|
|
+ res["data"] = []
|
|
|
+ for row in rows:
|
|
|
+ _d = {
|
|
|
+ "logical_card_id": row[0],
|
|
|
+ "mag_token": row[1],
|
|
|
+ "rfid_token": row[2],
|
|
|
+ "userid": row[3],
|
|
|
+ "issued": row[4],
|
|
|
+ "firstused": row[5],
|
|
|
+ "lastused": row[6],
|
|
|
+ "group_id": row[7],
|
|
|
+ "issuetype": row[8]
|
|
|
+ }
|
|
|
+ res["data"].append( _d )
|
|
|
+
|
|
|
+ res["result"] = "success"
|
|
|
+
|
|
|
+ elif val["search_type"] == "user":
|
|
|
+
|
|
|
+ t = val["search_string"]
|
|
|
+ p = '%' + t + '%'
|
|
|
+
|
|
|
+ fields = [ "username", "first_name", "last_name", "phone", "email", "address", "city","state", "zip", "created",
|
|
|
+ "shipping_address", "shipping_city", "shipping_state", "shipping_zip", "shipping_name",
|
|
|
+ "shipping_country_code", "shipping_country_name" ]
|
|
|
+
|
|
|
+ query = "select userid, " + ", ".join(fields)
|
|
|
+ query += " from users "
|
|
|
+ query += " where " + " like %s or ".join(fields) + " like %s "
|
|
|
+
|
|
|
+ print("user query:", query)
|
|
|
+
|
|
|
+ cursor.execute(query, [p]*len(fields))
|
|
|
+ rows = cursor.fetchall()
|
|
|
+ res["data"] = []
|
|
|
+ for row in rows:
|
|
|
+ _d = { "userid": row[0] }
|
|
|
+ for idx,f in enumerate(fields):
|
|
|
+ _d[f] = row[idx+1]
|
|
|
+ res["data"].append( _d )
|
|
|
+
|
|
|
+ res["result"] = "success"
|
|
|
+
|
|
|
+ elif val["search_type"] == "admin":
|
|
|
+ res["result"] = "success"
|
|
|
+
|
|
|
+ return res
|
|
|
+
|
|
|
+
|
|
|
## _ _ _ _ _ _
|
|
|
## __ _ __| | __| | ___ __ _ _ __ __| | | |__ | | ___ ___| | __
|
|
|
## / _` |/ _` |/ _` | / __/ _` | '__/ _` | | '_ \| |/ _ \ / __| |/ /
|