TRX 1 gadu atpakaļ
vecāks
revīzija
67aa664586

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

@@ -39,6 +39,10 @@ import com.zhongshu.card.server.core.httpRequest.apiConf.APIResponseModel;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
 import com.zhongshu.card.server.core.util.*;
+import com.zhongshu.payment.client.model.WalletModel;
+import com.zhongshu.payment.client.model.param.AmountUpdateParam;
+import com.zhongshu.payment.client.service.WalletFeignService;
+import com.zhongshu.payment.client.types.WalletType;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -87,6 +91,9 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
     @Autowired
     OrganizationServiceImpl organizationService;
 
+    @Autowired
+    WalletFeignService walletFeignService;
+
     /**
      * 创建流水
      *
@@ -156,42 +163,58 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
             return ResultContent.buildSuccess(entity);
         }
 
-        // 关联参数
-        entity.setPaymentStatus("支付成功");
-        entity.setIsPaySuccess(Boolean.TRUE);
-        entity.setPayRemark("支付成功");
-
-        Wallet wallet = walletDao.findByUserId(entity.getUserId());
-        BigDecimal amount = entity.getPayAmount();
-        UserAccount userAccount = entity.getUserAccount();
-        // 扣款
-        // 消费金额
-        try {
-            WalletRecharge walletRecharge = new WalletRecharge();
-            initEntityNoCheckOid(walletRecharge);
-            BigDecimal preAmount = wallet.getAmount();
-            BigDecimal afterAmount = preAmount.subtract(amount);
-            wallet.setAmount(afterAmount);
-
-            walletRecharge.setPaymentNo(entity.getPaymentNo());
-            walletRecharge.setPreAmount(preAmount);
-            walletRecharge.setAmount(amount);
-            walletRecharge.setRechargeType(RechargeType.Expend);
-            walletRecharge.setAfterAmount(afterAmount);
-            walletRecharge.setUserId(userAccount.getUserId());
-            walletRecharge.setUserAccount(userAccount);
-            walletRecharge.setWallet(wallet);
-            walletRecharge.setUserName(userAccount.getName());
-            walletRecharge.setPhone(userAccount.getPhone());
-            walletRecharge.setYear(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyy));
-            walletRecharge.setMonth(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternMM));
-            walletRecharge.setTimeStr(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyySSS));
-
-            walletDao.save(wallet);
-            walletRechargeDao.save(walletRecharge);
-        } catch (Exception e) {
-            e.printStackTrace();
+        // 钱包支付
+        AmountUpdateParam param = new AmountUpdateParam();
+        param.setOid(entity.getProjectOid());
+        param.setUserId(entity.getUserId());
+        param.setShopId(entity.getShopOid());
+        param.setSchoolId(entity.getSchoolOid());
+        param.setTotal(entity.getPayAmount());
+        param.setOutTradeNo(entity.getPaymentNo());
+        com.zhongshu.payment.client.ret.ResultContent content = walletFeignService.consume(param);
+        if (content.isSuccess()) {
+            // 关联参数
+            entity.setPaymentStatus("支付成功");
+            entity.setIsPaySuccess(Boolean.TRUE);
+            entity.setPayRemark("支付成功");
+        } else {
+            String msg = content.getMsg();
+            entity.setPaymentStatus(msg);
+            entity.setIsPaySuccess(Boolean.FALSE);
+            entity.setPayRemark(content.getMsg());
         }
+
+//        Wallet wallet = walletDao.findByUserId(entity.getUserId());
+//        BigDecimal amount = entity.getPayAmount();
+//        UserAccount userAccount = entity.getUserAccount();
+//        // 扣款
+//        // 消费金额
+//        try {
+//            WalletRecharge walletRecharge = new WalletRecharge();
+//            initEntityNoCheckOid(walletRecharge);
+//            BigDecimal preAmount = wallet.getAmount();
+//            BigDecimal afterAmount = preAmount.subtract(amount);
+//            wallet.setAmount(afterAmount);
+//
+//            walletRecharge.setPaymentNo(entity.getPaymentNo());
+//            walletRecharge.setPreAmount(preAmount);
+//            walletRecharge.setAmount(amount);
+//            walletRecharge.setRechargeType(RechargeType.Expend);
+//            walletRecharge.setAfterAmount(afterAmount);
+//            walletRecharge.setUserId(userAccount.getUserId());
+//            walletRecharge.setUserAccount(userAccount);
+//            walletRecharge.setWallet(wallet);
+//            walletRecharge.setUserName(userAccount.getName());
+//            walletRecharge.setPhone(userAccount.getPhone());
+//            walletRecharge.setYear(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyy));
+//            walletRecharge.setMonth(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternMM));
+//            walletRecharge.setTimeStr(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyySSS));
+//
+//            walletDao.save(wallet);
+//            walletRechargeDao.save(walletRecharge);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
         expenseFlowDao.save(entity);
         return ResultContent.buildSuccess();
     }
@@ -352,22 +375,22 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
             return;
         }
 
-        // 个人钱包
-        if (paymentType == PaymentType.UserWallet) {
-            // 得到钱包的金额
-            BigDecimal amount = entity.getPayAmount();
-            // 钱包信息
-            Wallet wallet = walletService.getUserWalletByUserId(entity.getUserId());
-            if (wallet.getDataState() != DataState.Enable) {
-                entity.setVerifyError(String.format("支付失败钱包%s", wallet.getDataState().getRemark()));
-                return;
-            }
-            // 检查
-            if (wallet.getAmount().compareTo(amount) < 0) {
-                entity.setVerifyError("余额不足");
-                return;
-            }
-        }
+//        // 个人钱包
+//        if (paymentType == PaymentType.UserWallet) {
+//            // 得到消费的金额
+//            BigDecimal amount = entity.getPayAmount();
+//            // 钱包信息
+//            Wallet wallet = walletService.getUserWalletByUserId(entity.getUserId());
+//            if (wallet.getDataState() != DataState.Enable) {
+//                entity.setVerifyError(String.format("支付失败钱包%s", wallet.getDataState().getRemark()));
+//                return;
+//            }
+//            // 检查
+//            if (wallet.getAmount().compareTo(amount) < 0) {
+//                entity.setVerifyError("余额不足");
+//                return;
+//            }
+//        }
 
         // 消费设备信息
         if (deviceInfo.getDeviceType() != null) {
@@ -463,11 +486,15 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
                 result.setAmount(CommonUtil.turnMoney2Show(expenseFlow.getPayAmount()));
 
                 if (expenseFlow.getPaymentType() == PaymentType.UserWallet) {
-                    // 钱包查询余额
-                    Wallet wallet = walletDao.findByUserId(expenseFlow.getUserId());
-                    if (ObjectUtils.isNotEmpty(wallet)) {
-                        result.setMoney(CommonUtil.turnMoney2Show(wallet.getAmount()));
+                    com.zhongshu.payment.client.ret.ResultContent<WalletModel> content = walletFeignService.getWallet(expenseFlow.getProjectOid(), WalletType.User, null, expenseFlow.getUserId());
+                    if (content.isSuccess()) {
+                        result.setMoney(CommonUtil.turnMoney2Show(content.getContent().getAmount()));
                     }
+//                    // 钱包查询余额
+//                    Wallet wallet = walletDao.findByUserId(expenseFlow.getUserId());
+//                    if (ObjectUtils.isNotEmpty(wallet)) {
+//                        result.setMoney(CommonUtil.turnMoney2Show(wallet.getAmount()));
+//                    }
                 }
             } else {
                 result.setFailed(expenseFlow.getPayRemark());