taibai_shopping/create_test_order.py
2025-07-04 19:07:35 +08:00

83 lines
2.8 KiB
Python

#!/usr/bin/env python
"""
创建测试订单数据
"""
from app import create_app
from config.database import db
from app.models.user import User
from app.models.address import UserAddress
from app.models.product import Product, ProductInventory
from app.models.cart import Cart
def create_test_data():
app = create_app()
with app.app_context():
try:
# 检查是否有测试用户
test_user = User.query.filter_by(username='testuser').first()
if not test_user:
print("请先运行 create_test_user.py 创建测试用户")
return
print(f"测试用户: {test_user.username} (ID: {test_user.id})")
# 创建测试地址
if not UserAddress.query.filter_by(user_id=test_user.id).first():
address = UserAddress(
user_id=test_user.id,
receiver_name='张三',
receiver_phone='13800138000',
province='广东省',
city='广州市',
district='天河区',
detail_address='天河路123号',
postal_code='510000',
is_default=1
)
db.session.add(address)
print("创建测试地址")
# 添加商品到购物车
products = Product.query.filter_by(status=1).limit(3).all()
for product in products:
# 检查是否已在购物车
existing_cart = Cart.query.filter_by(
user_id=test_user.id,
product_id=product.id
).first()
if not existing_cart:
# 获取默认SKU
default_sku = ProductInventory.query.filter_by(
product_id=product.id,
is_default=1
).first()
cart_item = Cart(
user_id=test_user.id,
product_id=product.id,
sku_code=default_sku.sku_code if default_sku else None,
quantity=1
)
db.session.add(cart_item)
print(f"添加商品到购物车: {product.name}")
db.session.commit()
print("测试数据创建完成!")
print("\n测试步骤:")
print("1. 使用 testuser / 123456 登录")
print("2. 访问购物车页面")
print("3. 选择商品进行结算")
print("4. 测试订单流程")
except Exception as e:
db.session.rollback()
print(f"创建测试数据失败: {e}")
if __name__ == '__main__':
create_test_data()