You've already forked FrameTour-BE
feat(order): 添加重复购买检测功能
- 新增 DuplicatePurchaseException 类用于处理重复购买异常 - 在 OrderServiceImpl 中实现重复购买检查逻辑 - 更新 CustomExceptionHandle 以处理新的重复购买异常 -优化订单创建流程,在生成订单号前增加重复购买检查
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.ycwl.basic.exception;
|
||||
|
||||
import com.ycwl.basic.enums.BizCodeEnum;
|
||||
import com.ycwl.basic.order.exception.DuplicatePurchaseException;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException;
|
||||
@@ -106,4 +107,18 @@ public class CustomExceptionHandle {
|
||||
public ApiResponse<String> handle(SizeLimitExceededException sizeLimitExceededException) {
|
||||
return ApiResponse.buildResponse(415, "文件过大,请重新上传");
|
||||
}
|
||||
|
||||
/**
|
||||
* 重复购买异常处理
|
||||
*/
|
||||
@ExceptionHandler(value = DuplicatePurchaseException.class)
|
||||
public ApiResponse<String> handle(HttpServletResponse response, DuplicatePurchaseException exception) {
|
||||
response.setStatus(HttpStatus.BAD_REQUEST.value());
|
||||
LOGGER.warn("检测到重复购买: productType={}, productId={}, existingOrderId={}, existingOrderNo={}",
|
||||
exception.getProductType(), exception.getProductId(),
|
||||
exception.getExistingOrderId(), exception.getExistingOrderNo());
|
||||
|
||||
// 返回友好的错误信息给前端
|
||||
return ApiResponse.buildResponse(4001, exception.getFriendlyMessage());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user