From 0f25ef5fe5076be73cf7d40b2f0f9c3f7293eadb Mon Sep 17 00:00:00 2001 From: zainali5120 <512061637@qq.com> Date: Thu, 08 Oct 2020 13:41:12 +0800 Subject: [PATCH] 修复冻结问题 --- src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java index e611d45..5d1e101 100644 --- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java @@ -481,6 +481,62 @@ } + @Override + public void updateRoc(RocTransferDetail transferDetail) { + // 更新ROC + // 增加用户余额 + String address = transferDetail.getAddress(); + BigDecimal balance = transferDetail.getBalance(); + String symbol = transferDetail.getSymbol(); + if(org.apache.commons.lang.StringUtils.isBlank(address) || org.apache.commons.lang.StringUtils.isBlank(symbol) || balance ==null ){ + return; + } + + if(balance.compareTo(new BigDecimal("0.0001"))<=0){ + return; + } + + MemberCoinAddressEntity memberCoinAddress = memberCoinAddressDao.selectCoinAddressByAddressAndSymbol(address, symbol); + if(memberCoinAddress==null){ + return; + } + Long memberId = memberCoinAddress.getMemberId(); + // 查询钱包 并更新 + MemberWalletCoinEntity walletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.ROC.name()); + if (walletCoinEntity == null) { + // 创建一个钱包 + // 创建这个钱包 + walletCoinEntity = new MemberWalletCoinEntity(); + walletCoinEntity.setAvailableBalance(BigDecimal.ZERO); + walletCoinEntity.setFrozenBalance(BigDecimal.ZERO); + walletCoinEntity.setTotalBalance(BigDecimal.ZERO); + walletCoinEntity.setBorrowedFund(BigDecimal.ZERO); + walletCoinEntity.setMemberId(memberId); + walletCoinEntity.setWalletCode(symbol); + memberWalletCoinDao.insert(walletCoinEntity); + } + + memberWalletCoinDao.updateBlockBalance(walletCoinEntity.getId(), balance, BigDecimal.ZERO, 0); + + String orderNo = insertCoinCharge(address, memberId, balance, CoinTypeEnum.ROC.name(), "", BigDecimal.ZERO,null); + // 插入财务记录 + LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", balance, CoinTypeEnum.ROC.name(), 1, 1); + + try{ + ThreadPoolUtils.sendDingTalk(5); + MemberEntity member = memberDao.selectById(memberId); + if (StrUtil.isNotBlank(member.getPhone())) { + String amount = balance.toPlainString() + "ROC"; + Sms106Send.sendRechargeMsg(member.getPhone(), DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MINUTE_PATTERN), orderNo); + } else { + SubMailSend.sendRechargeMail(member.getEmail(), DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MINUTE_PATTERN), orderNo); + } + }catch (Exception e){ + //e.printStackTrace(); + } + + } + private String generateNo() { // 生成订单号 Long timestamp = System.currentTimeMillis(); -- Gitblit v1.9.1