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 | 364 ++++++++++++++++++++++++++------------------------- 1 files changed, 187 insertions(+), 177 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 60bf5ca..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 @@ -24,6 +24,7 @@ import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -36,6 +37,7 @@ import java.math.BigDecimal; import java.util.*; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -64,11 +66,25 @@ private final MallProductBuyRecordMapper mallProductBuyRecordMapper; private final MallProductBuyMapper mallProductBuyMapper; private final MallMemberSpeakMapper mallMemberSpeakMapper; + private final MallMemberChargeMapper mallMemberChargeMapper; @Value("${spring.profiles.active}") private String active; + private static final String ACCOUNT_PATTERN = "^[a-zA-Z0-9]{8,16}$"; + private static final Pattern pattern = Pattern.compile(ACCOUNT_PATTERN); + + + public static boolean validateAccount(String account) { + return pattern.matcher(account).matches(); + } + + public static void main(String[] args) { + String account = "example"; // 示例账号,可以根据需要替换 + boolean isValid = validateAccount(account); + System.out.println("账号是否有效: " + isValid); + } @Transactional(rollbackFor = Exception.class) @Override public FebsResponse register(RegisterDto registerDto) { @@ -79,6 +95,10 @@ * 返回账号和密钥给前端 */ String accountLogin = registerDto.getAccountLogin(); + boolean isValid = validateAccount(accountLogin); + if(!isValid){ + throw new FebsException("账号不规范。"); + } MallMember mallMember = this.baseMapper.selectByAccountLogin(accountLogin); if (mallMember != null) { throw new FebsException("账号已使用,请重新注册。"); @@ -94,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) { @@ -104,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()); @@ -150,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); } @@ -172,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(); @@ -233,88 +240,14 @@ MallMember mallMember = this.baseMapper.selectById(id); MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember); + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallMember.getId()); + mallMemberVo.setBalance(mallMemberWallet.getBalance()); - 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(2) : 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() + DataDictionaryCustom chargeAddressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.CHARGE_ADDRESS.getType(), + DataDictionaryEnum.CHARGE_ADDRESS.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()); - 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); + mallMemberVo.setSysAddress(chargeAddressDic.getValue()); return new FebsResponse().success().data(mallMemberVo); } @@ -369,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 @@ -465,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); } @@ -573,25 +513,40 @@ MoneyFlowTypeNewEnum.TOKEN_INSIDE_IN.getDescrition()); } if(3 == type){ + DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getType(), + DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getCode() + ); + BigDecimal feePercent = new BigDecimal("0.01").multiply(new BigDecimal(dataDictionaryCustom.getValue())); if (amount.compareTo(mallMemberAmountLogin.getTrendsNft()) > 0) { throw new FebsException("卡牌不足"); } + BigDecimal fee = amount.multiply(feePercent).setScale(2,BigDecimal.ROUND_DOWN); + BigDecimal amountReal = amount.subtract(fee); mallMemberAmountLogin.setTrendsNft(mallMemberAmountLogin.getTrendsNft().subtract(amount)); mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountLogin); String orderNo = MallUtils.getOrderNum("NFT"); mallMoneyFlowService.addMoneyFlow( loginMember.getId(), - amount.negate(), + amountReal.negate(), MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getValue(), orderNo, mallMember.getId(), FlowTypeNewEnum.NFT.getValue(), MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getDescrition()); - mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(amount)); + mallMoneyFlowService.addMoneyFlow( + loginMember.getId(), + fee.negate(), + MoneyFlowTypeNewEnum.NFT_TRANS_OUT_FEE.getValue(), + orderNo, + mallMember.getId(), + FlowTypeNewEnum.NFT.getValue(), + MoneyFlowTypeNewEnum.NFT_TRANS_OUT_FEE.getDescrition()); + mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(amountReal)); mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount); mallMoneyFlowService.addMoneyFlow( mallMember.getId(), - amount, + amountReal, MoneyFlowTypeNewEnum.NFT_TRANS_IN.getValue(), orderNo, loginMember.getId(), @@ -887,10 +842,16 @@ @Override public FebsResponse updatePayment(UpdatePaymentDto updatePaymentDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); + QueryWrapper<MallProductBuy> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("member_id",memberId); + List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectList(objectQueryWrapper); + if(ObjectUtil.isNotEmpty(mallProductBuys)){ + throw new FebsException("信息无法修改"); + } MallMemberPayment mallMemberPayment = mallMemberPaymentMapper.selectByMemberId(memberId); mallMemberPayment.setWxQrcode(updatePaymentDto.getWxQrcode()); -// mallMemberPayment.setAliQrcode(updatePaymentDto.getAliQrcode()); + mallMemberPayment.setAliQrcode(updatePaymentDto.getAliQrcode()); mallMemberPayment.setBankName(updatePaymentDto.getBankName()); // mallMemberPayment.setBankNo(updatePaymentDto.getBankNo()); // mallMemberPayment.setBank(updatePaymentDto.getBank()); @@ -976,16 +937,65 @@ return new FebsResponse().success().data(pages); } - public static void main(String[] args) { - Set<String> objectsAccount = new HashSet<>(); - Set<String> objects = new HashSet<>(); - int j = 100; - for(int i =0;i < 100 ; i++){ - String s = ShareCodeUtil.toSerialNumberCodeTwo(j); - objects.add(s); + @Override + 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(), + DataDictionaryEnum.CHARGE_AMOUNT.getCode() + ); + BigDecimal chargeAmount = new BigDecimal(chargeAmountDic.getValue()).setScale(2,BigDecimal.ROUND_DOWN); + if(chargeAmount.compareTo(amount) > 0){ + throw new FebsException("充值金额需要大于"+chargeAmount); } - System.out.println(objects); - System.out.println(objects.size()); + MallMemberCharge mallMemberCharge = new MallMemberCharge(); + mallMemberCharge.setMemberId(memberId); + mallMemberCharge.setAmount(amount); + 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("操作成功"); + } + +// public static void main(String[] args) { +// Set<String> objectsAccount = new HashSet<>(); +// Set<String> objects = new HashSet<>(); +// int j = 100; +// for(int i =0;i < 100 ; i++){ +// String s = ShareCodeUtil.toSerialNumberCodeTwo(j); +// objects.add(s); +// } +// +// System.out.println(objects); +// System.out.println(objects.size()); +// } } -- Gitblit v1.9.1