diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/YesNoEnum.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/YesNoEnum.java index 689eaeebf..5ce73f0ef 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/YesNoEnum.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/YesNoEnum.java @@ -13,7 +13,8 @@ import lombok.Getter; @AllArgsConstructor public enum YesNoEnum { - YES("1", "是"), NO("0", "否"); + YES("1", "是"), + NO("0", "否"); /** * 编码 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 d3605d0df..5678fe6c8 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 @@ -67,6 +67,7 @@ import com.bsd.pjcloud.hard.mapper.HardThirdMiOrderMapper; import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper; import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper; import com.bsd.pjcloud.hard.service.*; +import com.bsd.pjcloud.hard.utils.RemoteBatchQueryUtil; import com.bsd.pjcloud.supermarket.api.feign.RemoteMallProductService; import com.bsd.pjcloud.supermarket.api.feign.RemoteShopSkuService; import com.bsd.pjcloud.supermarket.api.feign.RemoteSupermarketSpuService; @@ -1781,7 +1782,7 @@ public class HardOrderServiceImpl extends ServiceImpl walletIds = list.stream().map(HardOrderVo::getWalletId).filter(ObjectUtil::isNotEmpty).distinct().toList(); if (ObjectUtil.isNotEmpty(walletIds)) { - List walletList = remoteWalletService.getWalletByIds(walletIds).getData(); + List walletList = getWalletListByIds(walletIds); Map walletMap = CollectionUtils.convertMap(walletList, WalletManageVo::getId); for (HardOrderVo v : list) { WalletManageVo target = walletMap.get(v.getWalletId()); @@ -1801,4 +1802,8 @@ public class HardOrderServiceImpl extends ServiceImpl getWalletListByIds(List walletIds) { + return RemoteBatchQueryUtil.queryByIds(walletIds, ids -> remoteWalletService.getWalletByIds(ids).getData()); + } +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/utils/act/service/ActCouponComUtilService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/utils/act/service/ActCouponComUtilService.java index 479e4c22f..e111cac8f 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/utils/act/service/ActCouponComUtilService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/utils/act/service/ActCouponComUtilService.java @@ -99,10 +99,14 @@ public class ActCouponComUtilService implements ActCouponLifecycleService { */ @Override public void afterReceive(ActCouponEntity coupon, ActCouponRecordEntity record, SysUser sysUser) { - // 使用原子更新操作,避免并发问题 - int rows = actCouponMapper.deductStock(coupon.getId()); - if (rows == 0) { - throw new RuntimeException("优惠券库存不足或已被领完"); + if (ObjectUtil.isNotEmpty(coupon.getTotalCount()) && coupon.getTotalCount() > 0) { + if (ObjectUtil.isNotEmpty(coupon.getSurplusCount())) { + // 使用原子更新操作,避免并发问题 + int rows = actCouponMapper.deductStock(coupon.getId()); + if (rows == 0) { + throw new RuntimeException("优惠券库存不足或已被领完"); + } + } } }