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 |  160 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 142 insertions(+), 18 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 afcf057..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,11 @@
 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;
 import com.xcong.excoin.modules.member.parameter.vo.MemberCoinAddressCountListVo;
@@ -73,6 +78,9 @@
 
     @Resource
     private MemberWalletAgentDao memberWalletAgentDao;
+    
+    @Resource
+    MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
 
     @Resource
     private MemberWalletContractDao memberWalletContractDao;
@@ -97,7 +105,7 @@
     
     @Resource
     PlatformFeeSettingDao platformFeeSettingDao;
-    
+
     @Resource
     MemberCoinAddressDao memberCoinAddressDao;
     
@@ -105,8 +113,11 @@
     private CommonService commonservice;
     
     @Resource
+    MemberCoinWithdrawDao memberCoinWithdrawDao;
+
+    @Resource
     private MemberWalletContractSimulateDao memberWalletContractSimulateDao;
-    
+
     @Transactional()
     @Override
     public Result register(RegisterDto registerDto) {
@@ -150,7 +161,7 @@
         String ids = "";
         while (!flag) {
             ids += ("," + parentId);
-            MemberEntity parentMember = memberDao.selectMemberInfoByRefererId(parentId);
+            MemberEntity parentMember = memberDao.selectMemberInfoByInviteId(parentId);
             if (parentMember == null) {
                 break;
             }
@@ -669,11 +680,11 @@
 		//获取用户ID
 		Long memberId = LoginUserUtils.getAppLoginUser().getId();
 		MemberEntity member = memberDao.selectById(memberId);
-		
+
 		Map<String, Object> columnMap = new HashMap<>();
 		columnMap.put("member_id", memberId);
 		List<MemberAuthenticationEntity> selectByMap = memberAuthenticationDao.selectByMap(columnMap);
-		
+
 		MemberAuthenticationInfoVo memberAuthnticationInfoVo = new MemberAuthenticationInfoVo();
 		memberAuthnticationInfoVo.setCertifyStatus(member.getCertifyStatus());
 		if(CollUtil.isNotEmpty(selectByMap)) {
@@ -692,28 +703,33 @@
 		//获取用户ID
 		Long memberId = LoginUserUtils.getAppLoginUser().getId();
 		MemberEntity member = memberDao.selectById(memberId);
-		
+
 		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);
 	}
 
@@ -721,7 +737,7 @@
 	public Result memberCoinInfoList() {
 		//获取用户ID
 		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		
+
 		MemberCoinInfoListVo memberCoinInfoListVo = new MemberCoinInfoListVo();
 		List<PlatformSymbolsCoinEntity> selectByMap = platformSymbolsCoinDao.selectByMap(new HashMap<>());
 		List<MemberCoinInfoVo> arrayList = new ArrayList<>();
@@ -733,7 +749,7 @@
 			}
 		}
 		memberCoinInfoListVo.setMemberCoinInfoVo(arrayList);
-		
+
 		return Result.ok(memberCoinInfoListVo);
 	}
 
@@ -745,13 +761,121 @@
         if (ObjectUtil.isEmpty(walletCoin)) {
         	  return Result.fail(MessageSourceUtils.getString("member_service_0087"));
         }
-          
+
         MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo();
         memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance());
-          
+
         PlatformFeeSettingEntity feeSetting = platformFeeSettingDao.getFeeSettingByTypeAndSymbol(2,symbol);
+        if(ObjectUtil.isEmpty(feeSetting)) {
+        	return Result.fail(MessageSourceUtils.getString("member_service_0087"));
+        }
         memberAvivableCoinInfoVo.setFee(feeSetting.getFeePrice());
         return Result.ok(memberAvivableCoinInfoVo);
     }
 
+	@Override
+	public NeedMoneyMemberVo selectFriendRelationUserByMemberId(Long memberId){
+		return memberDao.selectFriendRelationUserByMemberId(memberId);
+	}
+
+	@Override
+	public List<NeedMoneyMemberVo> selectAllNeedMoneyMember(List<String> list) {
+		return memberDao.selectAllNeedMoneyMember(list);
+	}
+
+	@Override
+	public MemberEntity selectMemberInfoByInviteId(String inviteId) {
+		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