From 7c60cbf73ac80e2cb9fa801c34bc060eae5548cf Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 17 Sep 2025 17:41:52 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=AD=A3=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=BD=AF=E4=BB=B6=E8=B4=AD=E4=B9=B0=E7=BB=84=E7=BB=87=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E7=9A=84=E5=AE=9A=E4=BB=B7=E5=88=97=E8=A1=A8=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E9=A6=96=E8=B4=AD=E8=AE=B0=E5=BD=95=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=AE=9A=E4=BB=B7=E5=88=97=E8=A1=A8=E8=BF=94=E5=9B=9E=EF=BC=9B?= =?UTF-8?q?2=E3=80=81=E4=BF=AE=E6=AD=A3=E8=BD=AF=E4=BB=B6=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E6=97=B6=E5=BF=85=E9=A1=BB=E6=9C=89=E9=A6=96=E8=B4=AD?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E7=9A=84=E9=99=90=E5=88=B6=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cf/imes/module/system/enums/ErrorCodeConstants.java | 1 - .../service/funds/purchase/PurchaseServiceImpl.java | 5 +++-- .../module/system/service/pay/PayProductProcessor.java | 8 ++------ 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index 1cf41f7f1..213b893f4 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -472,7 +472,6 @@ public class ErrorCodeConstants { public static final ErrorCode PRODUCTS_OUTPUT_NOT_SUPPORT = new ErrorCode(1_002_045_009, "暂不支持创建购买方式为【产量】的定价规则"); public static final ErrorCode RECHARGE_ACTIVE_NO_EXIST = new ErrorCode(1_002_045_010, "当前赠送金活动不存在"); public static final ErrorCode PRODUCTS_DETAIL_DURATION_UNIT_NOT_SUPPORT = new ErrorCode(1_002_045_011, "不支持的时长单位,请检查该定价规则的时长单位"); - public static final ErrorCode INITIAL_PRODUCTS_NOT_EXIST_ERROR = new ErrorCode(1_002_045_012, "产品首次购买记录获取失败,请检查组织数据"); //=========== 广告相关 1-002-046-000 ============ public static final ErrorCode ADVERTISEMENT_POSITION_NO_EXIST = new ErrorCode(1_002_046_001, "广告所选放置位置不存在"); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/purchase/PurchaseServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/purchase/PurchaseServiceImpl.java index 5e592aed0..634997ee0 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/purchase/PurchaseServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/purchase/PurchaseServiceImpl.java @@ -45,7 +45,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; -import static com.cf.imes.module.system.enums.ErrorCodeConstants.INITIAL_PRODUCTS_NOT_EXIST_ERROR; import static com.cf.imes.module.system.enums.ErrorCodeConstants.PRODUCTS_DETAIL_DURATION_UNIT_NOT_SUPPORT; /** @@ -264,7 +263,9 @@ public class PurchaseServiceImpl implements PurchaseService { // 查询组织下的首次订购产品记录 PurchaseRecordDO orgInitialPurchaseRecord = getOrgInitialPurchaseRecord(organId, productId); - AssertUtils.notEmpty(orgInitialPurchaseRecord, INITIAL_PRODUCTS_NOT_EXIST_ERROR); + if (ObjectUtil.isNull(orgInitialPurchaseRecord)) { + return page.getList(); + } List resultList = new ArrayList<>(); for (ProductsDetailDO detailDO : page.getList()) { diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/pay/PayProductProcessor.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/pay/PayProductProcessor.java index eef4c3f68..acd4a99c4 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/pay/PayProductProcessor.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/pay/PayProductProcessor.java @@ -30,7 +30,6 @@ import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; -import static com.cf.imes.module.system.enums.ErrorCodeConstants.INITIAL_PRODUCTS_NOT_EXIST_ERROR; import static com.cf.imes.module.system.enums.ErrorCodeConstants.PAY_PRODUCT_AVAILABLE_BALANCE_INSUFFICIENT; import static com.cf.imes.module.system.enums.ErrorCodeConstants.PAY_PRODUCT_BALANCE_INSUFFICIENT; import static com.cf.imes.module.system.enums.ErrorCodeConstants.PAY_PRODUCT_GIFT_BALANCE_INSUFFICIENT; @@ -62,9 +61,6 @@ public class PayProductProcessor { Long organId, ChenfengPayConfig payConfig, MybatisIdProperties mybatisIdProperties) { this.productsDO = productsDO; this.productsDetailDO = productsDetailDO; - if (ObjectUtil.isNull(orgInitialPurchaseRecord)) { - throw new ServiceException(INITIAL_PRODUCTS_NOT_EXIST_ERROR); - } this.orgInitialPurchaseRecord = orgInitialPurchaseRecord; this.organAmountDO = organAmountDO; this.organId = organId; @@ -78,8 +74,8 @@ public class PayProductProcessor { * @param payType */ public ProductProcessorRespVO processPayment(PayProductChannelCodeEnum payType) { - // 需要支付的价格 - BigDecimal price = computePrice(orgInitialPurchaseRecord, productsDetailDO); + // 首次购买记录存在则需要做计算,否则直接用定价规则的现价 + BigDecimal price = ObjectUtil.isNotNull(orgInitialPurchaseRecord) ? computePrice(orgInitialPurchaseRecord, productsDetailDO) : productsDetailDO.getCurrentPrice(); // 当前组织的余额 BigDecimal balance = organAmountDO.getAmount(); // 当前组织的赠送金