TRX 1 год назад
Родитель
Сommit
2f50209a8e

+ 11 - 10
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/BalancePayService.java

@@ -70,9 +70,10 @@ public class BalancePayService {
      * 下单并生成调用支付参数
      */
     @Transactional
-    public Object recharge(RechargeParam param){
+    public Object recharge(RechargeParam param) {
         //根据项目id和支付渠道获取支付账户名
-        String accountName = orgPayAccountService.queryOgPayAccount(param.getProjectOid(), param.getPaymentType());;
+        String accountName = orgPayAccountService.queryOgPayAccount(param.getProjectOid(), param.getPaymentType());
+        ;
         //生成订单id
         String orderNo = CommonUtil.UUID();
         //调用小程序支付
@@ -82,7 +83,7 @@ public class BalancePayService {
         payProductParameter.setMeta(meta);
         payProductParameter.setAccountName(accountName);
         ResultContent<Object> prepay = miniAppPayService.prepay(payProductParameter);
-        if (!prepay.getState().equals(ResultState.Success)){
+        if (!prepay.getState().equals(ResultState.Success)) {
             return prepay;
         }
         PayAccount payAccount = payAccountService.getUserChildren(param.getProjectOid(), param.getUserId(), param.getPaymentType().getChannelType());
@@ -100,7 +101,7 @@ public class BalancePayService {
         return ResultContent.buildContent(toModel(balanceRechargeOrder));
     }
 
-    public void handleWeChatCallback(WeChatMiniAppPayRet ret){
+    public void handleWeChatCallback(WeChatMiniAppPayRet ret) {
         BalanceRechargeOrder rechargeOrder = rechargeOrderDao.findTopByOrderNo(ret.getOutTradeNo());
         switch (ret.getTradeState()) {
             case "SUCCESS" -> {
@@ -149,7 +150,7 @@ public class BalancePayService {
         rechargeOrderDao.save(rechargeOrder);
     }
 
-    public ResultContent<List<TransactionLogModel>> balancePay(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String remark){
+    public ResultContent<List<TransactionLogModel>> balancePay(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String remark) {
         //获取用户余额支付子账户
         PayAccount userBalancePayment = payAccountService.getUserChildren(projectOid, userId, PaymentChannelType.BalancePayment);
         //获取机构待结算账户
@@ -179,25 +180,25 @@ public class BalancePayService {
         return transactionLogService.transfer(transferModel);
     }
 
-    public ResultContent queryRechargeOrder(QueryRechargeParam param){
+    public ResultContent queryRechargeOrder(QueryRechargeParam param) {
         Long monthStartTime = DateUtils.getMonthStartTime(param.getYear(), param.getMonth());
         Long monthEndTime = DateUtils.getMonthEndTime(param.getYear(), param.getMonth());
         List<BalanceRechargeOrder> balanceRechargeOrders = rechargeOrderDao.listByMonth(param.getProjectOid(), param.getUserId(), monthStartTime, monthEndTime);
         return ResultContent.buildContent(balanceRechargeOrders.stream().map(this::toModel).toList());
     }
 
-    public ResultContent queryUserBalance(String projectOid, String userId){
+    public ResultContent<Long> queryUserBalance(String projectOid, String userId) {
         PayAccount userBalance = payAccountService.getUserChildren(projectOid, userId, PaymentChannelType.BalancePayment);
         ResultContent<GeneralLedgerModel> ret = generalLedgerService.get(userBalance.getLedgerId());
-        if (ret.equals(ResultState.Success)){
+        if (ret.equals(ResultState.Success)) {
             return ResultContent.buildContent(ret.getContent().getBalance());
         }
         return ResultContent.build(ResultState.Fail);
     }
 
-    private RechargeOrderModel toModel(BalanceRechargeOrder balanceRechargeOrder){
+    private RechargeOrderModel toModel(BalanceRechargeOrder balanceRechargeOrder) {
         RechargeOrderModel rechargeOrderModel = new RechargeOrderModel();
-        if (balanceRechargeOrder != null){
+        if (balanceRechargeOrder != null) {
             BeanUtils.copyProperties(balanceRechargeOrder, rechargeOrderModel);
         }
         return rechargeOrderModel;

+ 6 - 12
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/ExpenseFlowServiceImpl.java

@@ -184,14 +184,16 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
      */
     @Transactional
     public ResultContent<ExpenseFlow> orderPay(ExpenseFlow entity) {
+        // 判断参数是否符合要求
         if (entity.getVerifyParamIsSuccess() == null || !entity.getVerifyParamIsSuccess()) {
-            // 参数失败
+            // 参数验证失败
             entity.setIsPaySuccess(Boolean.FALSE);
             entity.setPayRemark(entity.getVerifyParamMsg());
             entity.setPaymentStatus("支付失败");
             expenseFlowDao.save(entity);
             return ResultContent.buildSuccess(entity);
         }
+
         if (entity.getMode() != null) {
             if (entity.getMode() == 0) {
                 entity.setOrderModeType(OrderModeType.Consume);
@@ -465,17 +467,9 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
                 // 金额 转为 元 单位
                 result.setAmount(CommonUtil.turnMoney2Show(expenseFlow.getPayAmount()));
 
-                // 查询余额
-                BalanceQueryParam param = new BalanceQueryParam();
-                param.setProjectOid(expenseFlow.getProjectOid());
-                param.setPaymentType(expenseFlow.getPaymentType());
-                param.setWalletType(WalletType.User);
-                param.setUserId(expenseFlow.getUserId());
-                ResultContent<BalanceModel> queryBalance = orderPayFeignService.queryBalance(param);
-                if (queryBalance.isSuccess()) {
-                    BalanceModel balanceModel = queryBalance.getContent();
-                    result.setMoney(CommonUtil.turnMoney2Show(balanceModel.getAmount()));
-                }
+                BigDecimal number = payCallService.queryBalance(expenseFlow);
+                // 余额
+                result.setMoney(CommonUtil.turnMoney2Show(number));
             } else {
                 result.setFailed(expenseFlow.getPayRemark());
             }

+ 16 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/PayCallService.java

@@ -17,6 +17,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -98,4 +99,19 @@ public class PayCallService extends SuperService {
         entity.setPayMillis(entity.getPayEndTime() - entity.getPayStartTime());
         return ResultContent.buildSuccess();
     }
+
+    public BigDecimal queryBalance(ExpenseFlow entity) {
+        BigDecimal balance = BigDecimal.ZERO;
+        if (entity.getPaymentType() == PaymentType.UserWallet) {
+            com.github.microservice.pay.client.ret.ResultContent<Long> resultContent = balancePayService.queryUserBalance(entity.getProjectOid(), entity.getUserId());
+            if (resultContent.getState() == ResultState.Success) {
+                long number = resultContent.getContent();
+                balance = BigDecimal.valueOf(number);
+            } else {
+                log.info("查询余额queryBalance失败: {}", resultContent.getMsg());
+            }
+        }
+        return balance;
+    }
+
 }

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/util/CommonUtil.java

@@ -173,6 +173,9 @@ public class CommonUtil {
     }
 
     public static String turnMoney2Show(BigDecimal amount) {
+        if (amount == null) {
+            return "";
+        }
         String str = "0.00";
         try {
             str = amount.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString();