Selaa lähdekoodia

fix 抵扣升级 使用订单总支付金额计算差价

zoujiajian 9 kuukautta sitten
vanhempi
sitoutus
4e393236ed

+ 12 - 2
netflix-service/src/main/java/com/cyksj/service/claude/impl/ClaudeCodeServiceImpl.java

@@ -79,6 +79,8 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 
 	private final OrderDonMapper orderDonMapper;
 
+	private final OrderDonGalaxyCoinRecordMapper orderDonGalaxyCoinRecordMapper;
+
 	private final ClaudeCodeUserResetRecordMapper claudeCodeUserResetRecordMapper;
 
 	private final ClaudeCodeUserCreditCardRecordMapper claudeCodeUserCreditCardRecordMapper;
@@ -1069,7 +1071,11 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		ClaudeCodeDeductDto claudeCodeDeductDto = new ClaudeCodeDeductDto();
 		if (renewSkuId != null && renewExpiryTime.compareTo(now) > 0) {
 			OrderDon renewOrderDon = orderDonMapper.selectById(renewOrderId);
-			BigDecimal orderMoney = renewOrderDon.getMoney().add(Optional.ofNullable(renewOrderDon.getBalance()).orElse(BigDecimal.ZERO));
+			BigDecimal orderMoney = renewOrderDon.getMoney().add(Optional.ofNullable(renewOrderDon.getBalance()).orElse(BigDecimal.ZERO)).add(Optional.ofNullable(renewOrderDon.getCouponMoney()).orElse(BigDecimal.ZERO));
+			OrderDonGalaxyCoinRecord orderDonGalaxyCoinRecord = orderDonGalaxyCoinRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonGalaxyCoinRecord.class).eq(OrderDonGalaxyCoinRecord::getOrderId, renewOrderDon.getId()).last("limit 1"));
+			if (orderDonGalaxyCoinRecord != null) {
+				orderMoney = orderMoney.add(orderDonGalaxyCoinRecord.getDeductMoney());
+			}
 			GoodsDonSku presentSku = skuMapper.selectById(renewSkuId);
 			if (orderMoney.compareTo(BigDecimal.ZERO) == 0) {
 				//存在升级后的0元订单 即兑换码订单 不让抵扣
@@ -1233,7 +1239,11 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		Integer totalDays = 0;
 		for (OrderDon orderDon : orderDonList) {
 			GoodsDonSku sku = skuMapper.selectById(skuId);
-			BigDecimal thisOrderMoney = orderDon.getMoney().add(Optional.ofNullable(orderDon.getBalance()).orElse(BigDecimal.ZERO)).subtract(Optional.ofNullable(orderDon.getRefundMoney()).orElse(BigDecimal.ZERO));
+			BigDecimal thisOrderMoney = orderDon.getMoney().add(Optional.ofNullable(orderDon.getBalance()).orElse(BigDecimal.ZERO)).subtract(Optional.ofNullable(orderDon.getRefundMoney()).orElse(BigDecimal.ZERO)).add(Optional.ofNullable(orderDon.getCouponMoney()).orElse(BigDecimal.ZERO));
+			OrderDonGalaxyCoinRecord orderDonGalaxyCoinRecord = orderDonGalaxyCoinRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonGalaxyCoinRecord.class).eq(OrderDonGalaxyCoinRecord::getOrderId, orderDon.getId()).last("limit 1"));
+			if (orderDonGalaxyCoinRecord != null) {
+				thisOrderMoney = thisOrderMoney.add(orderDonGalaxyCoinRecord.getDeductMoney());
+			}
 			if (thisOrderMoney.compareTo(BigDecimal.ZERO) == 0) {
 				if (sku.getDays() != null) {
 					relationExpiryTime = DateUtil.offsetDay(relationExpiryTime, -sku.getDays());

+ 12 - 2
netflix-service/src/main/java/com/cyksj/service/codex/impl/CodexServiceImpl.java

@@ -112,6 +112,8 @@ public class CodexServiceImpl implements CodexService {
 
 	private final CouponFontService couponFontService;
 
+	private final OrderDonGalaxyCoinRecordMapper orderDonGalaxyCoinRecordMapper;
+
 	private static final Sequence SEQUENCE = new Sequence(0);
 
 	private final ClaudeCodexApiService claudeCodexApiService;
@@ -475,7 +477,11 @@ public class CodexServiceImpl implements CodexService {
 		//续费规格
 		if (renewSkuId != null && renewExpiryTime.compareTo(now) > 0) {
 			OrderDon renewOrderDon = orderDonMapper.selectById(renewOrderId);
-			BigDecimal orderMoney = renewOrderDon.getMoney().add(Optional.ofNullable(renewOrderDon.getBalance()).orElse(BigDecimal.ZERO));
+			BigDecimal orderMoney = renewOrderDon.getMoney().add(Optional.ofNullable(renewOrderDon.getBalance()).orElse(BigDecimal.ZERO)).add(Optional.ofNullable(renewOrderDon.getCouponMoney()).orElse(BigDecimal.ZERO));
+			OrderDonGalaxyCoinRecord orderDonGalaxyCoinRecord = orderDonGalaxyCoinRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonGalaxyCoinRecord.class).eq(OrderDonGalaxyCoinRecord::getOrderId, renewOrderDon.getId()).last("limit 1"));
+			if (orderDonGalaxyCoinRecord != null) {
+				orderMoney = orderMoney.add(orderDonGalaxyCoinRecord.getDeductMoney());
+			}
 			GoodsDonSku presentSku = skuMapper.selectById(renewSkuId);
 			if (orderMoney.compareTo(BigDecimal.ZERO) == 0) {
 				orderMoney = presentSku.getPrice();
@@ -884,7 +890,11 @@ public class CodexServiceImpl implements CodexService {
 		Integer totalDays = 0;
 		for (OrderDon orderDon : orderDonList) {
 			GoodsDonSku sku = skuMapper.selectById(skuId);
-			BigDecimal thisOrderMoney = orderDon.getMoney().add(Optional.ofNullable(orderDon.getBalance()).orElse(BigDecimal.ZERO)).subtract(Optional.ofNullable(orderDon.getRefundMoney()).orElse(BigDecimal.ZERO));
+			BigDecimal thisOrderMoney = orderDon.getMoney().add(Optional.ofNullable(orderDon.getBalance()).orElse(BigDecimal.ZERO)).subtract(Optional.ofNullable(orderDon.getRefundMoney()).orElse(BigDecimal.ZERO)).add(Optional.ofNullable(orderDon.getCouponMoney()).orElse(BigDecimal.ZERO));
+			OrderDonGalaxyCoinRecord orderDonGalaxyCoinRecord = orderDonGalaxyCoinRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonGalaxyCoinRecord.class).eq(OrderDonGalaxyCoinRecord::getOrderId, orderDon.getId()).last("limit 1"));
+			if (orderDonGalaxyCoinRecord != null) {
+				thisOrderMoney = thisOrderMoney.add(orderDonGalaxyCoinRecord.getDeductMoney());
+			}
 			if (thisOrderMoney.compareTo(BigDecimal.ZERO) == 0) {
 				thisOrderMoney = sku.getPrice();
 			}

+ 3 - 3
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -4715,9 +4715,9 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		GroupsTrips groupsTrips = getGroupsTrips(groupsRelation);
 		GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(groupsTrips.getSkuId());
 		GoodsDon goodsDon = goodsDonMapper.selectById(goodsDonSku.getGoodsId());
-		if (!goodsDonSku.getIsMirror()) {
-			throw BusinessRuntimeException.getInstance("系统异常");
-		}
+//		if (!goodsDonSku.getIsMirror()) {
+//			throw BusinessRuntimeException.getInstance("系统异常");
+//		}
 		Long renewSkuId = payRequest.getSkuId();
 		GoodsDonSku renewSku = goodsDonSkuMapper.selectById(renewSkuId);
 		//校验同规格