update 会员钱包

This commit is contained in:
2023-11-21 15:52:07 +08:00
parent a590682d5a
commit 820fb203e1
3 changed files with 30 additions and 8 deletions

View File

@@ -7,6 +7,7 @@ import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.MemberWalletEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.SecurityUtils;
@@ -25,6 +26,7 @@ import com.jsowell.pile.mapper.MemberWalletLogMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.base.LoginUserDetailVO;
import com.jsowell.pile.vo.base.MerchantInfoVO;
import com.jsowell.pile.vo.uniapp.MemberBalanceVO;
import com.jsowell.pile.vo.uniapp.MemberVO;
import com.jsowell.pile.vo.uniapp.MemberWalletLogVO;
@@ -40,6 +42,7 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 会员基础信息Service业务层处理
@@ -180,19 +183,29 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
*/
@Override
public int updateMemberBalance(UpdateMemberBalanceDTO dto) {
String memberId = dto.getMemberId();
BigDecimal updateGiftBalance = dto.getUpdateGiftBalance();
BigDecimal updatePrincipalBalance = dto.getUpdatePrincipalBalance();
log.info("修改用户余额 memberId:{}, updatePrincipalBalance:{}, updateGiftBalance:{}", memberId, updatePrincipalBalance, updateGiftBalance);
String memberId = dto.getMemberId(); // 会员id
BigDecimal updateGiftBalance = dto.getUpdateGiftBalance(); // 更新赠送金额
BigDecimal updatePrincipalBalance = dto.getUpdatePrincipalBalance(); // 更新本金金额
String targetMerchantId = dto.getTargetMerchantId(); // 目标运营商id
log.info("修改用户余额 memberId:{}, updatePrincipalBalance:{}, targetMerchantId:{}", memberId, updatePrincipalBalance, targetMerchantId);
// 校验权限
LoginUserDetailVO loginUserDetail = UserUtils.getLoginUserDetail();
List<MerchantInfoVO> merchantInfoVOList = loginUserDetail.getMerchantInfoVOList();
List<String> collect = merchantInfoVOList.stream().map(MerchantInfoVO::getMerchantId).collect(Collectors.toList());
if (!collect.contains(targetMerchantId)) {
throw new BusinessException(ReturnCodeEnum.CODE_PERMISSION_DENIED);
}
// 查询用户余额
MemberWalletInfo walletInfo = memberWalletInfoService.selectByMemberId(memberId, dto.getTargetMerchantId());
MemberWalletInfo walletInfo = memberWalletInfoService.selectByMemberId(memberId, targetMerchantId);
if (walletInfo == null) {
log.warn("根据会员id:{}, 目标运营商id:{}, 查询会员信息为空, 新建会员钱包", memberId, dto.getTargetMerchantId());
log.warn("根据会员id:{}, 目标运营商id:{}, 查询会员信息为空, 新建会员钱包", memberId, targetMerchantId);
// 如果查询到钱包为空,就新建一个该运营商的钱包
walletInfo = MemberWalletInfo.builder()
.walletCode(IdUtils.get16UUID())
.memberId(memberId)
.merchantId(dto.getTargetMerchantId())
.merchantId(targetMerchantId)
.giftBalance(BigDecimal.ZERO)
.principalBalance(BigDecimal.ZERO)
.version(0)