From 3401b1b46b7f1618d693368a14edfa6f401ae090 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 12 Aug 2020 19:56:00 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java |  253 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 185 insertions(+), 68 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 4b4e073..434c237 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
@@ -30,19 +30,6 @@
 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;
-import com.xcong.excoin.modules.member.parameter.vo.MemberCoinAddressCountVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberCoinAddressListVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberCoinAddressVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberCoinInfoListVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberCoinInfoVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberInfoVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberPaymethodDetailListVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberPaymethodDetailVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberPersonCenterInfoVo;
-import com.xcong.excoin.modules.member.parameter.vo.MemberSendCodeWayVo;
 import com.xcong.excoin.modules.member.service.MemberService;
 import com.xcong.excoin.modules.platform.dao.PlatformFeeSettingDao;
 import com.xcong.excoin.modules.platform.dao.PlatformSymbolsCoinDao;
@@ -51,6 +38,7 @@
 import com.xcong.excoin.utils.MessageSourceUtils;
 import com.xcong.excoin.utils.RedisUtils;
 import com.xcong.excoin.utils.ShareCodeUtil;
+import com.xcong.excoin.utils.ThreadPoolUtils;
 import lombok.extern.slf4j.Slf4j;
 
 import org.springframework.security.core.context.SecurityContextHolder;
@@ -117,6 +105,9 @@
     MemberCoinWithdrawDao memberCoinWithdrawDao;
 
     @Resource
+    AppVersionDao appVersionDao;
+
+    @Resource
     private MemberWalletContractSimulateDao memberWalletContractSimulateDao;
 
     @Transactional()
@@ -128,30 +119,44 @@
             return Result.fail("账号已存在");
         }
 
+//        boolean isTrue = commonservice.verifyCode(registerDto.getAccount(), registerDto.getCode());
+//        if (!isTrue) {
+//            return Result.fail(MessageSourceUtils.getString("common_verify_code"));
+//        }
+
         member = new MemberEntity();
         member.setPassword(SecureUtil.md5(registerDto.getPassword()));
 
         // 判断账号类型
-        if (MemberEntity.ACCOUNT_TYPE_PHONE == registerDto.getType()) {
+        if (MemberEntity.ACCOUNT_TYPE_PHONE.equals(registerDto.getType())) {
             member.setPhone(registerDto.getAccount());
-        } else if (MemberEntity.ACCOUNT_TYPE_EMAIL == registerDto.getType()) {
+        } else if (MemberEntity.ACCOUNT_TYPE_EMAIL.equals(registerDto.getType())) {
             member.setEmail(registerDto.getAccount());
         } else {
             return Result.fail("账号类型错误");
         }
 
         // 判断是否拥有推荐人,若为空则默认系统
-        if (StrUtil.isBlank(registerDto.getRefererId())) {
-            registerDto.setRefererId(AppContants.SYSTEM_REFERER);
+//        if (StrUtil.isBlank(registerDto.getRefererId())) {
+//            registerDto.setRefererId(AppContants.SYSTEM_REFERER);
+//        }
+        if (!AppContants.SYSTEM_REFERER.equals(registerDto.getRefererId())) {
+            MemberEntity isExist = memberDao.selectMemberInfoByInviteId(registerDto.getRefererId());
+            if (isExist == null) {
+                return Result.fail("推荐人不存在");
+            }
         }
 
         member.setRefererId(registerDto.getRefererId());
         member.setAccountStatus(MemberEntity.ACCOUNT_STATUS_ENABLE);
-        member.setAccountType(registerDto.getType());
+        member.setAccountType(MemberEntity.ACCOUNT_TYPE_NORMAL);
         member.setAgentLevel(MemberEntity.ACCOUNT_AGENT_LEVEL);
-        member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_ING);
-        member.setIsForce(0);
+        member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_UN_SUBMIT);
+        member.setIsForce(1);
         member.setIsProfit(0);
+        member.setSpread(BigDecimal.ONE);
+        member.setClosingSpread(BigDecimal.ONE);
+        member.setForceParam(BigDecimal.valueOf(0.0015));
         memberDao.insert(member);
 
         String inviteId = ShareCodeUtil.toSerialCode(member.getId());
