import Apis from '@/api'
|
|
/**
|
* Pet模块演示
|
* 演示宠物相关API的使用
|
*/
|
export class PetDemo {
|
// 获取所有可用的宠物
|
static async getAvailablePets() {
|
console.log('=== 获取可用宠物 ===')
|
try {
|
const pets = await Apis.pet.findPetsByStatus({
|
params: { status: 'available' },
|
}).send()
|
console.log('可用宠物列表:', pets)
|
return pets
|
}
|
catch (error) {
|
console.error('获取宠物失败:', error)
|
}
|
}
|
|
// 获取特定宠物信息
|
static async getPetById(petId: number) {
|
console.log(`=== 获取宠物 ${petId} 的信息 ===`)
|
try {
|
const pet = await Apis.pet.getPetById({
|
pathParams: { petId },
|
}).send()
|
console.log('宠物信息:', pet)
|
return pet
|
}
|
catch (error) {
|
console.error('获取宠物信息失败:', error)
|
}
|
}
|
|
// 添加新宠物
|
static async addNewPet() {
|
console.log('=== 添加新宠物 ===')
|
try {
|
const newPet = await Apis.pet.addPet({
|
data: {
|
name: 'Buddy',
|
category: { id: 1, name: 'Dogs' },
|
status: 'available',
|
photoUrls: ['https://example.com/buddy.jpg'],
|
tags: [
|
{ id: 1, name: 'friendly' },
|
{ id: 2, name: 'trained' },
|
],
|
},
|
}).send()
|
console.log('新添加的宠物:', newPet)
|
return newPet
|
}
|
catch (error) {
|
console.error('添加宠物失败:', error)
|
}
|
}
|
|
// 测试宠物不存在的情况
|
static async testPetNotFound() {
|
console.log('=== 测试宠物不存在的情况 ===')
|
try {
|
await Apis.pet.getPetById({
|
pathParams: { petId: 404 },
|
}).send()
|
}
|
catch (error) {
|
console.log('预期的404错误:', error)
|
}
|
}
|
|
// 删除宠物(需要API密钥)
|
static async deletePet(petId: number, apiKey: string = 'special-key') {
|
console.log(`=== 删除宠物 ${petId} ===`)
|
try {
|
const result = await Apis.pet.deletePet({
|
pathParams: { petId },
|
headers: { api_key: apiKey },
|
}).send()
|
console.log('删除结果:', result)
|
return result
|
}
|
catch (error) {
|
console.error('删除宠物失败:', error)
|
}
|
}
|
}
|
|
/**
|
* Store模块演示
|
* 演示商店相关API的使用
|
*/
|
export class StoreDemo {
|
// 获取库存信息
|
static async getInventory() {
|
console.log('=== 获取库存信息 ===')
|
try {
|
const inventory = await Apis.store.getInventory().send()
|
console.log('库存信息:', inventory)
|
return inventory
|
}
|
catch (error) {
|
console.error('获取库存失败:', error)
|
}
|
}
|
|
// 下单购买宠物
|
static async placeOrder(petId: number, quantity: number = 1) {
|
console.log('=== 下单购买宠物 ===')
|
try {
|
const order = await Apis.store.placeOrder({
|
data: {
|
petId,
|
quantity,
|
shipDate: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString(), // 7天后发货
|
status: 'placed',
|
complete: false,
|
},
|
}).send()
|
console.log('订单信息:', order)
|
return order
|
}
|
catch (error) {
|
console.error('下单失败:', error)
|
}
|
}
|
|
// 获取订单信息
|
static async getOrderById(orderId: number) {
|
console.log(`=== 获取订单 ${orderId} 信息 ===`)
|
try {
|
const order = await Apis.store.getOrderById({
|
pathParams: { orderId },
|
}).send()
|
console.log('订单详情:', order)
|
return order
|
}
|
catch (error) {
|
console.error('获取订单失败:', error)
|
}
|
}
|
|
// 测试无效订单ID
|
static async testInvalidOrderId() {
|
console.log('=== 测试无效订单ID ===')
|
try {
|
await Apis.store.getOrderById({
|
pathParams: { orderId: 999 },
|
}).send()
|
}
|
catch (error) {
|
console.log('预期的400错误:', error)
|
}
|
}
|
|
// 删除订单
|
static async deleteOrder(orderId: number) {
|
console.log(`=== 删除订单 ${orderId} ===`)
|
try {
|
const result = await Apis.store.deleteOrder({
|
pathParams: { orderId },
|
}).send()
|
console.log('删除结果:', result)
|
return result
|
}
|
catch (error) {
|
console.error('删除订单失败:', error)
|
}
|
}
|
}
|
|
/**
|
* User模块演示
|
* 演示用户相关API的使用
|
*/
|
export class UserDemo {
|
// 用户登录
|
static async login(username: string = 'admin', password: string = 'admin') {
|
console.log('=== 用户登录 ===')
|
try {
|
const loginResult = await Apis.user.loginUser({
|
params: { username, password },
|
}).send()
|
console.log('登录结果:', loginResult)
|
return loginResult
|
}
|
catch (error) {
|
console.error('登录失败:', error)
|
}
|
}
|
|
// 获取用户信息
|
static async getUserInfo(username: string) {
|
console.log(`=== 获取用户 ${username} 信息 ===`)
|
try {
|
const user = await Apis.user.getUserByName({
|
pathParams: { username },
|
}).send()
|
console.log('用户信息:', user)
|
return user
|
}
|
catch (error) {
|
console.error('获取用户信息失败:', error)
|
}
|
}
|
|
// 创建新用户
|
static async createUser(userData: any = {}) {
|
console.log('=== 创建新用户 ===')
|
try {
|
const newUser = await Apis.user.createUser({
|
data: {
|
username: 'newuser',
|
firstName: 'John',
|
lastName: 'Doe',
|
email: 'john@example.com',
|
password: 'password123',
|
phone: '1234567890',
|
userStatus: 1,
|
...userData,
|
},
|
}).send()
|
console.log('新用户:', newUser)
|
return newUser
|
}
|
catch (error) {
|
console.error('创建用户失败:', error)
|
}
|
}
|
|
// 更新用户信息
|
static async updateUser(username: string, updateData: any) {
|
console.log(`=== 更新用户 ${username} 信息 ===`)
|
try {
|
const updatedUser = await Apis.user.updateUser({
|
pathParams: { username },
|
data: updateData,
|
}).send()
|
console.log('更新后的用户:', updatedUser)
|
return updatedUser
|
}
|
catch (error) {
|
console.error('更新用户失败:', error)
|
}
|
}
|
|
// 测试用户不存在的情况
|
static async testUserNotFound() {
|
console.log('=== 测试用户不存在的情况 ===')
|
try {
|
await Apis.user.getUserByName({
|
pathParams: { username: 'notfound' },
|
}).send()
|
}
|
catch (error) {
|
console.log('预期的404错误:', error)
|
}
|
}
|
|
// 批量创建用户
|
static async createUsersWithArray() {
|
console.log('=== 批量创建用户(数组) ===')
|
try {
|
const result = await Apis.user.createUsersWithListInput({
|
data: [
|
{
|
username: 'user1',
|
firstName: 'User',
|
lastName: 'One',
|
email: 'user1@example.com',
|
password: 'password',
|
phone: '1111111111',
|
userStatus: 1,
|
},
|
{
|
username: 'user2',
|
firstName: 'User',
|
lastName: 'Two',
|
email: 'user2@example.com',
|
password: 'password',
|
phone: '2222222222',
|
userStatus: 1,
|
},
|
],
|
}).send()
|
console.log('批量创建结果:', result)
|
return result
|
}
|
catch (error) {
|
console.error('批量创建用户失败:', error)
|
}
|
}
|
|
// 用户登出
|
static async logout() {
|
console.log('=== 用户登出 ===')
|
try {
|
const result = await Apis.user.logoutUser().send()
|
console.log('登出结果:', result)
|
return result
|
}
|
catch (error) {
|
console.error('登出失败:', error)
|
}
|
}
|
}
|
|
/**
|
* 综合演示
|
* 演示完整的业务流程
|
*/
|
export class FullDemo {
|
// 完整的宠物商店购买流程
|
static async completePetStorePurchaseFlow() {
|
console.log('\n🎯 开始完整的宠物商店购买流程演示\n')
|
|
// 1. 用户登录
|
const loginResult = await UserDemo.login('admin', 'admin')
|
if (!loginResult)
|
return
|
|
// 2. 查看库存
|
const inventory = await StoreDemo.getInventory()
|
console.log('\n📦 当前库存状态:', inventory)
|
|
// 3. 浏览可用宠物
|
const availablePets = await PetDemo.getAvailablePets()
|
if (!availablePets || availablePets.length === 0) {
|
console.log('❌ 没有可用的宠物')
|
return
|
}
|
|
// 4. 选择第一个宠物
|
const selectedPet = availablePets[0]
|
console.log('\n🐕 选择的宠物:', selectedPet)
|
|
// 5. 查看宠物详情
|
if (selectedPet?.id) {
|
await PetDemo.getPetById(selectedPet.id)
|
}
|
|
// 6. 下单购买
|
const order = selectedPet?.id ? await StoreDemo.placeOrder(selectedPet.id, 1) : null
|
if (!order)
|
return
|
|
// 7. 查看订单详情
|
if (order?.id) {
|
await StoreDemo.getOrderById(order.id)
|
}
|
|
// 8. 获取用户信息
|
await UserDemo.getUserInfo('admin')
|
|
console.log('\n✅ 完整流程演示结束')
|
}
|
|
// 错误处理演示
|
static async errorHandlingDemo() {
|
console.log('\n⚠️ 开始错误处理演示\n')
|
|
// 测试各种错误情况
|
await PetDemo.testPetNotFound()
|
await StoreDemo.testInvalidOrderId()
|
await UserDemo.testUserNotFound()
|
|
console.log('\n✅ 错误处理演示结束')
|
}
|
|
// CRUD操作演示
|
static async crudDemo() {
|
console.log('\n🔄 开始CRUD操作演示\n')
|
|
// 创建
|
const newPet = await PetDemo.addNewPet()
|
const newUser = await UserDemo.createUser({ username: 'testuser' })
|
|
// 读取
|
if (newPet?.id)
|
await PetDemo.getPetById(newPet.id)
|
if (newUser)
|
await UserDemo.getUserInfo('testuser')
|
|
// 更新
|
if (newUser) {
|
await UserDemo.updateUser('testuser', {
|
firstName: 'Updated',
|
lastName: 'User',
|
})
|
}
|
|
// 删除
|
if (newPet?.id)
|
await PetDemo.deletePet(newPet.id)
|
|
console.log('\n✅ CRUD操作演示结束')
|
}
|
}
|
|
// 导出演示运行器
|
export async function runMockDemo() {
|
console.log('🚀 开始Mock数据演示\n')
|
|
try {
|
// 运行完整流程演示
|
await FullDemo.completePetStorePurchaseFlow()
|
|
// 运行错误处理演示
|
await FullDemo.errorHandlingDemo()
|
|
// 运行CRUD演示
|
await FullDemo.crudDemo()
|
|
console.log('\n🎉 所有演示完成!')
|
}
|
catch (error) {
|
console.error('演示过程中发生错误:', error)
|
}
|
}
|
|
// 如果直接运行此文件,执行演示
|
if (typeof window !== 'undefined') {
|
// 在浏览器环境中,可以在控制台调用
|
(window as any).runMockDemo = runMockDemo;
|
(window as any).PetDemo = PetDemo;
|
(window as any).StoreDemo = StoreDemo;
|
(window as any).UserDemo = UserDemo
|
console.log('Mock演示函数已加载到全局对象,可在控制台调用:')
|
console.log('- runMockDemo() - 运行完整演示')
|
console.log('- PetDemo.* - 宠物模块演示')
|
console.log('- StoreDemo.* - 商店模块演示')
|
console.log('- UserDemo.* - 用户模块演示')
|
}
|