From cbd08213b41c55cf630f6ab15befbc637b5b7ba6 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 01 Jun 2020 15:31:46 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin

---
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 1 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 48b8eeb..995d87e 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
@@ -13,6 +13,8 @@
 import com.xcong.excoin.common.response.Result;
 import com.xcong.excoin.common.system.dto.RegisterDto;
 import com.xcong.excoin.common.system.service.CommonService;
+import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
+import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
 import com.xcong.excoin.modules.member.dao.*;
 import com.xcong.excoin.modules.member.entity.*;
 import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto;
@@ -23,6 +25,7 @@
 import com.xcong.excoin.modules.member.parameter.dto.MemberDelPaymethodDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberForgetPwdDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberPaymethodDto;
+import com.xcong.excoin.modules.member.parameter.dto.MemberSubmitCoinApplyDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberUpdatePwdDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberUpdateTradePwdDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberUpdateTradersPwdTimeDto;
@@ -75,6 +78,9 @@
 
     @Resource
     private MemberWalletAgentDao memberWalletAgentDao;
+    
+    @Resource
+    MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
 
     @Resource
     private MemberWalletContractDao memberWalletContractDao;
@@ -105,6 +111,9 @@
     
     @Resource
     private CommonService commonservice;
+    
+    @Resource
+    MemberCoinWithdrawDao memberCoinWithdrawDao;
 
     @Resource
     private MemberWalletContractSimulateDao memberWalletContractSimulateDao;
@@ -790,5 +799,83 @@
 		return Result.ok("success");
 	}
 
-
+	@Override
+	public Result memberSubmitCoinApply(@Valid MemberSubmitCoinApplyDto memberSubmitCoinApplyDto) {
+		//获取用户ID
+		Long memberId = LoginUserUtils.getAppLoginUser().getId();
+		MemberEntity member = memberDao.selectById(memberId);
+                    if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) {
+                        return Result.fail(MessageSourceUtils.getString("member_service_0077"));
+                    }
+                    if (StrUtil.isEmpty(member.getTradePassword())) {
+                        return Result.fail(MessageSourceUtils.getString("member_service_0081"));
+                    }
+                    if(member.getTradePassword() == null) {
+                    	return Result.fail(MessageSourceUtils.getString("member_service_0082"));
+                    }
+                    if (!member.getTradePassword().equals(SecureUtil.md5(memberSubmitCoinApplyDto.getTradePassword()))) {
+                        return Result.fail(MessageSourceUtils.getString("member_service_0082"));
+                    }
+                    
+            		boolean flag = commonservice.verifyCode(memberSubmitCoinApplyDto.getAccount(), memberSubmitCoinApplyDto.getCode());
+                    if (flag) {
+                    	MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, memberSubmitCoinApplyDto.getSymbol());
+                    	BigDecimal availableBalance = walletCoin.getAvailableBalance();
+                    	BigDecimal coinNumber = memberSubmitCoinApplyDto.getCoinNumber().add(memberSubmitCoinApplyDto.getFeeAmount());
+                    	if(availableBalance.compareTo(BigDecimal.ZERO) > 0
+                    			&& availableBalance.compareTo(coinNumber) > 0) {
+                    		//新增提币记录
+                    		MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity();
+                    		memberCoinWithdrawEntity.setAddress(memberSubmitCoinApplyDto.getAddress());
+                    		memberCoinWithdrawEntity.setAmount(coinNumber.setScale(4, BigDecimal.ROUND_DOWN));
+                    		memberCoinWithdrawEntity.setFeeAmount(memberSubmitCoinApplyDto.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN));
+                    		memberCoinWithdrawEntity.setSymbol(memberSubmitCoinApplyDto.getSymbol());
+                    		memberCoinWithdrawEntity.setMemberId(memberId);
+                    		memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_DOING);
+                    		
+                    		Map<String,Object> columnMap = new HashMap<>();
+                    		columnMap.put("symbol", memberSubmitCoinApplyDto.getSymbol());
+                    		columnMap.put("address", memberSubmitCoinApplyDto.getAddress());
+                    		List<MemberCoinAddressEntity> selectByMap = memberCoinAddressDao.selectByMap(columnMap);
+                    		if(CollUtil.isEmpty(selectByMap)) {
+                    			memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_NO);
+                    		}else {
+                    			memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_YES);
+                    		}
+                    		memberCoinWithdrawDao.insert(memberCoinWithdrawEntity);
+                    		BigDecimal subtract = walletCoin.getAvailableBalance().subtract(coinNumber);
+                    		walletCoin.setAvailableBalance(subtract.setScale(4, BigDecimal.ROUND_DOWN));
+                    		BigDecimal add = walletCoin.getFrozenBalance().add(coinNumber);
+                            walletCoin.setFrozenBalance(add.setScale(4, BigDecimal.ROUND_DOWN));
+                            memberWalletCoinDao.updateById(walletCoin);
+                            
+                            MemberAccountMoneyChange accountRecord = new MemberAccountMoneyChange();
+                            accountRecord.setContent("提币");
+                            accountRecord.setMemberId(memberId);
+                            accountRecord.setAmount(memberSubmitCoinApplyDto.getCoinNumber());
+                            accountRecord.setStatus(MemberAccountMoneyChange.STATUS_WAIT_INTEGER);
+                            accountRecord.setSymbol(memberSubmitCoinApplyDto.getSymbol());
+                            accountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
+                            memberAccountMoneyChangeDao.insert(accountRecord);
+                         /**
+                          *  TODO dingtalk
+    						Constant.excutor.execute(new Runnable() {
+    							@Override
+    							public void run() {
+    								DingTalkUtils.sendActionCard(3);
+    							}
+    						});
+    						*/
+                            return Result.ok(MessageSourceUtils.getString("member_service_0086"));
+                    	}else {
+                    		return Result.fail(MessageSourceUtils.getString("order_service_0040"));
+                    	}
+                    	
+                    }else {
+                    	return Result.fail(MessageSourceUtils.getString("member_service_0039"));
+                    }
+        }
+            			
 }
+
+

--
Gitblit v1.9.1