diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index a25e41156..dfe832a2c 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -260,16 +260,13 @@ public class HardOrderServiceImpl extends ServiceImpl reduceRes = walletTransactionService.reduceWalletBalance(reduceBuild); - if (reduceRes.getCode() != 0 || ObjectUtil.isEmpty(reduceRes.getData())) { - throw new RuntimeException("钱包扣款错误"); - } - WalletTransactionEntity walletTransaction = reduceRes.getData(); - if (ObjectUtil.isNotEmpty(walletTransaction)) { - // 订单表订单状态 - Integer payPrice = isPay ? order.getTotalPrice() + order.getExtraPrice() : 0; - HardOrderEntity update = HardOrderEntity.builder().id(order.getId()).payTime(LocalDateTime.now()).orderStatus(HardOrderStatusEnum.PAY.getType()).payPrice(payPrice).build(); - baseMapper.updateById(update); - // 父购物车订单表订单状态 - if (ObjectUtil.isNotEmpty(order.getParentCarId())) { - HardParentCarEntity updateParentCar = HardParentCarEntity.builder().id(order.getParentCarId()).orderStatus(HardOrderStatusEnum.PAY.getType()).build(); - hardParentCarServiceImpl.updateById(updateParentCar); + if (isPay) { + WalletBalanceTransactionDto reduceBuild = new WalletBalanceTransactionDto(); + reduceBuild.setWalletId(order.getWalletId()); + reduceBuild.setPrice(order.getPayPrice()); + reduceBuild.setBizId(String.valueOf(order.getId())); + reduceBuild.setBizType(WalletBizEnum.PAYMENT); + reduceBuild.setForce(true); + R reduceRes = walletTransactionService.reduceWalletBalance(reduceBuild); + if (reduceRes.getCode() != 0 || ObjectUtil.isEmpty(reduceRes.getData())) { + throw new RuntimeException("钱包扣款错误"); } } + // 订单表订单状态 + Integer payPrice = isPay ? order.getTotalPrice() + order.getExtraPrice() : 0; + HardOrderEntity update = HardOrderEntity.builder().id(order.getId()).payTime(LocalDateTime.now()).orderStatus(HardOrderStatusEnum.PAY.getType()).payPrice(payPrice).build(); + baseMapper.updateById(update); + // 父购物车订单表订单状态 + if (ObjectUtil.isNotEmpty(order.getParentCarId())) { + HardParentCarEntity updateParentCar = HardParentCarEntity.builder().id(order.getParentCarId()).orderStatus(HardOrderStatusEnum.PAY.getType()).build(); + hardParentCarServiceImpl.updateById(updateParentCar); + } } @Override diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletForeignDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletForeignDto.java index daacbc5f5..5e10aa074 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletForeignDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletForeignDto.java @@ -16,4 +16,9 @@ public class WalletForeignDto extends WalletForeignEntity { private Boolean isFindCheckUser = false; + /** + * 是否查询已使用完的 + */ + private Boolean isFindUsed = true; + } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletStrideDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletStrideDto.java index 5a1942c07..032900d95 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletStrideDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletStrideDto.java @@ -14,4 +14,9 @@ public class WalletStrideDto extends WalletStrideEntity { private Boolean isFindCheckUser = false; + /** + * 是否查询已使用完的 + */ + private Boolean isFindUsed = true; + } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletForeignController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletForeignController.java index 3f7bfdd9a..857e5f776 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletForeignController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletForeignController.java @@ -62,6 +62,7 @@ public class WalletForeignController { public R> appPageJoin(@ParameterObject Page page, @ParameterObject WalletForeignDto dto) { PjcloudUser user = SecurityUtils.getUser(); dto.setUserId(user.getId()); + dto.setIsFindUsed(false); return R.ok(walletForeignService.pageJoin(page, dto)); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletStrideController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletStrideController.java index 77feb45b1..5245e1065 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletStrideController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletStrideController.java @@ -58,6 +58,7 @@ public class WalletStrideController { public R appPageJoin(@ParameterObject Page page, @ParameterObject WalletStrideDto dto) { PjcloudUser user = SecurityUtils.getUser(); dto.setUserId(user.getId()); + dto.setIsFindUsed(false); return R.ok(walletStrideService.pageJoin(page, dto)); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletForeignMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletForeignMapper.java index 17a47b352..63ee374a7 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletForeignMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletForeignMapper.java @@ -23,6 +23,7 @@ public interface WalletForeignMapper extends PjcloudBaseMapper() .eq(WalletCodeUseEntity::getBizId, id) + .eq(WalletCodeUseEntity::getStatus, YesNoEnum.NO.getCode()) + .last(" limit 1") + .orderByDesc(WalletCodeUseEntity::getCreateTime) + .orderByDesc(WalletCodeUseEntity::getId) ); if (ObjectUtil.isEmpty(codeUse)) return null; if (ObjectUtil.equals(codeUse.getStatus(), YesNoEnum.YES.getCode())) return false; @@ -227,11 +231,12 @@ public class WalletCodeUseServiceImpl extends ServiceImpl() + // 跨单位和外来人员有多张二维码 + Long count = baseMapper.selectCount(new LambdaQueryWrapper() .eq(WalletCodeUseEntity::getBizId, id) + .eq(WalletCodeUseEntity::getStatus, YesNoEnum.NO.getCode()) ); - if (ObjectUtil.isEmpty(codeUse)) return null; - return ObjectUtil.equals(codeUse.getStatus(), YesNoEnum.YES.getCode()); + return count <= 0; } /**