1、修正获取软件购买组织对应的定价列表没有首购记录时的定价列表返回;2、修正软件购买时必须有首购记录的限制;

This commit is contained in:
gaoqr
2025-09-17 17:41:52 +08:00
parent d8f6fe098c
commit 7c60cbf73a
3 changed files with 5 additions and 9 deletions
@@ -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, "广告所选放置位置不存在");
@@ -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<ProductsDetailDO> resultList = new ArrayList<>();
for (ProductsDetailDO detailDO : page.getList()) {
@@ -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();
// 当前组织的赠送金