83 lines
2.8 KiB
Python
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()
|