@@ -219,7 +224,8 @@
             levelRate.setSymbol(symbolEnum.getValue());
             memberLevelRateDao.insert(levelRate);
         }
-        return Result.ok("success");
+
+        return Result.ok(MessageSourceUtils.getString("home_service_0009"));
     }
 
     @Override
@@ -229,7 +235,14 @@
         MemberEntity memberEntity = memberDao.selectById(memberId);
         MemberInfoVo memberInfoVo = new MemberInfoVo();
         if (ObjectUtil.isNotEmpty(memberEntity)) {
-            memberInfoVo.setPhone(memberEntity.getPhone());
+            String email = memberEntity.getEmail();
+            String phone = memberEntity.getPhone();
+            if (StrUtil.isNotEmpty(phone)) {
+                memberInfoVo.setPhone(phone);
+            } else if (StrUtil.isNotEmpty(email)) {
+                memberInfoVo.setPhone(email);
+            }
+
             memberInfoVo.setInviteId(memberEntity.getInviteId());
         }
         return Result.ok(memberInfoVo);
@@ -319,8 +332,13 @@
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity member = memberDao.selectById(memberId);
+        if (MemberEntity.CERTIFY_STATUS_ING.equals(member.getCertifyStatus())) {
+            return Result.fail(MessageSourceUtils.getString("member_service_4000"));
+        }
         if (ObjectUtil.isNotEmpty(member)) {
+
             MemberAuthenticationEntity memberAuthenticationEntity = new MemberAuthenticationEntity();
+
             if (MemberEntity.CERTIFY_STATUS_Y == member.getCertifyStatus()) {
                 return Result.fail(MessageSourceUtils.getString("member_service_0055"));
             }
@@ -344,6 +362,9 @@
             }
             memberAuthenticationEntity.setSecondName(memberAuthenticationDto.getSecondName());
 
+            String type = memberAuthenticationDto.getType();
+            memberAuthenticationEntity.setType(type);
+
             String idCardNo = memberAuthenticationDto.getIdCardNo();
             if (StrUtil.isBlank(idCardNo)) {
                 return Result.fail(MessageSourceUtils.getString("member_service_0060"));
@@ -362,19 +383,22 @@
             memberAuthenticationEntity.setIdcardImageFront(memberAuthenticationDto.getIdCardFront());
             memberAuthenticationEntity.setIdcardImageBack(memberAuthenticationDto.getIdCardReverse());
             memberAuthenticationEntity.setIdcardImageInHand(memberAuthenticationDto.getIdCardImage());
-            memberAuthenticationDao.insert(memberAuthenticationEntity);
+
+            Map<String, Object> columnMap = new HashMap<>();
+            columnMap.put("member_id", memberId);
+            List<MemberAuthenticationEntity> selectByMap = memberAuthenticationDao.selectByMap(columnMap);
+            if (CollUtil.isEmpty(selectByMap)) {
+                memberAuthenticationDao.insert(memberAuthenticationEntity);
+            } else {
+                memberAuthenticationEntity.setId(selectByMap.get(0).getId());
+                memberAuthenticationDao.updateById(memberAuthenticationEntity);
+            }
 
             member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_ING);
             member.setIdcardNo(idCardNo);
             memberDao.updateById(member);
-            /**
-             *  TODO dingtalk
 
-             Constant.excutor.execute(new Runnable() {
-            @Override public void run() {
-            DingTalkUtils.sendActionCard(4);
-            }
-            });*/
+            ThreadPoolUtils.sendDingTalk(4);
             return Result.ok(MessageSourceUtils.getString("member_service_0024"));
         }
         return Result.fail(MessageSourceUtils.getString("member_service_0063"));
@@ -406,6 +430,7 @@
         if (flag) {
             memberEntity.setTradePassword(SecureUtil.md5(password));
             memberDao.updateById(memberEntity);
+            LoginUserUtils.resetAppLoginUser(memberEntity);
             return Result.ok(MessageSourceUtils.getString("member_service_0051"));
         }
         return Result.fail(MessageSourceUtils.getString("member_service_0045"));
