#!/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()