From de9490f5a8a29c79968242461440537949c02244 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Fri, 30 Oct 2020 20:41:41 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java             |    7 ++
 src/main/java/com/xcong/excoin/modules/blackchain/service/EthService.java          |    1 
 src/test/java/com/xcong/excoin/TradeTest.java                                      |   35 +----------
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java  |    7 ++
 src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java                 |   22 ++++++-
 src/main/java/com/xcong/excoin/utils/mail/Sms106Send.java                          |    6 +
 src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java |    8 ++
 src/main/resources/mapper/walletCoinOrder/OrderCoinsDao.xml                        |   27 +++++++-
 src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java                    |    6 ++
 src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java      |    2 
 10 files changed, 76 insertions(+), 45 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/blackchain/service/EthService.java b/src/main/java/com/xcong/excoin/modules/blackchain/service/EthService.java
index 9eceda7..a0da771 100644
--- a/src/main/java/com/xcong/excoin/modules/blackchain/service/EthService.java
+++ b/src/main/java/com/xcong/excoin/modules/blackchain/service/EthService.java
@@ -55,6 +55,7 @@
 	 * 服务器地址
 	 */
 	//private static final String ETH_UTL = "https://mainnet.infura.io/v3/882c66ebcfc141abbea22b948fa44321";
+	//private static final String ETH_UTL = "http://120.55.86.146:8545";
 	private static final String ETH_UTL = "http://114.55.250.231:8545";
 
 	public EthService() {
diff --git a/src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java b/src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java
index cbc4459..b2a3813 100644
--- a/src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java
+++ b/src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java
@@ -100,7 +100,7 @@
 //                            memberCoinChargeDao.updateById(coinCharge);
 //                        }
                     } else {
-                        String hash = ethService.ethSend(TOTAL_PRIVATE, TOTAL_ADDRESS, address, ETH_FEE,gasPrice);
+                        //String hash = ethService.ethSend(TOTAL_PRIVATE, TOTAL_ADDRESS, address, ETH_FEE,gasPrice);
                         //log.info("转手续费:{}", hash);
                     }
                 }
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 c819b5f..60fc9f5 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
@@ -553,6 +553,13 @@
         if(CollectionUtils.isNotEmpty(memberCoinChargeEntities)){
             return;
         }
+        // 校验这个交易是否成功
+        EthService ethService  = new EthService();
+        boolean b = ethService.checkTransferResult(hash);
+        if(!b){
+            log.info("#USDT假充值:{}#", hash);
+            return;
+        }
         MemberCoinAddressEntity coinAddressEntity = memberCoinAddressDao.selectCoinAddressByAddressAndSymbol(address, CoinTypeEnum.USDT.toString());
         if (coinAddressEntity == null) {
             return;
@@ -614,4 +621,5 @@
         memberCoinChargeDao.insert(memberCoinChargeEntity);
         return orderNo;
     }
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
index aaa7e5e..c22bc65 100644
--- a/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
@@ -149,7 +149,12 @@
      * 是否设置预估强平价系数 0-否1-是
      */
     private Integer isForce;
-    
+
+    /**
+     *  shifou xianzhi
+     */
+    private Integer isTrader;
+
     /**
      * 滑点
      */
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 1834652..7e350ff 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
@@ -469,7 +469,8 @@
     @Transactional
     public Result memberTradersPwd(@Valid MemberForgetPwdDto memberForgetPwdDto) {
         //获取用户ID
-        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        MemberEntity memberEntity = memberDao.selectById(memberId);
 
         String code = memberForgetPwdDto.getCode();
         String password = memberForgetPwdDto.getPassword();
@@ -883,6 +884,10 @@
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity member = memberDao.selectById(memberId);
+        // 判断是否限制
+        if(1 == member.getIsTrader()){
+            return Result.fail("此账号有财务问题,需联系客服");
+        }
         if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) {
             return Result.fail(MessageSourceUtils.getString("member_service_0077"));
         }
diff --git a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java
index 6043c7e..a2c2007 100644
--- a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java
+++ b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java
@@ -339,10 +339,24 @@
         }
         // 如果开盘价为0,则设置为前一个价格
         if(kLine.getOpen().compareTo(BigDecimal.ZERO) == 0) {
-        	kLine.setOpen(coinThumb.getClose());
-        	kLine.setClose(coinThumb.getClose());
-        	kLine.setLow(coinThumb.getClose());
-        	kLine.setHigh(coinThumb.getClose());
+            // 查询前一根K线 TODO
+            String key = "KINE_" + symbol + "/USDT_" + period;
+            Object data = redisUtils.get(key);
+            List list = new ArrayList();
+            if (data != null) {
+                list = (List) data;
+                Candlestick o = (Candlestick)list.get(list.size() - 1);
+                kLine.setOpen(o.getClose());
+                kLine.setClose(o.getClose());
+                kLine.setLow(o.getClose());
+                kLine.setHigh(o.getClose());
+            }else{
+                kLine.setOpen(coinThumb.getClose());
+                kLine.setClose(coinThumb.getClose());
+                kLine.setLow(coinThumb.getClose());
+                kLine.setHigh(coinThumb.getClose());
+            }
+
         }
         //logger.info("generate " + range + rangeUnit + " kline in {},data={}", df.format(new Date(kLine.getTimestamp())), JSON.toJSONString(kLine));
         service.saveKLine(symbol,period, kLine);
