From cfe81b28c817fe4543da6de5fa169ca1e69c7afd Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 14 Jul 2020 11:02:49 +0800 Subject: [PATCH] 20200714 代码提交 --- src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 298 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 270 insertions(+), 28 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 867a793..b0c39a3 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 @@ -7,6 +7,7 @@ import com.xcong.excoin.common.entity.FebsResponse; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; +import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; import com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity; import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; @@ -14,6 +15,7 @@ import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity; import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; +import com.xcong.excoin.modules.member.mapper.AgentFriendRelationMapper; import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper; import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper; import com.xcong.excoin.modules.member.mapper.MemberCoinAddressMapper; @@ -26,15 +28,19 @@ import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo; import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo; import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo; +import com.xcong.excoin.modules.member.vo.MemberDataInfoVo; import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo; import com.xcong.excoin.modules.member.vo.MemberQuickSaleVo; import lombok.RequiredArgsConstructor; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.validation.Valid; import javax.validation.constraints.NotNull; @@ -64,6 +70,112 @@ private final MemberCoinAddressMapper memberCoinAddressMapper; private final MemberAuthenticationMapper memberAuthenticationMapper; + + private final AgentFriendRelationMapper agentFriendRelationMapper; + + @Override + public IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity, + QueryRequest request) { + Page<AgentFriendRelationEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AgentFriendRelationEntity> findmemberQuickBuySaleListInPage = agentFriendRelationMapper.findAgentFriendRelationListInPage(page, agentFriendRelationEntity); + List<AgentFriendRelationEntity> records = findmemberQuickBuySaleListInPage.getRecords(); + List<AgentFriendRelationEntity> arraylist = new ArrayList<>(); + if(records != null && records.size() > 0) { + for(AgentFriendRelationEntity agentFriendRelation : records) { + String inviteId = agentFriendRelation.getInviteId(); + if("90457646".equals(inviteId)) { + //该邀请码下的所有代理 + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("referer_id", "90457646"); + List<AgentFriendRelationEntity> selectByMap = agentFriendRelationMapper.selectByMap(columnMap); + + if(selectByMap != null && selectByMap.size() > 0) { + int i = 1; + for(AgentFriendRelationEntity agentFriendRelationEntityTeam : selectByMap){ + agentFriendRelationEntityTeam.setTeam(i+""); + arraylist.add(agentFriendRelationEntityTeam); + String inviteIdTeam = agentFriendRelationEntityTeam.getInviteId(); + // 当前邀请码下的所有代理MemberID + List<AgentFriendRelationEntity> lowLevelList = agentFriendRelationMapper.selectAgentFriendRelationByMap(inviteIdTeam); + if(lowLevelList != null && lowLevelList.size() > 0) { + for(AgentFriendRelationEntity lowLevelAgentFriendRelationEntity: lowLevelList) { + lowLevelAgentFriendRelationEntity.setTeam(i+""); + arraylist.add(lowLevelAgentFriendRelationEntity); + } + } + i++; + } + } + } + if(arraylist != null && arraylist.size() > 0) { + for(AgentFriendRelationEntity teamagentFriendRelationEntity : arraylist) { + if(inviteId.equals(teamagentFriendRelationEntity.getInviteId())) { + String team = teamagentFriendRelationEntity.getTeam(); + agentFriendRelation.setTeam(team); + } + } + } + } + } + + + + + if(records != null && records.size() > 0) { + for(AgentFriendRelationEntity agentFriendRelation : records) { + List<String> arrayList = new ArrayList<>(); + String inviteId = agentFriendRelation.getInviteId(); + String inviteIdCZ = null; + String inviteIdTX = null; + String inviteIdSY = null; + // 当前邀请码下的所有代理MemberID + List<AgentFriendRelationEntity> lowLevelList = agentFriendRelationMapper.selectAgentFriendRelationByMap(inviteId); + + List<String> memberLevel = memberMapper.selectMemberBylowLevelInviteId(inviteId); + arrayList.addAll(memberLevel); + if(lowLevelList != null && lowLevelList.size() > 0) { + for(AgentFriendRelationEntity lowLevelMemberId : lowLevelList) { + Long memberId = lowLevelMemberId.getMemberId(); + arrayList.add(memberId.toString()); + List<String> memberlowLevel = memberMapper.selectMemberBylowLevelInviteId(lowLevelMemberId.getInviteId()); + arrayList.addAll(memberlowLevel); + } + Set<String> set = new HashSet<>(); + List<String> newList = new ArrayList<>(); + set.addAll(arrayList); + newList.addAll(set); + //获取对应的充值提现 + double czNumber = 0; + double txNumber = 0; + if(newList != null && newList.size() > 0) { + agentFriendRelation.setPromotionNumber(newList.size()); + for(String memberId : newList) { + //充币 + String selectCBByMemberId = memberCoinChargeMapper.selectCBByMemberId(memberId); + //充值 + String selectCZByMemberI = memberQuickBuySaleMapper.selectCZByMemberId(memberId); + //提币 + String selectTBByMemberId = memberCoinWithdrawMapper.selectTBByMemberId(memberId); + //提现 + String selectTXByMemberId = memberQuickBuySaleMapper.selectTXByMemberId(memberId); + + czNumber = czNumber + (selectCBByMemberId == null ? 0 : Double.parseDouble(selectCBByMemberId)); + czNumber = czNumber + (selectCZByMemberI == null ? 0 : Double.parseDouble(selectCZByMemberI)); + txNumber = txNumber + (selectTBByMemberId == null ? 0 : Double.parseDouble(selectTBByMemberId)); + txNumber = txNumber + (selectTXByMemberId == null ? 0 : Double.parseDouble(selectTXByMemberId)); + } + } + inviteIdCZ = czNumber+""; + inviteIdTX = txNumber+""; + inviteIdSY = (czNumber-txNumber)+""; + } + agentFriendRelation.setTotalRecharge(inviteIdCZ == null ? "0.0" : inviteIdCZ); + agentFriendRelation.setTotalWithdrawal(inviteIdTX == null ? "0.0" : inviteIdTX); + agentFriendRelation.setTotalPerformance(inviteIdSY == null ? "0.0" : inviteIdSY); + } + } + return findmemberQuickBuySaleListInPage; + } @Override @@ -296,7 +408,7 @@ BigDecimal total = walletCoin.getTotalBalance().subtract(selectById.getAmount()).subtract(selectById.getFeeAmount()); walletCoin.setTotalBalance(total); - BigDecimal frozen = walletCoin.getFrozenBalance().subtract(selectById.getAmount()).subtract(selectById.getFeeAmount()); + BigDecimal frozen = walletCoin.getFrozenBalance().subtract(selectById.getAmount()); walletCoin.setFrozenBalance(frozen); memberWalletCoinMapper.updateById(walletCoin); @@ -334,18 +446,14 @@ memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); } - MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); - memberAccountMoneyChangeEntity.setContent("提币"); - memberAccountMoneyChangeEntity.setMemberId(memberId); - memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); + Map<String, Object> columnMaps = new HashMap<>(); + columnMaps.put("withdraw_id", selectById.getId()); + List<MemberAccountMoneyChangeEntity> selectByMap2 = memberAccountMoneyChangeMapper.selectByMap(columnMaps); + + MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = selectByMap2.get(0); memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); - memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol()); - memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); - memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); - memberAccountMoneyChangeEntity.setCreateTime(new Date()); - memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); - memberAccountMoneyChangeEntity.setUpdateTime(new Date()); - memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); + memberAccountMoneyChangeEntity.setAmount(selectById.getAmount().negate()); + memberAccountMoneyChangeMapper.updateById(memberAccountMoneyChangeEntity); selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_Y); memberCoinWithdrawMapper.updateById(selectById); @@ -375,26 +483,22 @@ // 查询币币钱包 MemberWalletCoinEntity walletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId, symbol); - BigDecimal available = walletCoin.getAvailableBalance().add(selectById.getAmount()).add(selectById.getFeeAmount()); + BigDecimal available = walletCoin.getAvailableBalance().add(selectById.getAmount()); walletCoin.setAvailableBalance(available); - BigDecimal frozen = walletCoin.getFrozenBalance().subtract(selectById.getAmount()).subtract(selectById.getFeeAmount()); + BigDecimal frozen = walletCoin.getFrozenBalance().subtract(selectById.getAmount()); walletCoin.setFrozenBalance(frozen); memberWalletCoinMapper.updateById(walletCoin); // 提币退款记录 - MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); - memberAccountMoneyChangeEntity.setContent("提币"); - memberAccountMoneyChangeEntity.setMemberId(memberId); - memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); + Map<String, Object> columnMaps = new HashMap<>(); + columnMaps.put("withdraw_id", selectById.getId()); + List<MemberAccountMoneyChangeEntity> selectByMap2 = memberAccountMoneyChangeMapper.selectByMap(columnMaps); + + MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = selectByMap2.get(0); memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_FAIL_INTEGER); - memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol()); - memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); - memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); - memberAccountMoneyChangeEntity.setCreateTime(new Date()); - memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); - memberAccountMoneyChangeEntity.setUpdateTime(new Date()); - memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); + memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); + memberAccountMoneyChangeMapper.updateById(memberAccountMoneyChangeEntity); selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_N); memberCoinWithdrawMapper.updateById(selectById); @@ -419,13 +523,151 @@ if(!MemberEntity.CERTIFY_STATUS_ING.equals(certifyStatus)) { return new FebsResponse().fail().message("只有【待审核】状态才能提交!"); } - MemberAuthenticationVo memberAuthenticationEntity = memberAuthenticationMapper.findMemberAuthenticationByMemberId(id); - selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_Y); - selectById.setIdcardNo(memberAuthenticationEntity.getIdcardNo()); + if(memberDetailConfirmDto.getIsok() == 1) { + selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_Y); + }else { + selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_N); + } + selectById.setIdcardNo(memberAuthenticationEntity.getIdcardNo()); memberMapper.updateById(selectById); return new FebsResponse().success(); } + @Override + public List<MemberCoinChargeEntity> selectMemberDataInfoById(long id) { + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", id); + List<MemberCoinChargeEntity> selectByMap = memberCoinChargeMapper.selectByMap(columnMap); + return selectByMap; + } + + @Override + public IPage<MemberDataInfoVo> findMemberDataInfoDtoListInPage(MemberEntity memberEntity, + QueryRequest request) { + Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.selectMemberDataInfoDtoListInPage(page, memberEntity); + //USDT充币总额+USDT提币总额 + String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealData(); + String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealData(); + //USDT充值总额+USDT提现总额 + String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealData(); + String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealData(); + //佣金 + String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealData(); + //开仓手续费总额 + String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealData(); + //平仓总手续费 + String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealData(); + + //总盈亏 + String rewardratioByMid = memberMapper.selectRewardratioForBasicRealData(); + + //持仓人数 + String notNullNumber = memberMapper.selectSFCCForBasicRealData(); + //币币账户不为空的人数 + String walletNumber = memberMapper.selectBBZHForBasicRealData(); + //合约账户不为空的人数 + String walletCoinNumber = memberMapper.selectHYZHForBasicRealData(); + //持仓手续费 + String doingPrice = memberMapper.selectprepriceForBasicRealData(); + + //账户金额 + String walletNum = memberMapper.selectBBZCForBasicRealData(); + String walletCoinNum = memberMapper.selectHYZCForBasicRealData(); + String agentNum = memberMapper.selectDLZCForBasicRealData(); + + double platformProfitAndLoss = 0 ; + platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB)); + platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ)); + platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS)); + platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX)); + List<MemberDataInfoVo> records = selectMemberListInPage.getRecords(); + for(MemberDataInfoVo memberDataInfoVo : records) { + memberDataInfoVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ)); + memberDataInfoVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX)); + memberDataInfoVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB)); + memberDataInfoVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS)); + memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid); + memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid); + memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid); + memberDataInfoVo.setYingkui(rewardratioByMid == null ? "0" : rewardratioByMid); + memberDataInfoVo.setNotNullNumber(notNullNumber == null ? "0" : notNullNumber); + memberDataInfoVo.setWalletNumber(walletNumber == null ? "0" : walletNumber); + memberDataInfoVo.setWalletCoinNumber(walletCoinNumber == null ? "0" : walletCoinNumber); + memberDataInfoVo.setPlatformProfitAndLoss(platformProfitAndLoss == 0 ? "0" : platformProfitAndLoss+""); + memberDataInfoVo.setDoingPrice(doingPrice == null ? "0" : doingPrice); + memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum); + memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum); + memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum); + } + selectMemberListInPage.setTotal(1); + return selectMemberListInPage; + } + + @Override + public MemberEntity selectMemberByid(long id) { + MemberEntity selectById = memberMapper.selectById(id); + return selectById; + } + + @Override + public FebsResponse memberDataInfoList(@NotNull(message = "{required}") long id) { + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", id); + columnMap.put("STATUS", 2); + List<MemberCoinWithdrawEntity> selectByMap = memberCoinWithdrawMapper.selectByMap(columnMap); + return new FebsResponse().data(selectByMap); + } + + + @Override + public FebsResponse addCoinConfirm(@Valid MemberEntity memberEntity) { + + Long memberId = memberEntity.getId(); + String walletCode = "USDT"; + BigDecimal amountUsdt = memberEntity.getCoinNumber(); + + MemberEntity selectById = this.baseMapper.selectById(memberId); + if(ObjectUtils.isEmpty(selectById)) { + return new FebsResponse().message("用户已不存在"); + } + //获取币币钱包 + MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode); + BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance(); + BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance(); + + memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amountUsdt)); + memberWalletCoinEntity.setTotalBalance(totalBalance.add(amountUsdt)); + // 更新 + memberWalletCoinMapper.updateById(memberWalletCoinEntity); + + //添加币币资金划转历史记录 + MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); + memberAccountMoneyChangeEntity.setContent("充值"); + memberAccountMoneyChangeEntity.setMemberId(memberId); + memberAccountMoneyChangeEntity.setAmount(amountUsdt); + memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); + memberAccountMoneyChangeEntity.setSymbol("USDT"); + memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); + memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); + memberAccountMoneyChangeEntity.setCreateTime(new Date()); + memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); + memberAccountMoneyChangeEntity.setUpdateTime(new Date()); + + memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); + /** + * todo + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String chargeTime = format.format(memberQuickBuySaleEntity.getChargeTime()); // 将当前时间袼式化为指定的格式 + String usdt = memberQuickBuySaleEntity.getAmountUsdt()+"USDT"; + //发送短信提醒 + String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"充值"+usdt+"已成功到账,请您及时查收!订单号为:"+memberChargeUsdt.getOrderCode()+"。"; + SmsUtils.hxSmsSend(member.getPhone(), smsContent); + + */ + return new FebsResponse().success(); + } + } -- Gitblit v1.9.1