From 60bc95965314456798ef4eabe307ff68c0528181 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 23 May 2025 16:52:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E9=80=82=E9=85=8D=E8=B7=A8=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=E5=92=8C=E5=A4=96=E6=9D=A5=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/constant/order/HardPayTypeEnum.java | 5 ++++ .../impl/order/HardCarServiceImpl.java | 7 +++-- .../impl/order/HardOrderServiceImpl.java | 26 +++++++++++++++--- .../impl/WalletCodeUseServiceImpl.java | 27 ++++++++++++++++--- 4 files changed, 55 insertions(+), 10 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardPayTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardPayTypeEnum.java index eb5e16c03..1d054be0e 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardPayTypeEnum.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardPayTypeEnum.java @@ -36,6 +36,11 @@ public enum HardPayTypeEnum { CASH ); + public static final List isNotPay = List.of( + STRIDE_DEPT_QR_CODE, + FOREIGN_TICKET_QR_CODE + ); + public static HardPayTypeEnum valueOfByType(String type) { if (ObjectUtil.isEmpty(type)) return null; return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java index df637090a..cfe417b73 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java @@ -142,8 +142,8 @@ public class HardCarServiceImpl extends ServiceImpl { // 查询食堂商品 AtomicInteger canteenTotalPrice = new AtomicInteger(); - // 线上 if (ObjectUtil.equals(HardOrderTypeEnum.RESERVE, orderType)) { + // 线上 List supList = onlineCanteenSpuService.getSpuListByIds(productIds).getData(); for (HardCreateCarDto v : list) { supList.stream().filter(i -> ObjectUtil.equals(i.getId(), v.getProductId())).findFirst().ifPresent(spu -> { @@ -151,9 +151,8 @@ public class HardCarServiceImpl extends ServiceImpl supList = canteenSpuService.getSpuListByIds(productIds).getData(); for (HardCreateCarDto v : list) { supList.stream().filter(i -> ObjectUtil.equals(i.getId(), v.getProductId())).findFirst().ifPresent(spu -> { 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 a09fbde1b..a25e41156 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 @@ -216,6 +216,10 @@ public class HardOrderServiceImpl extends ServiceImpl { @@ -818,6 +835,9 @@ public class HardOrderServiceImpl extends ServiceImpl 0; } From 90bfb4121f46e9d55f00cd80a81ff121a9f8e407 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 23 May 2025 17:43:25 +0800 Subject: [PATCH 2/2] 11 --- .../impl/order/HardOrderServiceImpl.java | 46 +++++++++---------- .../wallet/api/dto/WalletForeignDto.java | 5 ++ .../wallet/api/dto/WalletStrideDto.java | 5 ++ .../controller/WalletForeignController.java | 1 + .../controller/WalletStrideController.java | 1 + .../wallet/mapper/WalletForeignMapper.java | 1 + .../wallet/mapper/WalletStrideMapper.java | 2 + .../impl/WalletCodeUseServiceImpl.java | 11 +++-- 8 files changed, 44 insertions(+), 28 deletions(-) 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; } /**