zoujiajian hai 9 meses
pai
achega
9d8a9ebd24

+ 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();
 			}