From 700e52d5ef6e52b4292724165adfa60e24d76838 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 23 Dec 2024 14:52:06 +0800
Subject: [PATCH] fix(mall): 修复兑换余额时碳积分不足的问题
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 85 ++++++++++++++++++++++--------------------
1 files changed, 45 insertions(+), 40 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 60be509..1d9552c 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
@@ -130,16 +130,26 @@
//对于邀请码的验证和上级联系人的验证
Integer count = this.baseMapper.selectCount(null);
if (count != null && count != 0) {
- if(!StrUtil.isEmpty(registerDto.getInviteId())){
- String inviteId = registerDto.getInviteId();
- MallMember inviteMember = this.baseMapper.selectInfoByInviteId(inviteId);
- if (inviteMember == null) {
- throw new FebsException("邀请码不存在");
- }
- mallMember.setReferrerId(registerDto.getInviteId());
+ if(StrUtil.isEmpty(registerDto.getInviteId())){
+ throw new FebsException("请输入邀请码");
}
+ String inviteId = registerDto.getInviteId();
+ MallMember inviteMember = this.baseMapper.selectInfoByInviteId(inviteId);
+ if (inviteMember == null) {
+ throw new FebsException("邀请码不存在");
+ }
+ mallMember.setReferrerId(registerDto.getInviteId());
+// if(!StrUtil.isEmpty(registerDto.getInviteId())){
+// String inviteId = registerDto.getInviteId();
+// MallMember inviteMember = this.baseMapper.selectInfoByInviteId(inviteId);
+// if (inviteMember == null) {
+// throw new FebsException("邀请码不存在");
+// }
+// mallMember.setReferrerId(registerDto.getInviteId());
+// }
}
mallMember.setName(account);
+ mallMember.setAvatar("https://res.runstep.cc/rslogo.png");
mallMember.setAccountStatus(YesOrNoEnum.YES.getValue());
mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
mallMember.setSex("男");
@@ -276,39 +286,12 @@
RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, mallMemberVo.getLevel()));
mallMemberVo.setLevelName(runVip.getVipName());
mallMemberVo.setLevelPng(runVip.getVipPng());
+ mallMemberVo.setChangeState(runVip.getChangeState());
+ mallMemberVo.setWithdrawState(runVip.getWithdrawState());
MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
mallMemberVo.setBalance(wallet.getBalance());
mallMemberVo.setScore(wallet.getScore());
-
- mallMemberVo.setMinScore(
- new BigDecimal(
- dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- RunVipDataDictionaryEnum.RUN_VIP_SCORE_MIN.getType(),
- RunVipDataDictionaryEnum.RUN_VIP_SCORE_MIN.getCode()).getValue()
- ).setScale(0,BigDecimal.ROUND_DOWN)
- );
- mallMemberVo.setScoreBalance(
- new BigDecimal(
- dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- RunVipDataDictionaryEnum.RUN_VIP_SCORE_TO_BALANCE.getType(),
- RunVipDataDictionaryEnum.RUN_VIP_SCORE_TO_BALANCE.getCode()).getValue()
- ).setScale(2, BigDecimal.ROUND_DOWN)
- );
- mallMemberVo.setBalanceCoin(
- new BigDecimal(
- dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getType(),
- RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getCode()).getValue()
- ).setScale(2, BigDecimal.ROUND_DOWN)
- );
- mallMemberVo.setBalanceCoinPercent(
- new BigDecimal(
- dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN_PERCENT.getType(),
- RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN_PERCENT.getCode()).getValue()
- ).setScale(4, BigDecimal.ROUND_DOWN)
- );
return new FebsResponse().success().data(mallMemberVo);
}
@@ -409,9 +392,10 @@
}else{
item.setMyTeamCnt(mallMemberRefs.size());
//获取mallMembers的所有id
- myTeamVo.setMyTeamBalance(getTeamBalance(mallMemberRefs));
+ item.setMyTeamBalance(getTeamBalance(mallMemberRefs));
}
});
+ myTeamVo.setTeam(teamListVos);
return new FebsResponse().success().data(myTeamVo);
@@ -511,7 +495,7 @@
* 用户的等级level是否允许兑换碳币
*/
RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, loginMember.getLevel()));
- if(ObjectUtil.isEmpty(runVip) || runVip.getChangeState() != YesOrNoEnum.YES.getValue()){
+ if(ObjectUtil.isEmpty(runVip) || runVip.getInsideState() != YesOrNoEnum.YES.getValue()){
throw new FebsException("请先升级会员");
}
@@ -554,6 +538,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void withdrawal(WithdrawalDto withdrawalDto) {
Long memberId = LoginUserUtil.getLoginUser().getId();
MallMember loginMember = this.baseMapper.selectById(memberId);
@@ -599,6 +584,8 @@
/**
* 减少碳币,增加进行中提现记录
*/
+ walletService.reduceBalance(withdrawalDto.getAmount(), loginMember.getId());
+
BigDecimal withdrawalAmount = withdrawalDto.getAmount().multiply(balanceToCoin).setScale(2, BigDecimal.ROUND_DOWN);
BigDecimal fee = balanceToCoinPercent.multiply(withdrawalAmount).setScale(2, BigDecimal.ROUND_DOWN);
BigDecimal withdrawalAmountReal = withdrawalAmount.subtract(fee);
@@ -611,9 +598,9 @@
withdraw.setAmountFee(fee);
withdraw.setName(mallMemberPayment.getBank());
withdraw.setType(mallMemberPayment.getBankNo());
+ withdraw.setWithdrawTimes(withdrawalDto.getAmount());
mallMemberWithdrawMapper.insert(withdraw);
- walletService.reduceBalance(withdrawalDto.getAmount(), loginMember.getId());
this.runVipMoneyFlowAdd(
loginMember.getId(),
loginMember.getId(),
@@ -628,6 +615,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void commissionChange(CommissionChangeDto commissionChange) {
Long memberId = LoginUserUtil.getLoginUser().getId();
BigDecimal minScore = new BigDecimal(
@@ -652,6 +640,11 @@
RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, loginMember.getLevel()));
if(ObjectUtil.isEmpty(runVip) || runVip.getChangeState() != YesOrNoEnum.YES.getValue()){
throw new FebsException("请先升级会员");
+ }
+
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+ if(minScore.compareTo(mallMemberWallet.getScore()) > 0){
+ throw new FebsException("碳积分不足");
}
BigDecimal scoreBalancePercent = new BigDecimal(
@@ -1565,6 +1558,18 @@
return new FebsResponse().success().data(data);
}
+
+ public static String hidePhoneNumber(String phoneNumber) {
+ //判断字符串的长度小于4就直接返回
+ if (phoneNumber.length() < 4) {
+ return phoneNumber;
+ }
+ // 获取前3位和后4位
+ String prefix = phoneNumber.substring(0, 3);
+ // 生成隐藏的电话号码
+ return prefix + "****";
+ }
+
@Override
public List<ApiChartVo> dayRecord(ApiRecordDto apiRecordDto) {
/**
@@ -1610,7 +1615,7 @@
sortedList.forEach(entry -> {
ApiChartVo apiChartVo = new ApiChartVo();
MallMember mallMember = this.baseMapper.selectById(entry.getKey());
- apiChartVo.setName(mallMember.getName());
+ apiChartVo.setName(hidePhoneNumber(mallMember.getName()));
apiChartVo.setAvatar(mallMember.getAvatar());
apiChartVo.setScore(entry.getValue());
apiChartVos.add(apiChartVo);
--
Gitblit v1.9.1