zainali5120
2020-11-09 4ba8d5db88249bf403ba7be602dd3edf6b80394a
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -41,6 +41,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;
@@ -106,6 +107,8 @@
    @Resource
    AppVersionDao appVersionDao;
    @Resource
    private MemberSettingDao memberSettingDao;
    @Resource
    private MemberWalletContractSimulateDao memberWalletContractSimulateDao;
@@ -142,20 +145,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(0);
        member.setIsForce(1);
        member.setIsProfit(0);
        member.setSpread(BigDecimal.ZERO);
        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);
@@ -163,13 +170,16 @@
        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;
            }
@@ -330,12 +340,12 @@
        //获取用户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 (MemberEntity.CERTIFY_STATUS_ING.equals(member.getCertifyStatus())) {
            return Result.fail(MessageSourceUtils.getString("member_service_4000"));
        }
        if (ObjectUtil.isNotEmpty(member)) {
           MemberAuthenticationEntity memberAuthenticationEntity = new MemberAuthenticationEntity();
            MemberAuthenticationEntity memberAuthenticationEntity = new MemberAuthenticationEntity();
            if (MemberEntity.CERTIFY_STATUS_Y == member.getCertifyStatus()) {
                return Result.fail(MessageSourceUtils.getString("member_service_0055"));
@@ -365,13 +375,18 @@
            String idCardNo = memberAuthenticationDto.getIdCardNo();
            if (StrUtil.isBlank(idCardNo)) {
               return Result.fail(MessageSourceUtils.getString("member_service_0060"));
                return Result.fail(MessageSourceUtils.getString("member_service_0060"));
            }
            memberAuthenticationEntity.setIdcardNo(idCardNo);
            //同一个身份证号码不能重复实名认证
            int count = memberAuthenticationDao.findMemberbyIdCardNoCount(idCardNo);
            if (count > 0) {
               return Result.fail(MessageSourceUtils.getString("member_service_0060"));
                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())
@@ -383,14 +398,14 @@
            memberAuthenticationEntity.setIdcardImageInHand(memberAuthenticationDto.getIdCardImage());
            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);
           }
            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);
@@ -454,7 +469,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();
@@ -487,14 +503,14 @@
        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"));
            }
         }
      }
        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();
        String name = memberPaymethodDto.getName();
@@ -575,7 +591,7 @@
    @Override
    @Transactional
    public Result memberBindPhone(@Valid MemberBindPhoneDto memberBindPhoneDto) {
       //获取用户ID
        //获取用户ID
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
        String phone = memberBindPhoneDto.getPhone();
        String code = memberBindPhoneDto.getCode();
@@ -583,18 +599,22 @@
        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 );
            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"));
            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"));
            }
        }
@@ -605,24 +625,31 @@
    @Transactional
    public Result memberBindEmail(@Valid MemberBindEmailDto memberBindEmailDto) {
       //获取用户ID
        //获取用户ID
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
        String email = memberBindEmailDto.getEmail();
        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<>();
                Map<String, Object> columnMap = new HashMap<>();
                columnMap.put("email", email);
             List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap );
                if(CollUtil.isEmpty(selectByMap)) {
                   member.setEmail(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"));
                } else {
                    return Result.fail(MessageSourceUtils.getString("member_service_1400"));
                }
            }
        }
@@ -684,7 +711,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());
@@ -758,10 +785,10 @@
        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 (CollUtil.isEmpty(selectByMap)) {
            memberPersonCenterInfoVo.setMemberPaymentMethod(0);
        } else {
            memberPersonCenterInfoVo.setMemberPaymentMethod(1);
        }
        if (StrUtil.isNotEmpty(member.getPhone())) {
@@ -822,16 +849,16 @@
        List<MemberAvivableCoinInfoVo> arrayList = new ArrayList<>();
      List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol);
        List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol);
        if (CollUtil.isEmpty(feeSettingByTypeAndSymbolLable)) {
            return Result.fail(MessageSourceUtils.getString("member_service_0087"));
        }
        for(PlatformFeeSettingEntity platformFeeSettingEntity : feeSettingByTypeAndSymbolLable) {
           MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo();
           memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance());
           memberAvivableCoinInfoVo.setFee(platformFeeSettingEntity.getFeePrice());
           memberAvivableCoinInfoVo.setLable(platformFeeSettingEntity.getLable());
           arrayList.add(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);
@@ -868,6 +895,11 @@
        //获取用户ID
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
        MemberEntity member = memberDao.selectById(memberId);
        String golden_limit_transfer = redisUtils.getString("GOLDEN_LIMIT_TRANSFER");
        // 判断是否限制
        if(StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getPhone())){
            return Result.fail("此账号有财务问题,需联系客服");
        }
        if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) {
            return Result.fail(MessageSourceUtils.getString("member_service_0077"));
        }
@@ -900,6 +932,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);
@@ -917,6 +950,7 @@
                accountRecord.setContent("提币");
                accountRecord.setMemberId(memberId);
                accountRecord.setAmount(coinNumber);
                accountRecord.setWithdrawId(memberCoinWithdrawEntity.getId());
                accountRecord.setStatus(MemberAccountMoneyChange.STATUS_WAIT_INTEGER);
                accountRecord.setSymbol(memberSubmitCoinApplyDto.getSymbol());
                accountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
@@ -950,22 +984,39 @@
        return Result.ok("");
    }
   @Override
   public Result getAppVersionInfo() {
   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);
   }
    @Override
    public Result getAppVersionInfo() {
        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);
    }
    @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);
    }
}