From df51a79a9e09e0273cc50d966ad136efe8b99100 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 01 Mar 2022 10:46:32 +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 | 151 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 117 insertions(+), 34 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..301e739 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 @@ -5,6 +5,8 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.contants.AppContants; @@ -14,21 +16,16 @@ 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.dao.ZhiYaDao; +import com.xcong.excoin.modules.coin.dao.ZhiYaRecordDao; import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; +import com.xcong.excoin.modules.coin.entity.ZhiYaEntity; +import com.xcong.excoin.modules.coin.entity.ZhiYaRecordEntity; +import com.xcong.excoin.modules.coin.entity.ZhiYaTeam; +import com.xcong.excoin.modules.coin.parameter.vo.ZhiyaInfoVo; import com.xcong.excoin.modules.member.dao.*; import com.xcong.excoin.modules.member.entity.*; -import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberAuthenticationDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberBindEmailDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberBindPhoneDto; -import com.xcong.excoin.modules.member.parameter.dto.MemberDelCoinAddressDto; -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.dto.*; import com.xcong.excoin.modules.member.parameter.vo.*; import com.xcong.excoin.modules.member.service.MemberService; import com.xcong.excoin.modules.platform.dao.PlatformFeeSettingDao; @@ -41,9 +38,11 @@ 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; +import org.web3j.abi.datatypes.Int; import java.math.BigDecimal; import java.util.ArrayList; @@ -66,6 +65,9 @@ private MemberDao memberDao; @Resource + private ZhiYaRecordDao zhiYaRecordDao; + + @Resource private MemberWalletAgentDao memberWalletAgentDao; @Resource @@ -76,6 +78,9 @@ @Resource private MemberWalletCoinDao memberWalletCoinDao; + + @Resource + private ZhiYaDao zhiYaDao; @Resource private MemberLevelRateDao memberLevelRateDao; @@ -106,6 +111,8 @@ @Resource AppVersionDao appVersionDao; + @Resource + private MemberSettingDao memberSettingDao; @Resource private MemberWalletContractSimulateDao memberWalletContractSimulateDao; @@ -142,22 +149,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,13 +174,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; } @@ -210,6 +222,14 @@ walletCoin.setBorrowedFund(AppContants.INIT_MONEY); memberWalletCoinDao.insert(walletCoin); } + + //初始化质押 + ZhiYaEntity zhiYaEntity = new ZhiYaEntity(); + zhiYaEntity.setMemberId(member.getId()); + zhiYaEntity.setAvailableBalance(AppContants.INIT_MONEY); + zhiYaEntity.setFrozenBalance(AppContants.INIT_MONEY); + zhiYaEntity.setTotalBalance(AppContants.INIT_MONEY); + zhiYaDao.insert(zhiYaEntity); // 初始化代理佣金钱包 MemberWalletAgentEntity walletAgent = new MemberWalletAgentEntity(); @@ -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); } } @@ -995,6 +1032,52 @@ } return Result.ok(arrayList); } + + @Override + public Result memberTeam(MemberTeamRecordsPageDto memberTeamRecordsPageDto) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + MemberEntity member = memberDao.selectById(memberId); + MemberTeamVo memberTeamVo = memberDao.selectAllTeamByInviteIdInPage(memberId,member.getInviteId()); + List<TeamVo> teamVos = new ArrayList<>(); + 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); + return Result.ok(memberTeamVoNull); + } + //直属会员 + List<MemberEntity> memberZhiShu = memberDao.selectMemberInfoByRefererId(member.getInviteId()); + if(CollUtil.isNotEmpty(memberZhiShu)){ + for(MemberEntity zhishu : memberZhiShu){ + Long zhiShuMemberId = zhishu.getId(); + ZhiYaTeam zhiYaTeam = memberDao.selectZhiYaTeamRecordByMemberId(zhiShuMemberId); + 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); + + Long aLong = zhiYaRecordDao.selectSumZhiyaCntByMemberIdAndOrderStatus(zhiShuMemberId, 1); + Long rLong = zhiYaRecordDao.selectSumRewardCntByMemberId(zhiShuMemberId); + teamVo.setZhiyaCnt(new BigDecimal(aLong)); + teamVo.setRewardCnt(new BigDecimal(rLong)); + if(ObjectUtil.isNotEmpty(zhiYaTeam)){ + teamVo.setZhiyaCnt((zhiYaTeam.getZhiyaCnt() == null ? BigDecimal.ZERO : zhiYaTeam.getZhiyaCnt()).add(new BigDecimal(aLong))); + teamVo.setRewardCnt(zhiYaTeam.getRewardCnt() == null ?BigDecimal.ZERO : zhiYaTeam.getRewardCnt().add(new BigDecimal(rLong))); + } + teamVos.add(teamVo); + } + memberTeamVo.setTeamVo(teamVos); + } + return Result.ok(memberTeamVo); + } } -- Gitblit v1.9.1