From 51143d89c943f7c837218e024aa6c5017913d8f8 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 04 Mar 2022 15:48:24 +0800 Subject: [PATCH] 20222223 --- src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 200 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 194 insertions(+), 6 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 a6addc9..fac65f8 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 @@ -17,8 +17,11 @@ 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.*; @@ -39,6 +42,7 @@ 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; @@ -61,6 +65,9 @@ private MemberDao memberDao; @Resource + private ZhiYaRecordDao zhiYaRecordDao; + + @Resource private MemberWalletAgentDao memberWalletAgentDao; @Resource @@ -71,6 +78,9 @@ @Resource private MemberWalletCoinDao memberWalletCoinDao; + + @Resource + private MemberCoinAddressInDao memberCoinAddressInDao; @Resource private ZhiYaDao zhiYaDao; @@ -1031,12 +1041,190 @@ //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); MemberEntity member = memberDao.selectById(memberId); - Page<MemberTeamVo> page = new Page<>(memberTeamRecordsPageDto.getPageNum(), memberTeamRecordsPageDto.getPageSize()); - MemberEntity memberEntity = new MemberEntity(); - memberEntity.setId(memberId); - memberEntity.setInviteId(member.getInviteId()); - IPage<MemberTeamVo> lists = memberDao.selectAllTeamByInviteIdInPage(page, memberEntity); - return Result.ok(lists); + 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); + //直属会员 + 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); + } + 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); + } + + @Override + 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")); + } } } -- Gitblit v1.9.1