From 36be00e0f3cbe0d559c646fd2977e6e3a74aa6f9 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 30 Sep 2024 16:57:22 +0800
Subject: [PATCH] Merge branch 'bea' of http://120.27.238.55:7000/r/exchange into bea

---
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java |  230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 225 insertions(+), 5 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 301e739..3f043fa 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
@@ -28,6 +28,7 @@
 import com.xcong.excoin.modules.member.parameter.dto.*;
 import com.xcong.excoin.modules.member.parameter.vo.*;
 import com.xcong.excoin.modules.member.service.MemberService;
+import com.xcong.excoin.modules.member.vo.DefaultWayVo;
 import com.xcong.excoin.modules.platform.dao.PlatformFeeSettingDao;
 import com.xcong.excoin.modules.platform.dao.PlatformSymbolsCoinDao;
 import com.xcong.excoin.modules.platform.entity.PlatformFeeSettingEntity;
@@ -78,6 +79,9 @@
 
     @Resource
     private MemberWalletCoinDao memberWalletCoinDao;
+
+    @Resource
+    private MemberCoinAddressInDao memberCoinAddressInDao;
 
     @Resource
     private ZhiYaDao zhiYaDao;
@@ -149,14 +153,18 @@
 //        }
         if (!AppContants.SYSTEM_REFERER.equals(registerDto.getRefererId())) {
             MemberEntity isExist = memberDao.selectMemberInfoByInviteId(registerDto.getRefererId());
-            if (isExist != null) {
-                member.setRefererId(registerDto.getRefererId());
+//            if (isExist != null) {
+//                member.setRefererId(registerDto.getRefererId());
+//            }
+            if (isExist == null) {
+                return Result.fail("推荐人不存在");
             }
         }
         member.setAccountStatus(MemberEntity.ACCOUNT_STATUS_ENABLE);
         member.setAccountType(MemberEntity.ACCOUNT_TYPE_NORMAL);
         member.setAgentLevel(MemberEntity.ACCOUNT_AGENT_LEVEL);
         member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_UN_SUBMIT);
+        member.setRefererId(registerDto.getRefererId());
         member.setIsForce(1);
         member.setIsProfit(0);
         memberDao.insert(member);
@@ -509,6 +517,10 @@
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity member = memberDao.selectById(memberId);
 
+//        if (!MemberPaymentMethodEntity.PAYMENTTYPE_CARD.toString().equals(memberPaymethodDto.getPaymentType())) {
+//            return Result.fail("只能绑定银行卡");
+//        }
+
         if (!MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) {
             return Result.fail(MessageSourceUtils.getString("member_service_0077"));
         }
@@ -522,6 +534,12 @@
                     return Result.fail(MessageSourceUtils.getString("member_service_0097"));
                 }
             }
+        }
+
+        String isDefault = "1";
+        MemberPaymentMethodEntity defaultMethod = memberPaymentMethodDao.selectDefualtMethod(memberId, null, "1");
+        if (defaultMethod != null) {
+            isDefault = "2";
         }
         String account = memberPaymethodDto.getAccount();
         String bank = memberPaymethodDto.getBank();
@@ -537,6 +555,7 @@
         memberPaymentMethodEntity.setPaymentQrcode(paymentQrcode);
         memberPaymentMethodEntity.setPaymentType(paymentType);
         memberPaymentMethodEntity.setSubBank(subBank);
+        memberPaymentMethodEntity.setIsDefualt(isDefault);
         memberPaymentMethodDao.insert(memberPaymentMethodEntity);
         return Result.ok(MessageSourceUtils.getString("member_service_0024"));
     }
@@ -591,6 +610,7 @@
                 memberPaymethodDetailVo.setPaymentQrcode(memberPaymentMethodEntity.getPaymentQrcode());
                 memberPaymethodDetailVo.setPaymentType(memberPaymentMethodEntity.getPaymentType());
                 memberPaymethodDetailVo.setSubBank(memberPaymentMethodEntity.getSubBank());
+                memberPaymethodDetailVo.setIsDefault(memberPaymentMethodEntity.getIsDefualt());
                 arrayList.add(memberPaymethodDetailVo);
             }
         }
@@ -598,6 +618,29 @@
         MemberPaymethodDetailListVo memberPaymethodDetailListVo = new MemberPaymethodDetailListVo();
         memberPaymethodDetailListVo.setMemberPaymethodDetailVo(arrayList);
         return Result.ok(memberPaymethodDetailListVo);
+    }
+
+    @Override
+    public Result setDefaultPaymethod(Long id) {
+        MemberEntity member = LoginUserUtils.getAppLoginUser();
+        MemberPaymentMethodEntity defualtMethod = this.memberPaymentMethodDao.selectDefualtMethod(member.getId(), null, "1");
+
+        if (defualtMethod != null) {
+            if (id.equals(defualtMethod.getId())) {
+                return Result.fail("不能关闭默认收款方式");
+            }
+        }
+
+        MemberPaymentMethodEntity paymentMethodEntity = new MemberPaymentMethodEntity();
+        paymentMethodEntity.setId(id);
+        paymentMethodEntity.setIsDefualt("1");
+        this.memberPaymentMethodDao.updateById(paymentMethodEntity);
+
+        if (defualtMethod != null) {
+            defualtMethod.setIsDefualt("2");
+            this.memberPaymentMethodDao.updateById(defualtMethod);
+        }
+        return Result.ok("操作成功");
     }
 
     @Override
