实现以下功能:
订单数量参数化
订单商品随机
商品价格随机
商品数量随机
小计=价格*数量
订单总计=商品小计之和
import random
import time
import pymysql
def sqlSelect(needwhat, goodno=None):
order_num = time.strftime("%Y%m%d%H", time.gmtime()) + str(int(time.time()))
print('订单号等于==========', order_num)
global result_sku
db = pymysql.Connect(
host='123.145.123.145',
port=3306,
user='yun',
password='yun123456',
db='test',
charset='utf8'
)
cur = db.cursor()
if needwhat == 'goods_sn':
result_sku = ()
# 如果元祖为空就一直循环查询
# order by rand() sql随机取值
while not result_sku:
sql = 'SELECT a.goods_sn'
cur.execute(sql)
result_sku = cur.fetchall()
elif needwhat == 'order_sn':
# 如果查询结果为null,那么返回none
sql = "select IFNULL(min(id), 'none') from order a where a.order_sn=%s"
cur.execute(sql, order_num)
result_sku = cur.fetchall()
print("order_sn======", result_sku, type(result_sku))
elif needwhat == 'insert_order':
dataset=DataCenterCreate()
# 插入订单
sql = "INSERT INTO `test`.`order`(`order_sn`, `order_amount`) VALUES ( %(order_num)s, %(order_amount)s)"
values = {"order_amount": dataset[len(dataset) - 1]["order_amount"], "order_num": order_num}
cur.execute(sql, values)
db.commit()
# 插入订单商品
for data in dataset:
sql = "INSERT INTO `test`.`order_goods`(`order_id`, `goods_id`, `goods_name`, `product_code`, `num`, `price`, `subtotal`, `create_time`, `update_time`) select id,tmp.goods_id,tmp.goods_name,tmp.productcode,%(number)s, %(price)s, %(subtotal)s, NOW(), NOW() from order a,(select goods_id,goods_name,productcode from goods order by rand() limit 1)tmp where a.order_sn =%(order_num)s"
values = {"subtotal": data["subtotal"], "price": data["price"], "number": data["number"], "order_num": order_num}
cur.execute(sql, values)
db.commit()
result_sku = cur.fetchall()
print("insert_order======", result_sku)
cur.close()
db.close()
return result_sku
# 以字典的形式返回订单计算商品信息,order_amount只有最
def DataCenterCreate():
i = 0
dataall = []
order_amount = 0
while i < random.randint(2, 5):
price = round(random.uniform(1, 10), 2)
print("price=====", price)
number = random.randint(1, 10)
print("number=====", number)
subtotal = round(price * number, 2)
print("subtotal=====", subtotal)
order_amount = round((order_amount + subtotal), 2)
dataall.append({"price": price, "number": number, "subtotal": subtotal, "order_amount": order_amount})
i += 1
print("dataall====", dataall)
print("dataall最大值====", dataall[len(dataall) - 1]["order_amount"])
return dataall
def InsertOrder(num):
i = 0
while i < num:
minn = False
while minn == False:
code = sqlSelect('order_sn')[0][0]
print("code=======", code)
if code == 'none':
resultorder = sqlSelect('insert_order')
print("result", resultorder)
minn = True
i += 1
InsertOrder(5)