From 70ad97e3d7047adba6a1a136d4d6b7cb7d697b28 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Sat, 05 Jun 2021 18:40:09 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java | 4 ++
src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java | 4 ++
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java | 1
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 2 +
src/main/resources/mapper/member/MemberDao.xml | 9 ++++
src/main/resources/mapper/otc/OtcOrderDao.xml | 11 +++++
src/test/java/com/xcong/excoin/OtcTest.java | 10 +++++
src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java | 51 +++++++++++++++++++++++++
src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrder.java | 2 +
src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java | 1
10 files changed, 94 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java b/src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java
index ad95e15..2310b26 100644
--- a/src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java
+++ b/src/main/java/com/xcong/excoin/modules/member/dao/MemberDao.java
@@ -23,4 +23,5 @@
public List<MemberEntity> selectAllMember();
+ List<MemberEntity> selectMemberListByReferer(@Param("list") List<String> list);
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java
index 17d4448..8346487 100644
--- a/src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberSettingEntity.java
@@ -35,4 +35,8 @@
*/
private Integer messageReminder;
+ private BigDecimal otcReturnFirst;
+
+ private BigDecimal otcReturnSecond;
+
}
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 ee0f5f4..0e42a48 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
@@ -180,6 +180,8 @@
memberSettingEntity.setClosingSpread(BigDecimal.valueOf(2));
memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0085));
memberSettingEntity.setMemberId(member.getId());
+ memberSettingEntity.setOtcReturnFirst(BigDecimal.valueOf(0.0002));
+ memberSettingEntity.setOtcReturnFirst(BigDecimal.valueOf(0.0001));
memberSettingDao.insert(memberSettingEntity);
String inviteId = ShareCodeUtil.toSerialCode(member.getId());
diff --git a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
index 99ddf7b..a71c727 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
@@ -39,4 +39,8 @@
List<ChatOrderVo> selectByMemberIdAndTargetId(@Param("memberId")Long memberId, @Param("targetId")long targetId);
List<ChatOrderVo> selectOneByMemberIdAndTargetId(@Param("memberId")Long memberId, @Param("targetId")long targetId);
+
+ int updateIsReturnByOrderNo(@Param("isReturn") Integer isReturn, @Param("orderNo") String orderNo);
+
+ OtcOrder selectOrderUnEntrust(@Param("orderNo") String orderNo);
}
diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrder.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrder.java
index 0a7ee2f..dade3e0 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrder.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrder.java
@@ -91,4 +91,6 @@
private String cardName;
private String payType;
+
+ private Integer isReturn;
}
diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
index e925174..6d93c0f 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
@@ -320,6 +320,7 @@
this.baseMapper.updateOrderStatusByOrderNo(OtcOrder.STATUS_FINISH, null, otcOrder.getOrderNo());
otcProducter.sendMarketBussinessMsg(otcOrder.getEntrustOrderId(), OtcOrder.STATUS_FINISH);
+ otcProducter.sendOrderReturn(buyOrder.getOrderNo());
}
@Override
diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java
index 5ab02e6..1b615a3 100644
--- a/src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java
+++ b/src/main/java/com/xcong/excoin/rabbit/consumer/OtcConsumer.java
@@ -1,21 +1,32 @@
package com.xcong.excoin.rabbit.consumer;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.configurations.RabbitMqConfig;
+import com.xcong.excoin.modules.member.dao.MemberDao;
+import com.xcong.excoin.modules.member.dao.MemberSettingDao;
+import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao;
+import com.xcong.excoin.modules.member.entity.MemberEntity;
+import com.xcong.excoin.modules.member.entity.MemberSettingEntity;
+import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
import com.xcong.excoin.modules.otc.dao.OtcEntrustOrderDao;
import com.xcong.excoin.modules.otc.dao.OtcMarketBussinessDao;
import com.xcong.excoin.modules.otc.dao.OtcOrderDao;
import com.xcong.excoin.modules.otc.entity.OtcEntrustOrder;
import com.xcong.excoin.modules.otc.entity.OtcMarketBussiness;
import com.xcong.excoin.modules.otc.entity.OtcOrder;
+import com.xcong.excoin.utils.LogRecordUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
+import java.util.List;
import java.util.Map;
@Slf4j
@@ -31,6 +42,15 @@
@Autowired
private OtcOrderDao otcOrderDao;
+
+ @Autowired
+ private MemberDao memberDao;
+
+ @Autowired
+ private MemberSettingDao memberSettingDao;
+
+ @Autowired
+ private MemberWalletCoinDao memberWalletCoinDao;
@RabbitListener(queues = RabbitMqConfig.QUEUE_MARKET_BUSSINESS)
public void marketBussiness(String content) {
@@ -89,11 +109,40 @@
@RabbitListener(queues = RabbitMqConfig.QUEUE_ORDER_RETURN)
+ @Transactional(rollbackFor = Exception.class)
public void orderReturn(String content) {
log.info("收到返佣消息:{}", content);
- OtcOrder order = otcOrderDao.selectOrderByOrderNoAndType(content, OtcEntrustOrder.ORDER_TYPE_B);
+ OtcOrder order = otcOrderDao.selectOrderUnEntrust(content);
+ MemberEntity member = memberDao.selectById(order.getMemberId());
+ List<String> refererIds = StrUtil.split(member.getRefererIds(), ',');
+ List<MemberEntity> parentMembers = memberDao.selectMemberListByReferer(refererIds);
+ if (CollUtil.isNotEmpty(parentMembers)) {
+ int isFirst = 1;
+ for (MemberEntity parent : parentMembers) {
+ MemberSettingEntity memberSetting = memberSettingDao.selectMemberSettingByMemberId(parent.getId());
+
+ BigDecimal returnRatio = BigDecimal.ZERO;
+ if (isFirst == 1) {
+ returnRatio = memberSetting.getOtcReturnFirst();
+ } else {
+ returnRatio = memberSetting.getOtcReturnSecond();
+ }
+
+ BigDecimal returnAmount = order.getCoinAmount().multiply(returnRatio);
+
+ MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(parent.getId(), "USDT");
+ memberWalletCoinDao.updateBlockBalance(wallet.getId(), returnAmount, BigDecimal.ZERO, 0);
+
+ LogRecordUtils.insertMemberAccountMoneyChange(parent.getId(),"订单返利:" + content, returnAmount, "USDT", 1, 1);
+ isFirst = 0;
+ }
+ }
+
+ order.setIsReturn(1);
+ otcOrderDao.updateIsReturnByOrderNo(1, content);
}
+
}
diff --git a/src/main/resources/mapper/member/MemberDao.xml b/src/main/resources/mapper/member/MemberDao.xml
index 27fb5e7..1d46325 100644
--- a/src/main/resources/mapper/member/MemberDao.xml
+++ b/src/main/resources/mapper/member/MemberDao.xml
@@ -49,4 +49,13 @@
<select id="selectAllMember" resultType="com.xcong.excoin.modules.member.entity.MemberEntity">
select * from member
</select>
+
+ <select id="selectMemberListByReferer" resultType="com.xcong.excoin.modules.member.entity.MemberEntity">
+ select * from member
+ where invite_id!='rxadr3' and invite_id in
+ <foreach collection = "list" item = "item" separator="," open = "(" close = ")" >
+ #{item}
+ </foreach >
+ order by id desc limit 2
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcOrderDao.xml b/src/main/resources/mapper/otc/OtcOrderDao.xml
index abc90d5..4928e5b 100644
--- a/src/main/resources/mapper/otc/OtcOrderDao.xml
+++ b/src/main/resources/mapper/otc/OtcOrderDao.xml
@@ -139,4 +139,15 @@
</select>
+ <update id="updateIsReturnByOrderNo">
+ update otc_order
+ set is_return=#{isReturn}
+ where order_no=#{orderNo}
+ </update>
+
+ <select id="selectOrderUnEntrust" resultType="com.xcong.excoin.modules.otc.entity.OtcOrder">
+ select * from otc_order
+ where order_no=#{orderNo} and member_id!=entrust_member_id
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/test/java/com/xcong/excoin/OtcTest.java b/src/test/java/com/xcong/excoin/OtcTest.java
index c939525..2f2a67e 100644
--- a/src/test/java/com/xcong/excoin/OtcTest.java
+++ b/src/test/java/com/xcong/excoin/OtcTest.java
@@ -9,6 +9,7 @@
import com.xcong.excoin.modules.otc.dao.OtcMarketBussinessDao;
import com.xcong.excoin.modules.otc.entity.OtcMarketBussiness;
import com.xcong.excoin.quartz.job.OtcOrderJob;
+import com.xcong.excoin.rabbit.consumer.OtcConsumer;
import com.xcong.excoin.rabbit.producer.OtcProducter;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
@@ -110,4 +111,13 @@
System.out.println(one.multiply(two));
}
+
+ @Autowired
+ private OtcConsumer otcConsumer;
+
+ @Test
+ public void returnMoneyTest() {
+// otcConsumer.orderReturn("20210605446780002");
+ otcProducter.sendOrderReturn("20210605446780002");
+ }
}
--
Gitblit v1.9.1