@@ -431,8 +456,7 @@
     @Transactional
     public Result memberTradersPwd(@Valid MemberForgetPwdDto memberForgetPwdDto) {
         //获取用户ID
-        Long memberId = LoginUserUtils.getAppLoginUser().getId();
-        MemberEntity memberEntity = memberDao.selectById(memberId);
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
 
         String code = memberForgetPwdDto.getCode();
         String password = memberForgetPwdDto.getPassword();
@@ -443,6 +467,8 @@
         if (flag) {
             memberEntity.setTradePassword(SecureUtil.md5(password));
             memberDao.updateById(memberEntity);
+            // 重置内存中的用户信息
+            LoginUserUtils.resetAppLoginUser(memberEntity);
         } else {
             return Result.fail(MessageSourceUtils.getString("member_service_0015"));
         }
@@ -459,6 +485,17 @@
 
         if (!MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) {
             return Result.fail(MessageSourceUtils.getString("member_service_0077"));
+        }
+
+        Map<String, Object> columnMap = new HashMap<>();
+        columnMap.put("member_id", memberId);
+        List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap);
+        if (CollUtil.isNotEmpty(selectByMap)) {
+            for (MemberPaymentMethodEntity memberPaymentMethodEntity : selectByMap) {
+                if (memberPaymethodDto.getAccount().equals(memberPaymentMethodEntity.getAccount())) {
+                    return Result.fail(MessageSourceUtils.getString("member_service_0097"));
+                }
+            }
         }
         String account = memberPaymethodDto.getAccount();
         String bank = memberPaymethodDto.getBank();
@@ -546,18 +583,21 @@
         String code = memberBindPhoneDto.getCode();
 
         MemberEntity member = memberDao.selectById(memberId);
-        String smsCode = redisUtils.get("SMS_" + phone) + "";
 
         if (ObjectUtil.isNotEmpty(member)) {
-            if (StrUtil.isEmpty(smsCode)) {
-                return Result.fail(MessageSourceUtils.getString("member_service_0038"));
-            }
-            if (!smsCode.equals(code)) {
+            if (!commonservice.verifyCode(phone, code)) {
                 return Result.fail(MessageSourceUtils.getString("member_service_0013"));
             }
-            member.setPhone(phone);
-            memberDao.updateById(member);
-            return Result.ok(MessageSourceUtils.getString("member_service_0014"));
+            Map<String, Object> columnMap = new HashMap<>();
+            columnMap.put("phone", phone);
+            List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap);
+            if (CollUtil.isEmpty(selectByMap)) {
+                member.setPhone(phone);
+                memberDao.updateById(member);
+                return Result.ok(MessageSourceUtils.getString("member_service_0014"));
+            } else {
+                return Result.fail(MessageSourceUtils.getString("member_service_1400"));
+            }
         }
 
         return Result.fail(MessageSourceUtils.getString("member_service_0015"));
@@ -576,9 +616,16 @@
         boolean flag = commonservice.verifyCode(email, code);
         if (ObjectUtil.isNotEmpty(member)) {
             if (flag) {
-                member.setEmail(email);
-                memberDao.updateById(member);
-                return Result.ok(MessageSourceUtils.getString("member_service_0018"));
+                Map<String, Object> columnMap = new HashMap<>();
+                columnMap.put("email", email);
+                List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap);
+                if (CollUtil.isEmpty(selectByMap)) {
+                    member.setEmail(email);
+                    memberDao.updateById(member);
+                    return Result.ok(MessageSourceUtils.getString("member_service_0018"));
+                } else {
+                    return Result.fail(MessageSourceUtils.getString("member_service_1400"));
+                }
             }
         }
         return Result.fail(MessageSourceUtils.getString("member_service_0019"));
@@ -601,10 +648,7 @@
     public Result memberCoinAddressList(String symbol) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
