后端功能增强:全局异常处理、API控制器、JSP视图和单元测试

- 添加 GlobalExceptionHandler 全局异常处理
- 添加 ApiController REST API 控制器
- 更新 WebConfig 跨域配置和 ProductRepository 查询方法
- 新增 monitor/product-detail/profile JSP 视图页面
- 添加 FlashSaleServiceTest 秒杀服务单元测试
- 更新 application.yml 配置
This commit is contained in:
2026-03-05 20:30:48 +08:00
parent 923e877759
commit 989c2741a2
63 changed files with 15508 additions and 1 deletions

View File

@@ -0,0 +1,42 @@
import { request } from '../request'
import type { ApiResponse, FlashSale, PageParams, PageResponse } from '@/types/api'
export const flashsaleApi = {
// 获取秒杀活动列表
getList(params?: PageParams & { status?: string }): Promise<ApiResponse<PageResponse<FlashSale>>> {
return request.get('/api/flashsale/list', params)
},
// 获取正在进行的秒杀活动
getActive(limit?: number): Promise<ApiResponse<FlashSale[]>> {
return request.get('/api/flashsale/active', { limit })
},
// 获取秒杀活动详情
getDetail(id: number): Promise<ApiResponse<FlashSale>> {
return request.get(`/api/flashsale/${id}`)
},
// 参与秒杀
participate(data: {
flashSaleId: number;
quantity: number;
timestamp?: number;
}): Promise<ApiResponse<{ orderId: number }>> {
return request.post('/api/flashsale/participate', data)
},
// 获取用户参与记录
getUserRecords(): Promise<ApiResponse<any[]>> {
return request.get('/api/flashsale/user-records')
},
// 检查用户是否可以参与
checkEligibility(flashSaleId: number): Promise<ApiResponse<{
eligible: boolean;
reason?: string;
remainingQuota?: number;
}>> {
return request.get(`/api/flashsale/${flashSaleId}/check-eligibility`)
},
}