From ac5051ef7aa0ea4410d32760a200e2dc31ef870e Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 19 Nov 2020 16:55:39 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/member/mapper/TrcAddressDao.java | 18 ++++
src/main/resources/mapper/modules/TrcAddressDao.xml | 16 ++++
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 148 ++++++++++++++++++++++++-------------
src/main/resources/mapper/modules/MemberWalletCoinMapper.xml | 6 +
src/main/java/com/xcong/excoin/modules/member/entity/TrcAddressEntity.java | 30 +++++++
src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java | 1
src/main/resources/application-dev.yml | 14 +-
7 files changed, 174 insertions(+), 59 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/TrcAddressEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/TrcAddressEntity.java
new file mode 100644
index 0000000..b351297
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/TrcAddressEntity.java
@@ -0,0 +1,30 @@
+package com.xcong.excoin.modules.member.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2020-11-09
+ **/
+@Data
+@TableName("trc_address")
+public class TrcAddressEntity {
+
+ public static final Integer SYSTEM_FLAG_YJS = 1;
+ public static final Integer SYSTEM_FLAG_SL = 2;
+
+
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ private String address;
+
+ private int isUse;
+
+ private Long memberId;
+
+ private Integer systemFlag;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java
index 88c78cd..d994ac7 100644
--- a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java
@@ -16,6 +16,7 @@
TdCoinWallet selectTdCoinWalletByAddress(@Param("address") String address, @Param("symbol") String symbol);
int updateTdCoinWalletAvaliable(@Param("money") BigDecimal money, @Param("address") String address);
+ int updateTdCoinWalletTrc20(@Param("money") BigDecimal money, @Param("memberId") Long memberId);
HashMap<String, Object> selectMemberWalletCoinByMemberId(@Param("memberId") Long memberId);
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/TrcAddressDao.java b/src/main/java/com/xcong/excoin/modules/member/mapper/TrcAddressDao.java
new file mode 100644
index 0000000..0f27fe6
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/mapper/TrcAddressDao.java
@@ -0,0 +1,18 @@
+package com.xcong.excoin.modules.member.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.member.entity.TrcAddressEntity;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author wzy
+ * @date 2020-11-09
+ **/
+public interface TrcAddressDao extends BaseMapper<TrcAddressEntity> {
+
+ TrcAddressEntity selectSrcAddressByMemberId(@Param("memberId") Long memberId);
+
+ TrcAddressEntity selectOneSrcAddressUnUse();
+
+ TrcAddressEntity selectTrcAddressByAddress(@Param("address") String address);
+}
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 edf2822..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
@@ -77,6 +77,8 @@
private final TdFinancialReordDao tdFinancialReordDao;
private final RedisUtils redisUtils;
+
+ private final TrcAddressDao trcAddressDao;
@Override
public IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity,
@@ -488,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);
+ }
}
}
@@ -547,18 +590,20 @@
selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_Y);
memberCoinWithdrawMapper.updateById(selectById);
- 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().toPlainString(), selectById.getAddress());
- selectById.setTag(orderNo);
- memberCoinWithdrawMapper.updateById(selectById);
- }
- });
- thread.start();
+ 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);
@@ -567,7 +612,6 @@
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);
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 70f014a..f2ad66d 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -18,17 +18,17 @@
username: ct_test
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://120.27.238.55:3306/kss_framework?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
+ url: jdbc:mysql://120.27.238.55:3306/pilot_test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
redis:
# Redis数据库索引(默认为 0)
- database: 1
- # Redis服务器地址
- host: 47.114.114.219
- # Redis服务器连接端口
+ database: 0
+ ## Redis服务器地址
+ host: 180.215.221.145
+ ## Redis服务器连接端口
port: 6379
- # Redis 密码
- password: biyi123
+ ## Redis服务器连接密码(默认为空)
+ password: pilot123!@#
lettuce:
pool:
# 连接池中的最小空闲连接
diff --git a/src/main/resources/mapper/modules/MemberWalletCoinMapper.xml b/src/main/resources/mapper/modules/MemberWalletCoinMapper.xml
index 24d9634..def3d3d 100644
--- a/src/main/resources/mapper/modules/MemberWalletCoinMapper.xml
+++ b/src/main/resources/mapper/modules/MemberWalletCoinMapper.xml
@@ -18,6 +18,12 @@
where address=#{address}
</update>
+ <update id="updateTdCoinWalletTrc20">
+ update td_coin_wallet
+ set available_balance=available_balance+#{money}
+ where mem_id=#{memberId} and symbol ='USDT'
+ </update>
+
<select id="selectMemberWalletCoinByMemberId" resultType="java.util.HashMap">
select
member_id,
diff --git a/src/main/resources/mapper/modules/TrcAddressDao.xml b/src/main/resources/mapper/modules/TrcAddressDao.xml
new file mode 100644
index 0000000..2e7663f
--- /dev/null
+++ b/src/main/resources/mapper/modules/TrcAddressDao.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.xcong.excoin.modules.member.mapper.TrcAddressDao">
+
+ <select id="selectSrcAddressByMemberId" resultType="com.xcong.excoin.modules.member.entity.TrcAddressEntity">
+ select * from trc_address where member_id=#{memberId} and is_use=1 and system_flag = 1
+ </select>
+
+ <select id="selectOneSrcAddressUnUse" resultType="com.xcong.excoin.modules.member.entity.TrcAddressEntity">
+ select * from trc_address where is_use=2 limit 1
+ </select>
+
+ <select id="selectTrcAddressByAddress" resultType="com.xcong.excoin.modules.member.entity.TrcAddressEntity">
+ select * from trc_address where address = #{address}
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.1