From c356816bb9969fc5cde71b670461d9ddf7534e8f Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Wed, 03 Jun 2020 00:46:59 +0800
Subject: [PATCH] add contract money info interface

---
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 110 insertions(+), 6 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 255a52e..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,8 +25,10 @@
 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;
 import com.xcong.excoin.modules.member.parameter.vo.*;
 import com.xcong.excoin.modules.member.parameter.vo.MemberAuthenticationInfoVo;
 import com.xcong.excoin.modules.member.parameter.vo.MemberAvivableCoinInfoVo;
@@ -74,6 +78,9 @@
 
     @Resource
     private MemberWalletAgentDao memberWalletAgentDao;
+    
+    @Resource
+    MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
 
     @Resource
     private MemberWalletContractDao memberWalletContractDao;
@@ -104,6 +111,9 @@
     
     @Resource
     private CommonService commonservice;
+    
+    @Resource
+    MemberCoinWithdrawDao memberCoinWithdrawDao;
 
     @Resource
     private MemberWalletContractSimulateDao memberWalletContractSimulateDao;
@@ -697,23 +707,28 @@
 		MemberPersonCenterInfoVo memberPersonCenterInfoVo = new MemberPersonCenterInfoVo();
 		if(StrUtil.isNotEmpty(member.getPhone())) {
 			memberPersonCenterInfoVo.setPhone(1);
+		}else {
+			memberPersonCenterInfoVo.setPhone(0);
 		}
-		memberPersonCenterInfoVo.setPhone(0);
 
 		if(StrUtil.isNotEmpty(member.getEmail())) {
 			memberPersonCenterInfoVo.setEmail(1);
+		}else {
+			memberPersonCenterInfoVo.setEmail(0);
 		}
-		memberPersonCenterInfoVo.setEmail(0);
 
 		if(StrUtil.isNotEmpty(member.getTradePassword())) {
 			memberPersonCenterInfoVo.setTradePassword(1);
+		}else {
+			memberPersonCenterInfoVo.setTradePassword(0);
 		}
-		memberPersonCenterInfoVo.setTradePassword(0);
-
-		if(StrUtil.isNotEmpty(member.getTradeAgingSetting().toString())) {
+		
+		Integer tradeAgingSetting = member.getTradeAgingSetting();
+		if(tradeAgingSetting != null && tradeAgingSetting == MemberPersonCenterInfoVo.PWD_NEED_FORVER) {
 			memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_FORVER);
+		}else {
+			memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_NO);
 		}
-		memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_FORVER);
 
 		return Result.ok(memberPersonCenterInfoVo);
 	}
@@ -773,5 +788,94 @@
 		return memberDao.selectMemberInfoByInviteId(inviteId);
 	}
 
+	@Override
+	@Transactional
+	public Result memberUpdateTradersPwdTime(MemberUpdateTradersPwdTimeDto memberUpdateTradersPwdTimeDto) {
+		//获取用户ID
+		Long memberId = LoginUserUtils.getAppLoginUser().getId();
+		MemberEntity member = memberDao.selectById(memberId);
+		member.setTradeAgingSetting(memberUpdateTradersPwdTimeDto.getTradeAgingSetting());
+		memberDao.updateById(member);
+		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