@@ -828,6 +871,13 @@
             memberPersonCenterInfoVo.setTradeAgingSetting(MemberPersonCenterInfoVo.PWD_NEED_NO);
         }
 
+        if (StrUtil.isEmpty(member.getName())) {
+            memberPersonCenterInfoVo.setNickName(2);
+        } else {
+            memberPersonCenterInfoVo.setNickName(1);
+        }
+
+        memberPersonCenterInfoVo.setIsMb(member.getIsTrader());
         return Result.ok(memberPersonCenterInfoVo);
     }
 
@@ -1040,17 +1090,33 @@
         MemberEntity member = memberDao.selectById(memberId);
         MemberTeamVo memberTeamVo = memberDao.selectAllTeamByInviteIdInPage(memberId,member.getInviteId());
         List<TeamVo> teamVos = new ArrayList<>();
+        //直属会员
+        List<MemberEntity> memberZhiShu = memberDao.selectMemberInfoByRefererId(member.getInviteId());
         if(ObjectUtil.isEmpty(memberTeamVo)){
             MemberTeamVo memberTeamVoNull = new MemberTeamVo();
             Integer teamCnt = memberDao.selectMemberCountByInvitedId(member.getInviteId());
             memberTeamVoNull.setTeamCnt(teamCnt);
             memberTeamVoNull.setZhiyaCnt(BigDecimal.ZERO);
             memberTeamVoNull.setRewardCnt(BigDecimal.ZERO);
-            memberTeamVoNull.setTeamVo(teamVos);
+            //直属会员
+            if(CollUtil.isNotEmpty(memberZhiShu)){
+                for(MemberEntity zhishu : memberZhiShu){
+                    TeamVo teamVo = new TeamVo();
+                    String phone = zhishu.getPhone();
+                    if(StrUtil.isNotEmpty(phone)){
+                        String result = phone.substring(phone.length()-4,phone.length());
+                        teamVo.setAccount(result);
+                    }
+                    int memberCnt = memberDao.selectMemberCountByInvitedId(zhishu.getInviteId());
+                    teamVo.setTeamCnt(memberCnt);
+                    teamVo.setZhiyaCnt(BigDecimal.ZERO);
+                    teamVo.setRewardCnt(BigDecimal.ZERO);
+                    teamVos.add(teamVo);
+                }
+                memberTeamVoNull.setTeamVo(teamVos);
+            }
             return Result.ok(memberTeamVoNull);
         }
-        //直属会员
-        List<MemberEntity> memberZhiShu = memberDao.selectMemberInfoByRefererId(member.getInviteId());
         if(CollUtil.isNotEmpty(memberZhiShu)){
             for(MemberEntity zhishu : memberZhiShu){
                 Long zhiShuMemberId = zhishu.getId();
@@ -1078,6 +1144,160 @@
         }
         return Result.ok(memberTeamVo);
     }
