设备订单防止重复提交

This commit is contained in:
gaowdong 2025-05-06 13:29:23 +08:00
parent 7f7068e782
commit 4ac2f8bfcc
1 changed files with 14 additions and 0 deletions

View File

@ -159,6 +159,7 @@ public class OrderInfoServiceImpl implements IOrderInfoService
AccInfoDetailsVO accInfoVO = this.accInfoService.queryAccInfoByUserId(orderAddParam.getUserId());
accInfoService.checkAccStatus(accInfoVO);
List<OrderInfo> canteenOrderInfoList = new OrderInfo().of(orderAddParam);
checkDeviceOrderExisting(canteenOrderInfoList);
checkOrdersTotalAmount(canteenOrderInfoList, orderAddParam.getRealAmount());
List<OrderInfo> orderInfoList = orderBusiness.orderPlaceHandler(canteenOrderInfoList);
try {
@ -184,6 +185,7 @@ public class OrderInfoServiceImpl implements IOrderInfoService
AccInfoDetailsVO accInfoVO = this.accInfoService.queryAccInfoByUserId(orderAddParam.getUserId());
accInfoService.checkAccStatus(accInfoVO);
List<OrderInfo> canteenOrderInfoList = new ShopOrderAddParam().of(orderAddParam);
checkDeviceOrderExisting(canteenOrderInfoList);
List<OrderInfo> orderInfoList = orderBusiness.orderPlaceHandler(canteenOrderInfoList);
try {
AccRedisUtils.lockUpdateAccWalletBalance(orderAddParam.getUserId());
@ -197,6 +199,18 @@ public class OrderInfoServiceImpl implements IOrderInfoService
return 1;
}
private void checkDeviceOrderExisting(List<OrderInfo> orderInfoList) {
if(CollUtil.isEmpty(orderInfoList)) {
throw new ServiceException("订单不能为空");
}
for (OrderInfo orderInfo : orderInfoList) {
OrderInfo orderInfoByOrderId = orderInfoMapper.selectOrderInfoByDeviceOrderId(orderInfo.getDeviceOrderId());
if(Objects.nonNull(orderInfoByOrderId)) {
throw new ServiceException("该设备订单已存在");
}
}
}
@Override
public void pay(Long orderId) {
if(Objects.isNull(orderId) || orderId <= 0) {