From 123fb7d4647a203d2b33ef51de56890f38491f9c Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 01 Jul 2024 16:54:17 +0800 Subject: [PATCH] 后台 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 302 +++++++++++++++++-------------------------------- 1 files changed, 106 insertions(+), 196 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index 7e3ce7b..4ed53bf 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -114,7 +114,6 @@ mallMember.setAccountLogin(accountLogin); mallMember.setPassword(SecureUtil.md5(registerDto.getPassword())); mallMember.setUserKey(userKey); - mallMember.setTradePassword(SecureUtil.md5(registerDto.getTradePassword())); Integer count = this.baseMapper.selectCount(null); if (count != null && count != 0) { @@ -124,16 +123,11 @@ } mallMember.setReferrerId(registerDto.getInviteId()); } -// mallMember.setName(registerDto.getName()); -// mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE); mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode()); mallMember.setIsFrozen(ProductEnum.MEMBER_UNFROZEN.getValue()); mallMember.setPartner(2); -// mallMember.setSex("男"); -// mallMember.setBindPhone(registerDto.getAccount()); - this.baseMapper.insert(mallMember); String inviteId = ShareCodeUtil.toSerialNumberCodeTwo(mallMember.getId()); @@ -170,17 +164,10 @@ MallMemberWallet wallet = new MallMemberWallet(); wallet.setMemberId(mallMember.getId()); mallMemberWalletMapper.insert(wallet); - MallMemberAmount mallMemberAmount = new MallMemberAmount(); - mallMemberAmount.setMemberId(mallMember.getId()); - mallMemberAmountMapper.insert(mallMemberAmount); - - MallMemberPayment mallMemberPayment = new MallMemberPayment(); - mallMemberPayment.setMemberId(mallMember.getId()); - mallMemberPaymentMapper.insert(mallMemberPayment); ApiRegisterVo apiRegisterVo = new ApiRegisterVo(); apiRegisterVo.setAccount(mallMember.getAccountLogin()); - apiRegisterVo.setUserKey(mallMember.getUserKey()); + apiRegisterVo.setUserKey(registerDto.getPassword()); return new FebsResponse().success().data(apiRegisterVo); } @@ -192,8 +179,8 @@ if (mallMember == null) { throw new FebsException("账号或密码错误"); } - if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) { - throw new FebsException("账号限制登录"); + if (ProductEnum.MEMBER_FROZEN.getValue() == mallMember.getIsFrozen()) { + throw new FebsException("账号已冻结"); } String redisKey = AppContants.APP_LOGIN_PREFIX + mallMember.getId(); @@ -253,115 +240,14 @@ MallMember mallMember = this.baseMapper.selectById(id); MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember); - - MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId()); - if (referMember != null) { - mallMemberVo.setReferrerName(referMember.getName()); - } - - MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(id); - if (payment != null) { - mallMemberVo.setHasPayment(1); - } - - DataDictionaryCustom nftMinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.NFT_MIN.getType(), - DataDictionaryEnum.NFT_MIN.getCode()); - mallMemberVo.setNftMin(ObjectUtil.isEmpty(nftMinDic) ? new BigDecimal(100) : new BigDecimal(nftMinDic.getValue())); - - DataDictionaryCustom outFcmMinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.OUT_FCM_MIN.getType(), - DataDictionaryEnum.OUT_FCM_MIN.getCode()); - mallMemberVo.setOutFcmMin(ObjectUtil.isEmpty(outFcmMinDic) ? new BigDecimal(100) : new BigDecimal(outFcmMinDic.getValue())); - - DataDictionaryCustom fcmPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.FCM_PRICE.getType(), - DataDictionaryEnum.FCM_PRICE.getCode()); - mallMemberVo.setFcmPrice(ObjectUtil.isEmpty(fcmPriceDic) ? new BigDecimal(8) : new BigDecimal(fcmPriceDic.getValue())); - - DataDictionaryCustom outFcmFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.OUT_FCM_FEE.getType(), - DataDictionaryEnum.OUT_FCM_FEE.getCode()); - mallMemberVo.setOutFcmFee(ObjectUtil.isEmpty(outFcmFeeDic) ? new BigDecimal(20) : new BigDecimal(outFcmFeeDic.getValue())); - - DataDictionaryCustom nftFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.NFT_FEE.getType(), - DataDictionaryEnum.NFT_FEE.getCode()); - BigDecimal nftFeePercent = ObjectUtil.isEmpty(nftFeeDic) ? new BigDecimal(20) : new BigDecimal(nftFeeDic.getValue()); - mallMemberVo.setNftFee(nftFeePercent); - - DataDictionaryCustom memberFrozenFcmCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.MEMBER_FROZEN_FCM_CNT.getType(), - DataDictionaryEnum.MEMBER_FROZEN_FCM_CNT.getCode() - ); - BigDecimal memberFrozenFcmCnt = ObjectUtil.isEmpty(memberFrozenFcmCntDic) ? new BigDecimal(100) : new BigDecimal(memberFrozenFcmCntDic.getValue()); - mallMemberVo.setUnfrozenCnt(memberFrozenFcmCnt); - - DataDictionaryCustom insureMinuteDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.INSURE_END_MINUTE.getType(), - DataDictionaryEnum.INSURE_END_MINUTE.getCode() - ); - Integer insureMinute = Integer.parseInt(ObjectUtil.isEmpty(insureMinuteDic) ? "60" : insureMinuteDic.getValue()); - mallMemberVo.setMinuteCnt(insureMinute); - - DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(mallMember.getLevel(), mallMember.getLevel()); - if (dic != null) { - mallMemberVo.setLevelName(dic.getDescription()); - }else{ - mallMemberVo.setLevelName("非会员"); - } - MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallMember.getId()); - mallMemberVo.setGsd(mallMemberAmount.getGsd()); - mallMemberVo.setStaticNft(mallMemberAmount.getStaticNft()); - mallMemberVo.setTrendsNft(mallMemberAmount.getTrendsNft()); - mallMemberVo.setFrozenNft(mallMemberAmount.getFrozenNft()); - mallMemberVo.setFcmCntAva(mallMemberAmount.getFcmCntAva()); - mallMemberVo.setFcmCntFrozen(mallMemberAmount.getFcmCntFrozen()); - mallMemberVo.setTokenAva(mallMemberAmount.getTokenAva()); - mallMemberVo.setTokenFrozen(mallMemberAmount.getTokenFrozen()); - mallMemberVo.setTotalPerk(mallMemberAmount.getTotalPerk()); - DataDictionaryCustom startTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.YU_YUE_START_TIME.getType(), - DataDictionaryEnum.YU_YUE_START_TIME.getCode() - ); - mallMemberVo.setStartTime(startTimeDic.getValue()); - DataDictionaryCustom endTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.YU_YUE_END_TIME.getType(), - DataDictionaryEnum.YU_YUE_END_TIME.getCode() - ); - mallMemberVo.setEndTime(endTimeDic.getValue()); - - Integer pickCount = mallProductBuyMapper.selectListByMemberIdAndState(id); - mallMemberVo.setPickCount(pickCount); - -// BigDecimal totalPerk = mallProductBuyMapper.selectTotalPerkByMemberId(mallMember.getId()); -// mallMemberVo.setTotalPerk(totalPerk); - - DataDictionaryCustom insideNFTPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getType(), - DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getCode() - ); - mallMemberVo.setInsideNFTPercent(insideNFTPercentDic.getValue()); + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallMember.getId()); + mallMemberVo.setBalance(mallMemberWallet.getBalance()); DataDictionaryCustom chargeAddressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( DataDictionaryEnum.CHARGE_ADDRESS.getType(), DataDictionaryEnum.CHARGE_ADDRESS.getCode() ); - mallMemberVo.setChargeAddress(chargeAddressDic.getValue()); - - DataDictionaryCustom withdrawAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.WITHDRAW_AMOUNT.getType(), - DataDictionaryEnum.WITHDRAW_AMOUNT.getCode() - ); - BigDecimal withdrawAmount = new BigDecimal(withdrawAmountDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN); - mallMemberVo.setWithdrawAmount(withdrawAmount); - - DataDictionaryCustom usdtPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.USDT_PRICE.getType(), - DataDictionaryEnum.USDT_PRICE.getCode() - ); - BigDecimal usdtPrice = new BigDecimal(usdtPriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN); - mallMemberVo.setUsdtPrice(usdtPrice); + mallMemberVo.setSysAddress(chargeAddressDic.getValue()); return new FebsResponse().success().data(mallMemberVo); } @@ -416,90 +302,98 @@ } @Override - public FebsResponse teamList(TeamListDto teamListDto) { - Long memberId = null; - if (teamListDto.getId() == null) { - memberId = LoginUserUtil.getLoginUser().getId(); - } else { - memberId = teamListDto.getId(); - } - + public FebsResponse teamList() { + Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = this.baseMapper.selectById(memberId); - List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId()); - MyTeamVo myTeamVo = new MyTeamVo(); - myTeamVo.setTeam(list); - BigDecimal myAchieve = this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1); - myTeamVo.setMyAchieve(myAchieve); - BigDecimal myTeamAchieve = this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2); - myTeamVo.setMyTeamAchieve(myTeamAchieve.add(myAchieve)); - myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size()); + /** + * 团队人数,只有直属两级 + */ + ArrayList<Long> memberIdList = new ArrayList<>(); + memberIdList.add(memberId); + + QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("referrer_id",mallMember.getInviteId()); + List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper); + if(CollUtil.isNotEmpty(mallMembers)){ + for(MallMember directMember : mallMembers){ + //第一代 + memberIdList.add(directMember.getId()); + + QueryWrapper<MallMember> directWrapper = new QueryWrapper<>(); + directWrapper.eq("referrer_id",directMember.getInviteId()); + List<MallMember> refMembers = this.baseMapper.selectList(directWrapper); + if(CollUtil.isNotEmpty(refMembers)){ + for(MallMember refMember : refMembers){ + //第二代 + memberIdList.add(refMember.getId()); + } + } + } + } + BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumAmountByMemberIdAndType(memberIdList,GameFlowTypeEnum.PLAYER_CHARGE.getValue()); + + myTeamVo.setMyTeamCnt(memberIdList.size()); + myTeamVo.setMyAchieve(chargeAmount); return new FebsResponse().success().data(myTeamVo); } @Override - public FebsResponse teamFcmList(TeamListDto teamListDto) { - Long memberId = null; - if (ObjectUtil.isEmpty(teamListDto.getId())) { - memberId = LoginUserUtil.getLoginUser().getId(); - } else { - memberId = teamListDto.getId(); - } - + public FebsResponse teamFcmList() { + Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = this.baseMapper.selectById(memberId); - MyFcmTeamVo myTeamVo = new MyFcmTeamVo(); - myTeamVo.setMemberId(mallMember.getId()); - myTeamVo.setAccountLogin(mallMember.getAccountLogin()); - myTeamVo.setIsFrozen(mallMember.getIsFrozen()); - myTeamVo.setLevelName(MemberLevelNewEnum.ZERO_LEVEL.getLevelName(mallMember.getLevel())); - BigDecimal myAchieveBuy = this.baseMapper.selectAchieveBuyByMemberId(mallMember.getInviteId(), 1); - myTeamVo.setMyAchieveBuy(myAchieveBuy); - BigDecimal myAchieveSell = this.baseMapper.selectAchieveSellByMemberId(mallMember.getInviteId(), 1); - myTeamVo.setMyAchieveSell(myAchieveSell); - BigDecimal myTeamAchieveBuy = this.baseMapper.selectAchieveBuyByMemberId(mallMember.getInviteId(), 2); - myTeamVo.setMyTeamAchieveBuy(myTeamAchieveBuy.add(myAchieveBuy)); - BigDecimal myTeamAchieveSell = this.baseMapper.selectAchieveSellByMemberId(mallMember.getInviteId(), 2); - myTeamVo.setMyTeamAchieveSell(myTeamAchieveSell.add(myAchieveSell)); - myTeamVo.setMyTeamMemberCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size()); - Integer buyCnt = this.baseMapper.selectAchieveBuyOrderCntByMemberId(mallMember.getInviteId()); - Integer sellCnt = this.baseMapper.selectAchieveSellOrderCntByMemberId(mallMember.getInviteId()); - myTeamVo.setMyTeamOrderCnt(buyCnt+sellCnt); + ArrayList<MyFcmTeamVo> myFcmTeamVos = new ArrayList<>(); + /** + * 团队人数,只有直属两级 + */ + ArrayList<Long> memberIdList = new ArrayList<>(); + memberIdList.add(memberId); - List<MallMember> mallMembersDirects = this.baseMapper.selectChildAgentListByInviteId(mallMember.getInviteId()); - List<MyFcmTeamVo> list = new ArrayList<>(); - if(CollUtil.isNotEmpty(mallMembersDirects)){ - for(MallMember mallMembersDirect : mallMembersDirects){ - MyFcmTeamVo myTeamDirectVo = new MyFcmTeamVo(); - myTeamDirectVo.setMemberId(mallMembersDirect.getId()); - myTeamDirectVo.setAccountLogin(mallMembersDirect.getAccountLogin()); - myTeamDirectVo.setIsFrozen(mallMembersDirect.getIsFrozen()); - myTeamDirectVo.setLevelName( - dataDictionaryCustomMapper.selectDicDataByTypeAndCode(mallMembersDirect.getLevel(),mallMembersDirect.getLevel()).getDescription() - ); + QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("referrer_id",mallMember.getInviteId()); + List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper); + if(CollUtil.isNotEmpty(mallMembers)){ + for(MallMember directMember : mallMembers){ + //第一代 + memberIdList.add(directMember.getId()); - BigDecimal myAchieveBuyDirect = this.baseMapper.selectAchieveBuyByMemberId(mallMembersDirect.getInviteId(), 1); - myTeamDirectVo.setMyAchieveBuy(myAchieveBuyDirect); - BigDecimal myAchieveSellDirect = this.baseMapper.selectAchieveSellByMemberId(mallMembersDirect.getInviteId(), 1); - myTeamDirectVo.setMyAchieveSell(myAchieveSellDirect); - BigDecimal myTeamAchieveBuyDirect = this.baseMapper.selectAchieveBuyByMemberId(mallMembersDirect.getInviteId(), 2); - myTeamDirectVo.setMyTeamAchieveBuy(myTeamAchieveBuyDirect.add(myAchieveBuyDirect)); - BigDecimal myTeamAchieveSellDirect = this.baseMapper.selectAchieveSellByMemberId(mallMembersDirect.getInviteId(), 2); - myTeamDirectVo.setMyTeamAchieveSell(myTeamAchieveSellDirect.add(myAchieveSellDirect)); - myTeamDirectVo.setMyTeamMemberCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMembersDirect.getInviteId()).size()); - Integer buyCntDirect = this.baseMapper.selectAchieveBuyOrderCntByMemberId(mallMembersDirect.getInviteId()); - Integer sellCntDirect = this.baseMapper.selectAchieveSellOrderCntByMemberId(mallMembersDirect.getInviteId()); - myTeamDirectVo.setMyTeamOrderCnt(buyCntDirect+sellCntDirect); - list.add(myTeamDirectVo); + QueryWrapper<MallMember> directWrapper = new QueryWrapper<>(); + directWrapper.eq("referrer_id",directMember.getInviteId()); + List<MallMember> refMembers = this.baseMapper.selectList(directWrapper); + if(CollUtil.isNotEmpty(refMembers)){ + for(MallMember refMember : refMembers){ + //第二代 + memberIdList.add(refMember.getId()); + } + } } } - myTeamVo.setTeam(list); + for(Long id : memberIdList){ + MyFcmTeamVo myFcmTeamVo = new MyFcmTeamVo(); + MallMember member = this.baseMapper.selectById(id); + myFcmTeamVo.setAccountLogin(member.getAccountLogin()); + BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_CHARGE.getValue()); + myFcmTeamVo.setChargeAmount(chargeAmount); - return new FebsResponse().success().data(myTeamVo); + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(id); + myFcmTeamVo.setBalance(mallMemberWallet.getBalance()); + + BigDecimal amountBuy = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PICK_NUM.getValue()); + myFcmTeamVo.setAmountBuy(amountBuy); + + BigDecimal playerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PERK.getValue()); + BigDecimal ownerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.OWNER_PERK.getValue()); + myFcmTeamVo.setAmountPerk(amountBuy.add(playerPerk).add(ownerPerk)); + + myFcmTeamVos.add(myFcmTeamVo); + } + + return new FebsResponse().success().data(myFcmTeamVos); } @Override @@ -512,7 +406,6 @@ IPage<MoneyFlowVo> page = new Page<>(moneyFlowDto.getPageNum(), moneyFlowDto.getPageSize()); Long id = LoginUserUtil.getLoginUser().getId(); moneyFlowDto.setMemberId(id); -// IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiMoneyFlowInPage(page, moneyFlowDto); IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiFcmMoneyFlowInPage(page, moneyFlowDto); return new FebsResponse().success().data(pages); } @@ -1048,6 +941,10 @@ public FebsResponse chargeBalance(ApiChargeBalanceDto apiChargeBalanceDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = this.baseMapper.selectById(memberId); + if(ObjectUtil.isEmpty(mallMember.getBindPhone())){ + throw new FebsException("请绑定充值提取地址"); + } + String address = mallMember.getBindPhone(); BigDecimal amount = apiChargeBalanceDto.getAmount(); DataDictionaryCustom chargeAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( DataDictionaryEnum.CHARGE_AMOUNT.getType(), @@ -1058,21 +955,34 @@ throw new FebsException("充值金额需要大于"+chargeAmount); } - if (StrUtil.isBlank(mallMember.getTradePassword())) { - throw new FebsException("请设置交易密码"); - } - - if (!mallMember.getTradePassword().equals(SecureUtil.md5(apiChargeBalanceDto.getTradePassword()))) { - throw new FebsException("交易密码错误"); - } MallMemberCharge mallMemberCharge = new MallMemberCharge(); mallMemberCharge.setMemberId(memberId); mallMemberCharge.setAmount(amount); - mallMemberCharge.setAddress(apiChargeBalanceDto.getAddress()); + mallMemberCharge.setAddress(address); mallMemberCharge.setState(1); mallMemberChargeMapper.insert(mallMemberCharge); + return new FebsResponse().success().message("操作成功"); + } + @Override + public FebsResponse bindAddress(ApiBindAddressDto apiBindAddressDto) { + Long memberId = LoginUserUtil.getLoginUser().getId(); + + MallMember mallMember = this.baseMapper.selectById(memberId); + if(ObjectUtil.isNotEmpty(mallMember.getBindPhone())){ + throw new FebsException("账号已绑定,请勿重复提交"); + } + + String address = apiBindAddressDto.getAddress().toLowerCase(); + QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("bind_phone",address); + List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper); + if(CollUtil.isNotEmpty(mallMembers)){ + throw new FebsException("请使用未绑定的地址"); + } + mallMember.setBindPhone(address); + this.baseMapper.updateById(mallMember); return new FebsResponse().success().message("操作成功"); } -- Gitblit v1.9.1