Bläddra i källkod

fix 余额退款

zwhui 2 år sedan
förälder
incheckning
70d156a79f

+ 3 - 2
netflix-service/src/main/java/com/cyksj/service/cryptomus/CryptomusService.java

@@ -56,8 +56,9 @@ public class CryptomusService {
             throw new BusinessRuntimeException(GatewayApiCode.METADATA_SYSTEM_ERROR.getCode(),"The donation has been paid");
         }
         CryptomusPayReq cryptomusPay = new CryptomusPayReq();
-        cryptomusPay.setAmount(String.valueOf(orderDon.getMoney().divide(new BigDecimal(100), 2, RoundingMode.HALF_DOWN)));
-        cryptomusPay.setCurrency(orderDon.getCurrency());
+        BigDecimal money = orderDon.getMoney().divide(orderDon.getRate(),0,RoundingMode.HALF_UP);
+        cryptomusPay.setAmount(String.valueOf(money.divide(new BigDecimal(100), 2, RoundingMode.HALF_DOWN)));
+        cryptomusPay.setCurrency("USD");
         cryptomusPay.setLifetime(1800);
         cryptomusPay.setOrder_id(orderId.toString());
         cryptomusPay.setUrl_callback(host + "/applets/order/cryptomus/notify");

+ 1 - 0
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -601,6 +601,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             if (OrderDon.Type.BALANCE != orderDon.getType() && refundMoney.compareTo(money) > 0) {
                 throw BusinessRuntimeException.getInstance("退款余额大于订单支付金额");
             }
+            refundMoney = refundMoney.divide(orderDon.getRate(),0,RoundingMode.HALF_UP);
             orderDon.setRefundBalance(refundMoney);
             orderDon.setRefundMoney(BigDecimal.ZERO);
         } else {

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

@@ -1999,7 +1999,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			BigDecimal userBalance = user.getBalance();
 			//扣除余额 是否成功
 			if (!"USD".equals(orderDon.getCurrency())){
-				subBalance = subBalance.divide(orderDon.getRate(),2,RoundingMode.HALF_UP);
+				subBalance = subBalance.divide(orderDon.getRate(),0,RoundingMode.HALF_UP);
 			}
 			Integer success = userMapper.deductBalance(user.getId(), subBalance, userBalance);
 			if (success != 1) throw BusinessRuntimeException.getInstance(I18nMessageUtil.getI18nMsg("user_balance_not_enough"));