From ac88906c833cb3ead2f61cbebf646cd3d6ea65a1 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 26 Nov 2021 17:50:08 +0800
Subject: [PATCH] fix

---
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java |   89 +++++++++++++++++++++++++++++++-------------
 1 files changed, 63 insertions(+), 26 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 434c237..01561d2 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
@@ -15,6 +15,8 @@
 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.fish.dao.MemberAccountGoldDao;
+import com.xcong.excoin.modules.fish.entity.MemberAccountGold;
 import com.xcong.excoin.modules.member.dao.*;
 import com.xcong.excoin.modules.member.entity.*;
 import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto;
@@ -41,6 +43,7 @@
 import com.xcong.excoin.utils.ThreadPoolUtils;
 import lombok.extern.slf4j.Slf4j;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -84,6 +87,9 @@
     MemberAuthenticationDao memberAuthenticationDao;
 
     @Resource
+    MemberAccountGoldDao memberAccountGoldDao;
+
+    @Resource
     RedisUtils redisUtils;
 
     @Resource
@@ -106,6 +112,8 @@
 
     @Resource
     AppVersionDao appVersionDao;
+    @Resource
+    private MemberSettingDao memberSettingDao;
 
     @Resource
     private MemberWalletContractSimulateDao memberWalletContractSimulateDao;
@@ -119,10 +127,10 @@
             return Result.fail("账号已存在");
         }
 
-//        boolean isTrue = commonservice.verifyCode(registerDto.getAccount(), registerDto.getCode());
-//        if (!isTrue) {
-//            return Result.fail(MessageSourceUtils.getString("common_verify_code"));
-//        }
+        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()));
@@ -142,22 +150,24 @@
 //        }
         if (!AppContants.SYSTEM_REFERER.equals(registerDto.getRefererId())) {
             MemberEntity isExist = memberDao.selectMemberInfoByInviteId(registerDto.getRefererId());
-            if (isExist == null) {
-                return Result.fail("推荐人不存在");
+            if (isExist != null) {
+                member.setRefererId(registerDto.getRefererId());
             }
         }
-
-        member.setRefererId(registerDto.getRefererId());
         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.setIsForce(1);
         member.setIsProfit(0);
-        member.setSpread(BigDecimal.ONE);
-        member.setClosingSpread(BigDecimal.ONE);
-        member.setForceParam(BigDecimal.valueOf(0.0015));
         memberDao.insert(member);
+
+        MemberSettingEntity memberSettingEntity = new MemberSettingEntity();
+        memberSettingEntity.setSpread(BigDecimal.ONE);
+        memberSettingEntity.setClosingSpread(BigDecimal.valueOf(5));
+        memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0030));
+        memberSettingEntity.setMemberId(member.getId());
+        memberSettingDao.insert(memberSettingEntity);
 
         String inviteId = ShareCodeUtil.toSerialCode(member.getId());
         member.setInviteId(inviteId);
@@ -165,19 +175,29 @@
         boolean flag = false;
         String parentId = member.getRefererId();
         String ids = "";
-        while (!flag) {
+        while (!flag && StringUtils.isNotBlank(parentId)) {
             ids += ("," + parentId);
             MemberEntity parentMember = memberDao.selectMemberInfoByInviteId(parentId);
             if (parentMember == null) {
                 break;
             }
             parentId = parentMember.getRefererId();
+            if(StringUtils.isBlank(parentId)){
+                break;
+            }
             if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
                 flag = true;
             }
         }
         member.setRefererIds(ids);
         memberDao.updateById(member);
+
+        MemberAccountGold memberAccountGoldNew = new MemberAccountGold();
+        memberAccountGoldNew.setMemberId(member.getId());
+        memberAccountGoldNew.setTotalBalance(BigDecimal.ZERO);
+        memberAccountGoldNew.setAvailableBalance(BigDecimal.ZERO);
+        memberAccountGoldNew.setFrozenBalance(BigDecimal.ZERO);
+        memberAccountGoldDao.insert(memberAccountGoldNew);
 
         //初始化合约钱包
         MemberWalletContractEntity walletContract = new MemberWalletContractEntity();
