From 30c34fff57ead909cb5922d1791a9561e4f70957 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 13 Jul 2020 11:49:21 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin
---
src/test/java/com/xcong/excoin/ReturnMoneyTest.java | 56 +++++++++++++++++++++++++++
src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java | 7 ++-
src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressEntity.java | 2
src/main/java/com/xcong/excoin/modules/member/dao/AgentReturnDao.java | 7 +++
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 3 +
src/main/java/com/xcong/excoin/modules/member/entity/AgentReturnEntity.java | 10 +++++
src/main/resources/mapper/member/MemberCoinAddressDao.xml | 2
src/main/resources/mapper/member/AgentReturnDao.xml | 13 ++++++
src/main/resources/application.yml | 6 +-
9 files changed, 96 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
index 2837bdf..c96299f 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
@@ -180,13 +180,14 @@
BigDecimal closingPrice = price.multiply(amount).multiply(tradeSetting.getCoinFeeRatio());
//总费用 = 成交价*数量+手续费
BigDecimal totalPayPrice = price.multiply(amount).add(closingPrice);
+ BigDecimal totalPayPricCoin = nowPrice.multiply(amount).add(closingPrice);
String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
MemberWalletCoinEntity walletCoinUsdt = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
if (OrderCoinsEntity.ORDERTYPE_BUY.equals(type)) {
//买入,所需总费用跟用户USDT金额进行比较
BigDecimal availableBalance = walletCoinUsdt.getAvailableBalance();
- if (totalPayPrice.compareTo(availableBalance) > 0) {
+ if (totalPayPrice.compareTo(availableBalance) > 0 || totalPayPricCoin.compareTo(availableBalance) > 0) {
return Result.fail(MessageSourceUtils.getString("order_service_0010"));
}
} else {
@@ -252,7 +253,7 @@
totalPayPrice = nowPrice.multiply(amount).add(closingPrice);
price = nowPrice;
}
- order.setDealPrice(price);
+ order.setDealPrice(nowPrice);
order.setDealAmount(totalPayPrice);
order.setOrderStatus(OrderCoinsEntity.ORDERSTATUS_DONE);
order.setTradeType(tradeType);
@@ -268,7 +269,7 @@
detail.setSymbol(symbol);
detail.setSymbolCnt(amount);
detail.setEntrustPrice(nowPriceinBigDecimal);
- detail.setDealPrice(price);
+ detail.setDealPrice(nowPrice);
detail.setDealAmount(totalPayPrice);
detail.setFeeAmount(closingPrice);
detail.setOrderStatus(OrderCoinsDealEntity.ORDERSTATUS_DONE);
diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/AgentReturnDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/AgentReturnDao.java
index 9344717..d20792d 100644
--- a/src/main/java/com/xcong/excoin/modules/member/dao/AgentReturnDao.java
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/AgentReturnDao.java
@@ -2,9 +2,16 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xcong.excoin.modules.member.entity.AgentReturnEntity;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* @author helius
*/
public interface AgentReturnDao extends BaseMapper<AgentReturnEntity> {
+
+ List<AgentReturnEntity> selectAllNeedMoneyReturn();
+
+ int updateAgentReturnStatusByRefererId(@Param("isReturn") int isReturn, @Param("refererId") Long refererId);
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/AgentReturnEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/AgentReturnEntity.java
index 468a910..4cefe1a 100644
--- a/src/main/java/com/xcong/excoin/modules/member/entity/AgentReturnEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/AgentReturnEntity.java
@@ -29,6 +29,16 @@
*/
public static final int ORDER_TYPE_HOLD = 3;
+ /**
+ * 是否已返佣 0-否
+ */
+ public static final int IS_RETURN_N = 0;
+
+ /**
+ * 是否已返佣 1-是
+ */
+ public static final int IS_RETURN_Y = 1;
+
private Long memberId;
private Long orderId;
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressEntity.java
index 80dd3ec..853703c 100644
--- a/src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressEntity.java
@@ -37,7 +37,7 @@
*/
private String isBiyict;
public static final String IS_BIYICT_YES = "1";
- public static final String IS_BIYICT_NO = "0";
+ public static final String IS_BIYICT_NO = "2";
/**
*
*/
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 795bc5c..96cbf6d 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
@@ -684,7 +684,7 @@
MemberCoinAddressEntity memberCoinAddressEntity = new MemberCoinAddressEntity();
memberCoinAddressEntity.setAddress(address);
memberCoinAddressEntity.setMemberId(memberId);
- memberCoinAddressEntity.setIsBiyict(isBiyict);
+ memberCoinAddressEntity.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_NO);
memberCoinAddressEntity.setSymbolscoinId(symbolscoinId);
memberCoinAddressEntity.setLabel(remark);
memberCoinAddressEntity.setSymbol(platformSymbolsCoinEntity.getName());
@@ -900,6 +900,7 @@
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("symbol", memberSubmitCoinApplyDto.getSymbol());
columnMap.put("address", memberSubmitCoinApplyDto.getAddress());
+ columnMap.put("is_biyict", MemberCoinAddressEntity.IS_BIYICT_YES);
List<MemberCoinAddressEntity> selectByMap = memberCoinAddressDao.selectByMap(columnMap);
if (CollUtil.isEmpty(selectByMap)) {
memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_NO);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5ff6c87..7e0711d 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -7,9 +7,9 @@
profiles:
active: dev
datasource:
- url: jdbc:mysql://120.27.238.55:3306/kss_framework?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
- username: ct_test
- password: 123456
+ url: jdbc:mysql://rm-bp151tw8er79ig9kb5o.mysql.rds.aliyuncs.com:3306/db_biue?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
+ username: ctcoin_data
+ password: ctcoin_123
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
diff --git a/src/main/resources/mapper/member/AgentReturnDao.xml b/src/main/resources/mapper/member/AgentReturnDao.xml
index 3c7e7e8..0c7d266 100644
--- a/src/main/resources/mapper/member/AgentReturnDao.xml
+++ b/src/main/resources/mapper/member/AgentReturnDao.xml
@@ -2,4 +2,17 @@
<!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.dao.AgentReturnDao">
+ <select id="selectAllNeedMoneyReturn" resultType="com.xcong.excoin.modules.member.entity.AgentReturnEntity">
+ select
+ referer_id,
+ sum(return_amount) return_amount
+ from agent_return where is_return=0
+ group by referer_id
+ </select>
+
+ <update id="updateAgentReturnStatusByRefererId">
+ update agent_return
+ set is_return=#{isReturn}
+ where referer_id=#{refererId}
+ </update>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/member/MemberCoinAddressDao.xml b/src/main/resources/mapper/member/MemberCoinAddressDao.xml
index 1c45e9c..4a3237a 100644
--- a/src/main/resources/mapper/member/MemberCoinAddressDao.xml
+++ b/src/main/resources/mapper/member/MemberCoinAddressDao.xml
@@ -40,7 +40,7 @@
<select id="selectCoinAddressListByMap" resultType="com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity">
select * from member_coin_address
<where>
- is_biyict = 1
+ is_biyict = 2
and symbolscoin_id IS NOT NULL
<if test="memberId != null and memberId != ''">
and member_id = #{memberId}
diff --git a/src/test/java/com/xcong/excoin/ReturnMoneyTest.java b/src/test/java/com/xcong/excoin/ReturnMoneyTest.java
index 54fc295..e4eeab0 100644
--- a/src/test/java/com/xcong/excoin/ReturnMoneyTest.java
+++ b/src/test/java/com/xcong/excoin/ReturnMoneyTest.java
@@ -1,17 +1,27 @@
package com.xcong.excoin;
+import cn.hutool.core.collection.CollUtil;
+import jnr.ffi.annotations.IgnoreError;
+
+import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
+import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
import com.xcong.excoin.modules.contract.dao.ContractOrderDao;
import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
import com.xcong.excoin.modules.contract.service.impl.OrderWebsocketServiceImpl;
+import com.xcong.excoin.modules.member.dao.AgentReturnDao;
+import com.xcong.excoin.modules.member.dao.MemberWalletAgentDao;
import com.xcong.excoin.modules.member.entity.AgentReturnEntity;
+import com.xcong.excoin.modules.member.entity.MemberWalletAgentEntity;
import com.xcong.excoin.utils.SpringContextHolder;
import com.xcong.excoin.utils.ThreadPoolUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.util.List;
/**
* @author wzy
@@ -23,11 +33,55 @@
@Resource
private ContractOrderDao contractOrderDao;
+ @Resource
+ private AgentReturnDao agentReturnDao;
+ @Resource
+ private MemberWalletAgentDao memberWalletAgentDao;
+ @Resource
+ private MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
- @Test
+ /*@Test
public void returnTest() {
ContractOrderEntity entity = contractOrderDao.selectById(667L);
OrderWebsocketServiceImpl orderWebsocketService = SpringContextHolder.getBean(OrderWebsocketServiceImpl.class);
orderWebsocketService.calYj(19L, new BigDecimal(4.18004236), entity, AgentReturnEntity.ORDER_TYPE_OPEN);
+ }*/
+
+
+ @Test
+ @Transactional(rollbackFor = Exception.class)
+ public void moneyReturnTest() {
+ List<AgentReturnEntity> list = agentReturnDao.selectAllNeedMoneyReturn();
+ log.info("返佣条数:{}", list.size());
+ if (CollUtil.isNotEmpty(list)) {
+ for (AgentReturnEntity agentReturn : list) {
+ BigDecimal needReturn = agentReturn.getReturnAmount();
+ Long refererId = agentReturn.getRefererId();
+ MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(refererId, "USDT");
+ if (walletAgent == null) {
+ continue;
+ }
+
+ log.info("用户ID:{}, 当前余额:{},总金额:{}, 返佣金额:{}", refererId, walletAgent.getAvailableBalance().toPlainString(), walletAgent.getTotalBalance().toPlainString(), needReturn);
+ walletAgent.setAvailableBalance(walletAgent.getAvailableBalance().add(needReturn));
+ walletAgent.setTotalBalance(walletAgent.getTotalBalance().add(needReturn));
+
+
+ MemberAccountMoneyChange moneyChange = new MemberAccountMoneyChange();
+ moneyChange.setAmount(needReturn);
+ moneyChange.setContent("佣金到账");
+ moneyChange.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT);
+ moneyChange.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
+ moneyChange.setMemberId(refererId);
+ moneyChange.setSymbol("USDT");
+
+// // 更新代理钱包金额
+// memberWalletAgentDao.updateById(walletAgent);
+// // 更新返佣明细中状态
+// agentReturnDao.updateAgentReturnStatusByRefererId(AgentReturnEntity.IS_RETURN_Y, refererId);
+// // 插入财务流水记录
+// memberAccountMoneyChangeDao.insert(moneyChange);
+ }
+ }
}
}
--
Gitblit v1.9.1