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