+
+    @Override
+    public Result findDefaultWay() {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        DefaultWayVo defaultWayVo = new DefaultWayVo();
+        MemberPaymentMethodEntity defualtMethod = this.memberPaymentMethodDao.selectDefualtMethod(memberId, null, "1");
+        if (ObjectUtil.isNotEmpty(defualtMethod)) {
+            String paymentType = defualtMethod.getPaymentType();
+            defaultWayVo.setPaymentType(paymentType);
+        }
+        return Result.ok(defaultWayVo);
+    }
+
+    public Result memberCoinAddressInList() {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        Map<String, Object> columnMap = new HashMap<>();
+        columnMap.put("member_id", memberId);
+        List<MemberCoinAddressInEntity> selectByMap = memberCoinAddressInDao.selectByMap(columnMap );
+        List<MemberCoinAddressInListVo> arrayList = new ArrayList<>();
+        if (CollUtil.isNotEmpty(selectByMap)) {
+            for (MemberCoinAddressInEntity memberCoinAddressInEntity : selectByMap) {
+                MemberCoinAddressInListVo memberCoinAddressInListVo = new MemberCoinAddressInListVo();
+                memberCoinAddressInListVo.setId(memberCoinAddressInEntity.getId());
+                memberCoinAddressInListVo.setAccount(memberCoinAddressInEntity.getAccount());
+                memberCoinAddressInListVo.setContent(memberCoinAddressInEntity.getContent());
+                arrayList.add(memberCoinAddressInListVo);
+            }
+        }
+        return Result.ok(arrayList);
+    }
+
+    @Override
+    @Transactional
+    public Result memberAddCoinAddressIn(MemberAddCoinAddressInDto memberAddCoinAddressDto) {
+
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        String address = memberAddCoinAddressDto.getAddress();
+        String remark = memberAddCoinAddressDto.getRemark();
+
+        MemberCoinAddressInEntity memberCoinAddressInEntity = new MemberCoinAddressInEntity();
+        memberCoinAddressInEntity.setAccount(address);
+        memberCoinAddressInEntity.setMemberId(memberId);
+        memberCoinAddressInEntity.setContent(remark);
+        memberCoinAddressInDao.insert(memberCoinAddressInEntity);
+        return Result.ok(MessageSourceUtils.getString("member_service_0024"));
+    }
+
+    @Override
+    @Transactional
+    public Result memberSubmitCoinApplyIn(@Valid MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto) {
+        //获取用户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(memberSubmitCoinApplyInDto.getTradePassword()))) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0082"));
+        }
+
+        boolean flag = commonservice.verifyCode(memberSubmitCoinApplyInDto.getAccount(), memberSubmitCoinApplyInDto.getCode());
+        if (flag) {
+            //获取到账地址
+            String address = memberSubmitCoinApplyInDto.getAddress();
+            //根据账号获取会员信息
+            MemberEntity selectMemberInfoByAccount = memberDao.selectMemberInfoByAccount(address);
+            if(ObjectUtil.isEmpty(selectMemberInfoByAccount)) {
+                return Result.fail(MessageSourceUtils.getString("member_service_0087"));
+            }
+            Long memberInfoId = selectMemberInfoByAccount.getId();
+            String symbol = memberSubmitCoinApplyInDto.getSymbol();
+
+            String addressIn = "";
+            Map<String, Object> columnMapAddress = new HashMap<>();
+            columnMapAddress.put("member_id", memberInfoId);
+            columnMapAddress.put("symbol", symbol);
+            List<MemberCoinAddressEntity> selectByMap2 = memberCoinAddressDao.selectByMap(columnMapAddress);
+            if(CollUtil.isEmpty(selectByMap2)) {
+//				return Result.fail(MessageSourceUtils.getString("member_service_0087"));
+                addressIn = address;
+            } else {
+                MemberCoinAddressEntity memberCoinAddressEntity = selectByMap2.get(0);
+                if(StrUtil.isEmpty(memberCoinAddressEntity.getAddress())){
+                    addressIn = selectMemberInfoByAccount.getInviteId();
+                }else{
+                    addressIn = memberCoinAddressEntity.getAddress();
+                }
+            }
+
+            MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, memberSubmitCoinApplyInDto.getSymbol());
+            BigDecimal availableBalance = walletCoin.getAvailableBalance();
+            BigDecimal coinNumber = memberSubmitCoinApplyInDto.getCoinNumber();
+            if (availableBalance.compareTo(BigDecimal.ZERO) > 0
+                    && availableBalance.compareTo(coinNumber) >= 0) {
+                //新增提币记录
+                MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity();
+                memberCoinWithdrawEntity.setAddress(addressIn);
+                memberCoinWithdrawEntity.setAmount(coinNumber);
+                memberCoinWithdrawEntity.setFeeAmount(BigDecimal.ZERO);
+                memberCoinWithdrawEntity.setSymbol(memberSubmitCoinApplyInDto.getSymbol());
+                memberCoinWithdrawEntity.setMemberId(memberId);
+                memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_DOING);
+                memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_YES);
+                memberCoinWithdrawEntity.setLabel(memberSubmitCoinApplyInDto.getLable());
+                memberCoinWithdrawDao.insert(memberCoinWithdrawEntity);
+                BigDecimal subtract = walletCoin.getAvailableBalance().subtract(coinNumber);
+                walletCoin.setAvailableBalance(subtract);
+                BigDecimal add = walletCoin.getFrozenBalance().add(coinNumber);
+                walletCoin.setFrozenBalance(add);
+                memberWalletCoinDao.updateById(walletCoin);
+
+                MemberAccountMoneyChange accountRecord = new MemberAccountMoneyChange();
+                accountRecord.setContent("提币");
+                accountRecord.setMemberId(memberId);
+                accountRecord.setAmount(coinNumber);
+                accountRecord.setWithdrawId(memberCoinWithdrawEntity.getId());
+                accountRecord.setStatus(MemberAccountMoneyChange.STATUS_WAIT_INTEGER);
+                accountRecord.setSymbol(memberSubmitCoinApplyInDto.getSymbol());
+                accountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
+                memberAccountMoneyChangeDao.insert(accountRecord);
+
+                ThreadPoolUtils.sendDingTalk(3);
+                return Result.ok(MessageSourceUtils.getString("member_service_0086"));
+            } else {
+                return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+            }
+
+        } else {
+            return Result.fail(MessageSourceUtils.getString("member_service_0039"));
+        }
+    }
+
+    @Override
+    public Result memberDelCoinAddressIn(MemberDelCoinAddressDto memberDelCoinAddressDto) {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        MemberEntity member = memberDao.selectById(memberId);
+        if (ObjectUtil.isNotEmpty(member)) {
+            Long id = memberDelCoinAddressDto.getId();
+            memberCoinAddressInDao.deleteById(id);
+        }
+        return Result.ok("success");
+    }
 }
 
 

--
Gitblit v1.9.1