|
|
@@ -5,6 +5,7 @@ import com.bex.staking.constant.StakingErrorCode;
|
|
|
import com.bex.staking.converter.StakingPreviewConverter;
|
|
|
import com.bex.staking.converter.command.PreviewAssembly;
|
|
|
import com.bex.staking.entity.StakingProduct;
|
|
|
+import com.bex.staking.enums.ProductType;
|
|
|
import com.bex.staking.exception.StakingException;
|
|
|
import com.bex.staking.grpc.AssetGrpcClient;
|
|
|
import com.bex.staking.grpc.MarketPriceClient;
|
|
|
@@ -125,9 +126,16 @@ public class PreviewEngine {
|
|
|
BigDecimal threshold = resolveThreshold(product.getDeflationRate());
|
|
|
BigDecimal triggerThreshold = stakingNum.multiply(threshold);
|
|
|
|
|
|
- // 6. 到期时间 = lockStart + lockDays × 86_400_000(需求 4.5 / 属性 6)
|
|
|
+ // 6. 到期时间(需求 4.5 / 属性 6)
|
|
|
long lockStart = resolveLockStart(product);
|
|
|
- long expireTime = lockStart + (long) lockDays * StakingConstants.MILLIS_PER_DAY;
|
|
|
+ long expireTime;
|
|
|
+
|
|
|
+ // 私募订单直接使用产品的锁仓到期时间,质押订单按常规计算
|
|
|
+ if (ProductType.PRIVATE_SALE.getValue().equals(product.getProductType())) {
|
|
|
+ expireTime = product.getLockEndTime();
|
|
|
+ } else {
|
|
|
+ expireTime = lockStart + (long) lockDays * StakingConstants.MILLIS_PER_DAY;
|
|
|
+ }
|
|
|
|
|
|
// 7. 用户可用余额(需求 4.2)
|
|
|
BigDecimal availableBalance = assetGrpcClient.getAvailableBalance(userId, CURRENCY_BEX);
|