@@ -375,6 +395,11 @@
             if (count > 0) {
                 return Result.fail(MessageSourceUtils.getString("member_service_0060"));
             }
+            // 同一个人只能认证一次
+            int authenByMemberId = memberAuthenticationDao.findAuthenByMemberId(memberId);
+            if (authenByMemberId > 0) {
+                return Result.fail(MessageSourceUtils.getString("member_service_0055"));
+            }
             if (StrUtil.isBlank(memberAuthenticationDto.getIdCardFront())
                     || StrUtil.isBlank(memberAuthenticationDto.getIdCardReverse())
                     || StrUtil.isBlank(memberAuthenticationDto.getIdCardImage())) {
@@ -456,7 +481,8 @@
     @Transactional
     public Result memberTradersPwd(@Valid MemberForgetPwdDto memberForgetPwdDto) {
         //获取用户ID
-        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        MemberEntity memberEntity = memberDao.selectById(memberId);
 
         String code = memberForgetPwdDto.getCode();
         String password = memberForgetPwdDto.getPassword();
@@ -585,9 +611,13 @@
         MemberEntity member = memberDao.selectById(memberId);
 
         if (ObjectUtil.isNotEmpty(member)) {
-            if (!commonservice.verifyCode(phone, code)) {
+            if (!commonservice.mutiVerifyCode(member.getEmail(), memberBindPhoneDto.getOtherCode(), phone, code)) {
                 return Result.fail(MessageSourceUtils.getString("member_service_0013"));
             }
+            // 验证邮箱验证码
+//            if (!commonservice.verifyCode(member.getEmail(), memberBindPhoneDto.getOtherCode())) {
+//                return Result.fail("邮箱"+MessageSourceUtils.getString("member_service_0013"));
+//            }
             Map<String, Object> columnMap = new HashMap<>();
             columnMap.put("phone", phone);
             List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap);
@@ -613,7 +643,14 @@
         String code = memberBindEmailDto.getCode();
 
         MemberEntity member = memberDao.selectById(memberId);
-        boolean flag = commonservice.verifyCode(email, code);
+        boolean flag = commonservice.mutiVerifyCode(email, code, member.getPhone(), memberBindEmailDto.getOtherCode());
+//        boolean flag2 = commonservice.verifyCode(member.getPhone(), memberBindEmailDto.getOtherCode());
+       if(!flag){
+           return Result.fail(MessageSourceUtils.getString("member_service_0013"));
+       }
+//       if(!flag2){
+//           return Result.fail("手机"+MessageSourceUtils.getString("member_service_0013"));
+//       }
         if (ObjectUtil.isNotEmpty(member)) {
             if (flag) {
                 Map<String, Object> columnMap = new HashMap<>();
@@ -870,6 +907,14 @@
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity member = memberDao.selectById(memberId);
+        String golden_limit_transfer = redisUtils.getString("GOLDEN_LIMIT_TRANSFER");
+        // 判断是否限制
+        if(StringUtils.isNotBlank(member.getPhone()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getPhone())){
+            return Result.fail("此账号有财务问题,需联系客服");
+        }
+        if(StringUtils.isNotBlank(member.getEmail()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getEmail())){
+            return Result.fail("此账号有财务问题,需联系客服");
+        }
         if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) {
             return Result.fail(MessageSourceUtils.getString("member_service_0077"));
         }
@@ -956,23 +1001,15 @@
 
     @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());
-                }
+                appVersionVo.setAddress(appVersionEntity.getAddress());
+                appVersionVo.setType(appVersionEntity.getType());
+                appVersionVo.setVersion(appVersionEntity.getVersion());
                 arrayList.add(appVersionVo);
             }
         }

--
Gitblit v1.9.1