From 7ba7366a8c6ce8019339e433b218386645cb5312 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 28 Dec 2020 17:38:53 +0800
Subject: [PATCH] Merge branch 'piot' of https://gitee.com/chonggaoxiao/new_excoin_manage into piot
---
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 174 ++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 133 insertions(+), 41 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index 73aff17..02b733b 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -1,7 +1,9 @@
package com.xcong.excoin.modules.member.service.impl;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -9,6 +11,8 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
+import com.xcong.excoin.common.utils.RedisUtils;
+import com.xcong.excoin.common.utils.TRC20ApiUtils;
import com.xcong.excoin.modules.Sms106Send;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
import com.xcong.excoin.modules.member.entity.*;
@@ -71,6 +75,10 @@
private final AgentFriendRelationMapper agentFriendRelationMapper;
private final TdFinancialReordDao tdFinancialReordDao;
+
+ private final RedisUtils redisUtils;
+
+ private final TrcAddressDao trcAddressDao;
@Override
public IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity,
@@ -187,7 +195,11 @@
String firstName = (memberEntitys.getFirstName() == null ? "" : memberEntitys.getFirstName());
String secondName = (memberEntitys.getSecondName() == null ? "" : memberEntitys.getSecondName());
memberEntitys.setRealName(firstName+secondName);
- }
+
+ HashMap<String, Object> coinMap = memberWalletCoinMapper.selectMemberWalletCoinByMemberId(memberEntitys.getId());
+ memberEntitys.setUsdtAmount((BigDecimal) coinMap.get("usdt"));
+ memberEntitys.setRfncAmount((BigDecimal) coinMap.get("rfnc"));
+ }
}
return selectMemberListInPage;
}
@@ -478,50 +490,91 @@
if ("Y".equals(selectById.getIsInside())) {
// 查询算力系统中是否存在该地址
TdCoinWallet tdCoinWallet = memberWalletCoinMapper.selectTdCoinWalletByAddress(address, "USDT");
- if (tdCoinWallet != null) {
- // 更新算力系统中用户钱包余额
- memberWalletCoinMapper.updateTdCoinWalletAvaliable(amount, address);
+ TrcAddressEntity trcAddressEntity = trcAddressDao.selectTrcAddressByAddress(address);
+ // 判断是否为TRC20地址
+ if (trcAddressEntity == null) {
+ if (tdCoinWallet != null) {
+ // 更新算力系统中用户钱包余额
+ memberWalletCoinMapper.updateTdCoinWalletAvaliable(amount, address);
- TdFinancialReord tdFinancialReord = new TdFinancialReord();
- tdFinancialReord.setAmount(amount);
- tdFinancialReord.setCreateTime(new Date());
- tdFinancialReord.setMemId(tdCoinWallet.getMemId());
- tdFinancialReord.setSymbol("USDT");
- tdFinancialReord.setTitle("USDT交易所转账");
- tdFinancialReord.setContent("USDT交易所转账");
- // 插入算力系统中财务记录
- tdFinancialReordDao.insert(tdFinancialReord);
- } else {
- Map<String, Object> columnMap = new HashMap<>();
- columnMap.put("symbol", symbol);
- columnMap.put("address", address);
- // 如果是内部转账 则需要将币加到内部地址
- List<MemberCoinAddressEntity> selectByMap = memberCoinAddressMapper.selectByMap(columnMap);
- if (selectByMap == null || selectByMap.isEmpty()) {
- return new FebsResponse().fail().message("地址有误,请拒绝!");
+ TdFinancialReord tdFinancialReord = new TdFinancialReord();
+ tdFinancialReord.setAmount(amount);
+ tdFinancialReord.setCreateTime(new Date());
+ tdFinancialReord.setMemId(tdCoinWallet.getMemId());
+ tdFinancialReord.setSymbol("USDT");
+ tdFinancialReord.setTitle("USDT交易所转账");
+ tdFinancialReord.setContent("USDT交易所转账");
+ // 插入算力系统中财务记录
+ tdFinancialReordDao.insert(tdFinancialReord);
+ } else {
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("symbol", symbol);
+ columnMap.put("address", address);
+ // 如果是内部转账 则需要将币加到内部地址
+ List<MemberCoinAddressEntity> selectByMap = memberCoinAddressMapper.selectByMap(columnMap);
+ if (selectByMap == null || selectByMap.isEmpty()) {
+ return new FebsResponse().fail().message("地址有误,请拒绝!");
+ }
+ Long aimMemberId = selectByMap.get(0).getMemberId();
+ MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol);
+
+ BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(amount);
+ BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(amount);
+ aimWalletCoin.setTotalBalance(addTotal);
+ aimWalletCoin.setAvailableBalance(addAvailable);
+
+ memberWalletCoinMapper.updateById(aimWalletCoin);
+
+ MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
+ memberAccountMoneyChangeEntity.setContent("收款");
+ memberAccountMoneyChangeEntity.setMemberId(aimMemberId);
+ memberAccountMoneyChangeEntity.setAmount(amount);
+ memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
+ memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol());
+ memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
+ memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy());
+ memberAccountMoneyChangeEntity.setCreateTime(new Date());
+ memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy());
+ memberAccountMoneyChangeEntity.setUpdateTime(new Date());
+ memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity);
}
- Long aimMemberId = selectByMap.get(0).getMemberId();
- MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol);
+ } else {
+ if (trcAddressEntity.getSystemFlag().equals(TrcAddressEntity.SYSTEM_FLAG_SL)) {
+ memberWalletCoinMapper.updateTdCoinWalletTrc20(amount, trcAddressEntity.getMemberId());
- BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(amount);
- BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(amount);
- aimWalletCoin.setTotalBalance(addTotal);
- aimWalletCoin.setAvailableBalance(addAvailable);
+ TdFinancialReord tdFinancialReord = new TdFinancialReord();
+ tdFinancialReord.setAmount(amount);
+ tdFinancialReord.setCreateTime(new Date());
+ tdFinancialReord.setMemId(trcAddressEntity.getMemberId());
+ tdFinancialReord.setSymbol("USDT");
+ tdFinancialReord.setTitle("USDT交易所转账");
+ tdFinancialReord.setContent("USDT交易所转账");
+ // 插入算力系统中财务记录
+ tdFinancialReordDao.insert(tdFinancialReord);
+ } else {
+ Long aimMemberId = trcAddressEntity.getMemberId();
+ MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol);
- memberWalletCoinMapper.updateById(aimWalletCoin);
+ BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(amount);
+ BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(amount);
+ aimWalletCoin.setTotalBalance(addTotal);
+ aimWalletCoin.setAvailableBalance(addAvailable);
- MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
- memberAccountMoneyChangeEntity.setContent("收款");
- memberAccountMoneyChangeEntity.setMemberId(aimMemberId);
- memberAccountMoneyChangeEntity.setAmount(amount);
- memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
- memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol());
- memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
- memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy());
- memberAccountMoneyChangeEntity.setCreateTime(new Date());
- memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy());
- memberAccountMoneyChangeEntity.setUpdateTime(new Date());
- memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity);
+ memberWalletCoinMapper.updateById(aimWalletCoin);
+
+ MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
+ memberAccountMoneyChangeEntity.setContent("收款");
+ memberAccountMoneyChangeEntity.setMemberId(aimMemberId);
+ memberAccountMoneyChangeEntity.setAmount(amount);
+ memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
+ memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol());
+ memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
+ memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy());
+ memberAccountMoneyChangeEntity.setCreateTime(new Date());
+ memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy());
+ memberAccountMoneyChangeEntity.setUpdateTime(new Date());
+ memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity);
+ }
}
}
@@ -536,13 +589,29 @@
selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_Y);
memberCoinWithdrawMapper.updateById(selectById);
+
+ if (!"Y".equals(selectById.getIsInside())) {
+ if ("TRC20".equals(selectById.getLabel())) {
+ Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ log.info("远程调用TRC执行:{}", selectById.getId());
+ String orderNo = generateOrderNo(memberId);
+ TRC20ApiUtils.coinApply(orderNo, memberId.toString(), selectById.getSymbol(), selectById.getAmount().subtract(selectById.getFeeAmount()).toPlainString(), selectById.getAddress());
+ selectById.setTag(orderNo);
+ memberCoinWithdrawMapper.updateById(selectById);
+ }
+ });
+ thread.start();
+ }
+ }
+
MemberEntity memberEntity = memberMapper.selectById(memberId);
String phone = memberEntity.getPhone();
//String email = memberEntity.getEmail();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String time = format.format(new Date()); // 将当前时间袼式化为指定的格式
- log.info("---->{}", phone);
if(StrUtil.isNotBlank(phone)) {
Sms106Send.sendWithdrawalCoinMsg(phone, time);
}
@@ -575,6 +644,29 @@
return new FebsResponse().success();
}
+ public String generateOrderNo(Long mid) {
+ StringBuilder orderNo = new StringBuilder();
+ String date = DateUtil.format(new Date(), "yyyyMMdd");
+ orderNo.append(date);
+ orderNo.append(mid);
+ orderNo.append(RandomUtil.randomNumbers(2));
+
+ Object countObj = redisUtils.get(date);
+ if (countObj == null) {
+ countObj = 0;
+ }
+ int count = (int) countObj;
+ count++;
+ redisUtils.set(date, count, 24 * 60 * 60);
+
+ int size = 4;
+ for (int i = 0; i < size - String.valueOf(count).length(); i++) {
+ orderNo.append("0");
+ }
+ orderNo.append(count);
+ return orderNo.toString();
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public FebsResponse memberWithdrawCoinCancel(@NotNull(message = "{required}") Long id) {
--
Gitblit v1.9.1