From ffc56f912da5d6d842142ae4ea1856bc56f8bcb9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 30 九月 2022 19:20:23 +0800
Subject: [PATCH] 结算日志添加

---
 app/src/main/java/com/yeshi/makemoney/app/service/impl/money/ExtractServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/com/yeshi/makemoney/app/service/impl/money/ExtractServiceImpl.java b/app/src/main/java/com/yeshi/makemoney/app/service/impl/money/ExtractServiceImpl.java
index 85f1812..ab7f5ee 100644
--- a/app/src/main/java/com/yeshi/makemoney/app/service/impl/money/ExtractServiceImpl.java
+++ b/app/src/main/java/com/yeshi/makemoney/app/service/impl/money/ExtractServiceImpl.java
@@ -117,6 +117,27 @@
         return new Gson().fromJson(value, ExtractConfig.class);
     }
 
+    @Override
+    public List<Extract> listNeedPassRecord(BigDecimal maxMoney, Date minCreateTime, int page, int pageSize) {
+        DaoQuery daoQuery = new DaoQuery();
+        daoQuery.state = Extract.STATE_NOT_PROCESS;
+        daoQuery.minCreateTime = minCreateTime;
+        daoQuery.maxMoney = maxMoney;
+        daoQuery.sortList = Arrays.asList(new String[]{"create_time asc"});
+        daoQuery.start = (page - 1) * pageSize;
+        daoQuery.count = pageSize;
+        return extractMapper.list(daoQuery);
+    }
+
+    @Override
+    public long countNeedPassRecord(BigDecimal maxMoney, Date minCreateTime) {
+        DaoQuery daoQuery = new DaoQuery();
+        daoQuery.state = Extract.STATE_NOT_PROCESS;
+        daoQuery.minCreateTime = minCreateTime;
+        daoQuery.maxMoney = maxMoney;
+        return extractMapper.count(daoQuery);
+    }
+
     private void validateExtract(BigDecimal money, UserInfo user) throws ExtractException {
         ExtractConfig config = getExtractConfig(user.getSystem());
         if (config == null) {
@@ -261,10 +282,21 @@
         if (extract.getType() == ExtractPayType.alipay) {
             transferByAlipay(extract, adminId);
         } else {
-            transferByWX(extract, adminId, systemConfigService.getValueCache(user.getSystem(), SystemConfigKey.wxAppId));
+          String result =  transferByWX(extract, adminId, systemConfigService.getValueCache(user.getSystem(), SystemConfigKey.wxAppId));
+            Map<String, String> resultMap = WXUtil.parseXML(result);
+            if ("SUCCESS".equalsIgnoreCase(resultMap.get("return_code")) && "SUCCESS".equalsIgnoreCase(resultMap.get("result_code"))) {
+                ;
+            } else {
+
+                String errCode = resultMap.get("err_code");
+                String errMsg = resultMap.get("err_code_des");
+                boolean noMoney = "NOTENOUGH".equalsIgnoreCase(errCode);
+                if(noMoney) {
+                    throw new ExtractException(ExtractException.CODE_WX_PAY_ACCOUNT_NO_MONEY,"寰俊鏀粯璐︽埛浣欓涓嶈冻");
+                }
+            }
+
         }
-
-
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -372,18 +404,20 @@
         }
     }
 
-    private void transferByWX(Extract extract, String adminId, String wxAPPId) {
+    private String transferByWX(Extract extract, String adminId, String wxAPPId) {
         //鑾峰彇鐢ㄦ埛鐨勭郴缁�
         UserInfo user = userInfoService.get(extract.getUser().getId());
         String appName = user.getSystem().getName();
         //鐞嗙敱
-        String result = WXPayUtil.payToOpenId(wxAPPId, extract.getAccount(), Constant.wxTransferConfig.getMchId(), Constant.wxTransferConfig.getKey(), Constant.wxTransferConfig.getCertPwd(), this.getClass().getClassLoader().getResourceAsStream(Constant.wxTransferConfig.getCertPath()), "makemoney" + extract.getId(), extract.getMoney(), "鎻愮幇", extract.getIp());
+        String result = WXPayUtil.payToOpenId(wxAPPId, extract.getAccount(), Constant.wxTransferConfig.getMchId(), Constant.wxTransferConfig.getKey(), Constant.wxTransferConfig.getCertPwd(), this.getClass().getClassLoader().getResourceAsStream(Constant.wxTransferConfig.getCertPath()), "makemoney" + extract.getId(), extract.getMoney(), String.format("鏉ヨ嚜%s鐨勬彁鐜�",appName), extract.getIp());
         try {
             CMQManager.getInstance().addExtractResultMsg(new ExtractTransferResultMQMsg(extract.getId(), result, adminId));
             logger.info("鎻愮幇:娣诲姞澶勭悊闃熷垪鎴愬姛-" + extract.getId());
         } catch (Exception e) {
             logger.error("鎻愮幇:寰俊鎻愮幇CMQ寮傚父锛歿}", result + ",鎻愮幇淇℃伅" + GsonUtil.toJson(extract));
         }
+
+        return result;
     }
 
 
@@ -434,7 +468,7 @@
         if (noMoney) {
             Extract updateExtract = new Extract();
             updateExtract.setId(extract.getId());
-            updateExtract.setState(Extract.STATE_PROCESSING);
+            updateExtract.setState(Extract.STATE_NOT_PROCESS);
             updateExtract.setReason(msg);
             extractMapper.updateByPrimaryKeySelective(updateExtract);
         } else {

--
Gitblit v1.8.0