diff --git a/src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java b/src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java
index 2093e84..e5ed3a4 100644
--- a/src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java
+++ b/src/main/java/com/xcong/excoin/quartz/job/CoinTradeInitJob.java
@@ -87,6 +87,12 @@
         List<OrderCoinsEntity> tradingOrders = new ArrayList<>();
         List<OrderCoinsEntity> completedOrders = new ArrayList<>();
         orders.forEach(order -> {
+            if(order.getDealCnt()==null){
+                order.setDealCnt(BigDecimal.ZERO);
+            }
+            if(order.getDealAmount()==null){
+                order.setDealAmount(BigDecimal.ZERO);
+            }
             tradingOrders.add(order);
         });
         try {
diff --git a/src/main/java/com/xcong/excoin/utils/mail/Sms106Send.java b/src/main/java/com/xcong/excoin/utils/mail/Sms106Send.java
index 71d8497..62549e3 100644
--- a/src/main/java/com/xcong/excoin/utils/mail/Sms106Send.java
+++ b/src/main/java/com/xcong/excoin/utils/mail/Sms106Send.java
@@ -39,13 +39,15 @@
     public static boolean sendRechargeMsg(String phone, String time, String orderNo) {
         String msg = "尊敬的用户,您的帐号于{}有一笔成功充值订单,订单编号{}";
         String content = StrUtil.format(msg, time, orderNo);
-        return request(phone, content, "充值");
+        return true;
+        //return request(phone, content, "充值");
     }
 
     public static boolean sendWithdrawalMsg(String phone, String time, String orderNo) {
         String msg = "尊敬的用户,您的帐号于{}有一笔成功提现订单,订单编号为{}";
         String content = StrUtil.format(msg, time, orderNo);
-        return request(phone, content, "提现");
+        return true;
+        //return request(phone, content, "提现");
     }
 
     private static boolean request(String phone, String content, String tagName) {
diff --git a/src/main/resources/mapper/walletCoinOrder/OrderCoinsDao.xml b/src/main/resources/mapper/walletCoinOrder/OrderCoinsDao.xml
index b443d3d..086de5a 100644
--- a/src/main/resources/mapper/walletCoinOrder/OrderCoinsDao.xml
+++ b/src/main/resources/mapper/walletCoinOrder/OrderCoinsDao.xml
@@ -35,11 +35,30 @@
 	</select>
 
 	<select id="selectCoinOrderOnTrade" resultType="com.xcong.excoin.modules.coin.entity.OrderCoinsEntity">
-		select *
-		from coins_order
-		where order_status=1
+		select a.id,
+		a.deal_price,
+		a.entrust_amount,
+		a.fee_amount,
+		a.entrust_cnt,
+		a.mark_price,
+		a.member_id,
+		a.order_no,
+		a.order_status,
+		a.order_type,
+		a.symbol,
+		a.trade_type,
+		a.version,
+		a.create_by,
+		a.create_time,
+		a.update_by,
+		a.update_time,
+		a.entrust_price,
+		(select sum(symbol_cnt) from coins_order_deal where order_id = a.id) as deal_cnt,
+		(select sum(deal_amount) from coins_order_deal where order_id = a.id) as deal_amount
+		from coins_order a
+		where a.order_status=1
 		<if test="list != null">
-			and symbol in
+			and a.symbol in
 			<foreach collection="list" separator="," item="item" open="(" close=")">
 				#{item}
 			</foreach>
diff --git a/src/test/java/com/xcong/excoin/TradeTest.java b/src/test/java/com/xcong/excoin/TradeTest.java
index c941e4b..b0b10a7 100644
--- a/src/test/java/com/xcong/excoin/TradeTest.java
+++ b/src/test/java/com/xcong/excoin/TradeTest.java
@@ -1,5 +1,6 @@
 package com.xcong.excoin;
 
+import cn.hutool.crypto.SecureUtil;
 import com.xcong.excoin.modules.coin.dao.OrderCoinsDao;
 import com.xcong.excoin.modules.coin.entity.OrderCoinsEntity;
 import com.xcong.excoin.modules.coin.service.OrderCoinService;
@@ -35,37 +36,7 @@
     }
 
     public static void main(String[] args) throws InterruptedException {
-        // 测试两个地方
-        List<String> list  = new ArrayList<>();
-        list.add("1");
-        list.add("2");
-        list.add("3");
-        list.add("4");
-        // 开一个线程
-        Thread thread = new Thread(new Runnable() {
-            @SneakyThrows
-            @Override
-            public void run() {
-                Thread.sleep(1000);
-                synchronized (list){
-                    Iterator<String> iterator = list.iterator();
-                    while (iterator.hasNext()){
-                        System.out.println("线程里"+iterator.next());
-                        iterator.remove();
-                    }
-                }
-
-            }
-        });
-        thread.start();
-        synchronized (list){
-            Iterator<String> iterator = list.iterator();
-            while (iterator.hasNext()){
-                Thread.sleep(1000);
-                System.out.println(iterator.next());
-            }
-        }
-
-        //
+        String s = SecureUtil.md5("330021");
+        System.out.println(s);
     }
 }

--
Gitblit v1.9.1