-        Map<String, Object> columnMap = new HashMap<>();
-        columnMap.put("member_id", memberId);
-        columnMap.put("symbol", symbol);
-        List<MemberCoinAddressEntity> selectByMap = memberCoinAddressDao.selectByMap(columnMap);
+        List<MemberCoinAddressEntity> selectByMap = memberCoinAddressDao.selectCoinAddressListByMap(symbol, memberId);
         MemberCoinAddressListVo memberCoinAddressListVo = new MemberCoinAddressListVo();
         List<MemberCoinAddressVo> arrayList = new ArrayList<>();
         if (CollUtil.isNotEmpty(selectByMap)) {
@@ -642,7 +686,7 @@
         MemberCoinAddressEntity memberCoinAddressEntity = new MemberCoinAddressEntity();
         memberCoinAddressEntity.setAddress(address);
         memberCoinAddressEntity.setMemberId(memberId);
-        memberCoinAddressEntity.setIsBiyict(isBiyict);
+        memberCoinAddressEntity.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_NO);
         memberCoinAddressEntity.setSymbolscoinId(symbolscoinId);
         memberCoinAddressEntity.setLabel(remark);
         memberCoinAddressEntity.setSymbol(platformSymbolsCoinEntity.getName());
@@ -696,6 +740,7 @@
                 memberAuthnticationInfoVo.setSecondName(memberAuthenticationEntity.getSecondName());
                 memberAuthnticationInfoVo.setNation(memberAuthenticationEntity.getNation());
                 memberAuthnticationInfoVo.setIdCardNo(memberAuthenticationEntity.getIdcardNo());
+                memberAuthnticationInfoVo.setType(memberAuthenticationEntity.getType());
             }
         }
         return Result.ok(memberAuthnticationInfoVo);
@@ -708,6 +753,19 @@
         MemberEntity member = memberDao.selectById(memberId);
 
         MemberPersonCenterInfoVo memberPersonCenterInfoVo = new MemberPersonCenterInfoVo();
+
+        Integer certifyStatus = member.getCertifyStatus();
+        memberPersonCenterInfoVo.setCertifyStatus(certifyStatus);
+
+        Map<String, Object> columnMap = new HashMap<>();
+        columnMap.put("member_id", memberId);
+        List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap);
+        if (CollUtil.isEmpty(selectByMap)) {
+            memberPersonCenterInfoVo.setMemberPaymentMethod(0);
+        } else {
+            memberPersonCenterInfoVo.setMemberPaymentMethod(1);
+        }
+
         if (StrUtil.isNotEmpty(member.getPhone())) {
             memberPersonCenterInfoVo.setPhone(1);
         } else {
@@ -738,8 +796,6 @@
 
     @Override
     public Result memberCoinInfoList() {
-        //获取用户ID
-        Long memberId = LoginUserUtils.getAppLoginUser().getId();
 
         MemberCoinInfoListVo memberCoinInfoListVo = new MemberCoinInfoListVo();
         List<PlatformSymbolsCoinEntity> selectByMap = platformSymbolsCoinDao.selectByMap(new HashMap<>());
@@ -765,15 +821,22 @@
             return Result.fail(MessageSourceUtils.getString("member_service_0087"));
         }
 
-        MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo();
-        memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance());
+        List<MemberAvivableCoinInfoVo> arrayList = new ArrayList<>();
 
-        PlatformFeeSettingEntity feeSetting = platformFeeSettingDao.getFeeSettingByTypeAndSymbol(2, symbol);
-        if (ObjectUtil.isEmpty(feeSetting)) {
+
+        List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol);
+        if (CollUtil.isEmpty(feeSettingByTypeAndSymbolLable)) {
             return Result.fail(MessageSourceUtils.getString("member_service_0087"));
         }
-        memberAvivableCoinInfoVo.setFee(feeSetting.getFeePrice());
-        return Result.ok(memberAvivableCoinInfoVo);
+        for (PlatformFeeSettingEntity platformFeeSettingEntity : feeSettingByTypeAndSymbolLable) {
+            MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo();
+            memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance());
+            memberAvivableCoinInfoVo.setFee(platformFeeSettingEntity.getFeePrice());
+            memberAvivableCoinInfoVo.setLable(platformFeeSettingEntity.getLable());
+            arrayList.add(memberAvivableCoinInfoVo);
+        }
+
+        return Result.ok(arrayList);
     }
 
     @Override
@@ -824,9 +887,9 @@
         if (flag) {
             MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, memberSubmitCoinApplyDto.getSymbol());
             BigDecimal availableBalance = walletCoin.getAvailableBalance();
-            BigDecimal coinNumber = memberSubmitCoinApplyDto.getCoinNumber().add(memberSubmitCoinApplyDto.getFeeAmount());
+            BigDecimal coinNumber = memberSubmitCoinApplyDto.getCoinNumber();
             if (availableBalance.compareTo(BigDecimal.ZERO) > 0
-                    && availableBalance.compareTo(coinNumber) > 0) {
+                    && availableBalance.compareTo(coinNumber) >= 0) {
                 //新增提币记录
                 MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity();
                 memberCoinWithdrawEntity.setAddress(memberSubmitCoinApplyDto.getAddress());
@@ -839,6 +902,7 @@
                 Map<String, Object> columnMap = new HashMap<>();
                 columnMap.put("symbol", memberSubmitCoinApplyDto.getSymbol());
                 columnMap.put("address", memberSubmitCoinApplyDto.getAddress());
+                columnMap.put("is_biyict", MemberCoinAddressEntity.IS_BIYICT_YES);
                 List<MemberCoinAddressEntity> selectByMap = memberCoinAddressDao.selectByMap(columnMap);
                 if (CollUtil.isEmpty(selectByMap)) {
                     memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_NO);
@@ -855,22 +919,17 @@
                 MemberAccountMoneyChange accountRecord = new MemberAccountMoneyChange();
                 accountRecord.setContent("提币");
                 accountRecord.setMemberId(memberId);
-                accountRecord.setAmount(memberSubmitCoinApplyDto.getCoinNumber());
+                accountRecord.setAmount(coinNumber);
+                accountRecord.setWithdrawId(memberCoinWithdrawEntity.getId());
                 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);
-                }
-                });
-                 */
+
+                ThreadPoolUtils.sendDingTalk(3);
                 return Result.ok(MessageSourceUtils.getString("member_service_0086"));
             } else {
-                return Result.fail(MessageSourceUtils.getString("order_service_0040"));
+                return Result.fail(MessageSourceUtils.getString("member_service_0005"));
             }
 
         } else {
@@ -878,6 +937,64 @@
         }
     }
 
+    @Override
+    public Result getMemberAccountInfo(String account, int type) {
+
+        Map<String, Object> hashMap = new HashMap<>();
+        if (type == 1) {
+            hashMap.put("phone", account);
+        } else {
+            hashMap.put("email", account);
+        }
+        List<MemberEntity> member = memberDao.selectByMap(hashMap);
+        if (CollUtil.isEmpty(member)) {
+            return Result.fail(MessageSourceUtils.getString("home_service_0003"));
+        }
+
+        return Result.ok("");
+    }
+
+    @Override
+    public Result getAppVersionInfo() {
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+
+        Map<String, Object> columnMap = new HashMap<>();
+        List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap);
+        List<Object> arrayList = new ArrayList<>();
+        if (CollUtil.isNotEmpty(selectByMap)) {
+            for (AppVersionEntity appVersionEntity : selectByMap) {
+                AppVersionVo appVersionVo = new AppVersionVo();
+                if ("31087493".equals(memberEntity.getInviteId())) {
+                    appVersionVo.setAddress("www.baidu.com");
+                    appVersionVo.setType(appVersionEntity.getType());
+                    appVersionVo.setVersion(appVersionEntity.getVersion());
+                } else {
+                    appVersionVo.setAddress(appVersionEntity.getAddress());
+                    appVersionVo.setType(appVersionEntity.getType());
+                    appVersionVo.setVersion(appVersionEntity.getVersion());
+                }
+                arrayList.add(appVersionVo);
+            }
+        }
+        return Result.ok(arrayList);
+    }
+
+    @Override
+    public Result getPcVersionInfo() {
+        Map<String, Object> columnMap = new HashMap<>();
+        List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap);
+        List<Object> arrayList = new ArrayList<>();
+        if (CollUtil.isNotEmpty(selectByMap)) {
+            for (AppVersionEntity appVersionEntity : selectByMap) {
+                AppVersionVo appVersionVo = new AppVersionVo();
+                appVersionVo.setAddress(appVersionEntity.getAddress());
+                appVersionVo.setType(appVersionEntity.getType());
+                appVersionVo.setVersion(appVersionEntity.getVersion());
+                arrayList.add(appVersionVo);
+            }
+        }
+        return Result.ok(arrayList);
+    }
 }
 
 

--
Gitblit v1.9.1