修改创建会员逻辑,在创建时不创建会员钱包,后管充值的时候找不到则创建

This commit is contained in:
2023-11-11 17:08:01 +08:00
parent 4fd28a156b
commit ee3095d02a
6 changed files with 44 additions and 23 deletions

View File

@@ -56,5 +56,11 @@ public interface MemberWalletInfoMapper {
// MemberWalletInfo selectByMemberId(String memberId);
/**
* 根据会员id和目标运营商id查询用户钱包信息
* @param memberId
* @param merchantId
* @return
*/
MemberWalletInfo selectByMemberId(@Param("memberId") String memberId, @Param("merchantId") String merchantId);
}

View File

@@ -8,6 +8,7 @@ import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.MemberWalletEnum;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.common.util.id.IdUtils;
import com.jsowell.pile.domain.MemberBasicInfo;
import com.jsowell.pile.domain.MemberPlateNumberRelation;
import com.jsowell.pile.domain.MemberWalletInfo;
@@ -17,7 +18,6 @@ import com.jsowell.pile.dto.QueryMemberInfoDTO;
import com.jsowell.pile.dto.UniAppQueryMemberBalanceDTO;
import com.jsowell.pile.mapper.MemberBasicInfoMapper;
import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper;
import com.jsowell.pile.mapper.MemberWalletInfoMapper;
import com.jsowell.pile.mapper.MemberWalletLogMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.util.UserUtils;
@@ -49,8 +49,11 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
@Autowired
private MemberBasicInfoMapper memberBasicInfoMapper;
// @Autowired
// private MemberWalletInfoMapper memberWalletInfoMapper;
@Autowired
private MemberWalletInfoMapper memberWalletInfoMapper;
private MemberWalletInfoService memberWalletInfoService;
@Autowired
private MemberWalletLogMapper memberWalletLogMapper;
@@ -178,10 +181,19 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
BigDecimal updatePrincipalBalance = dto.getUpdatePrincipalBalance();
log.info("修改用户余额 memberId:{}, updatePrincipalBalance:{}, updateGiftBalance:{}", memberId, updatePrincipalBalance, updateGiftBalance);
// 查询用户余额
MemberWalletInfo info = memberWalletInfoMapper.selectByMemberId(memberId, dto.getMerchantId());
if (info == null) {
log.warn("根据会员id:{}, 查询会员信息为空", memberId);
return 0;
MemberWalletInfo walletInfo = memberWalletInfoService.selectByMemberId(memberId, dto.getTargetMerchantId());
if (walletInfo == null) {
log.warn("根据会员id:{}, 目标运营商id:{}, 查询会员信息为空, 新建会员钱包", memberId, dto.getTargetMerchantId());
// 如果查询到钱包为空,就新建一个该运营商的钱包
walletInfo = MemberWalletInfo.builder()
.walletCode(IdUtils.fastSimpleUUID())
.memberId(memberId)
.merchantId(dto.getTargetMerchantId())
.giftBalance(BigDecimal.ZERO)
.principalBalance(BigDecimal.ZERO)
.version(0)
.build();
memberWalletInfoService.insertSelective(walletInfo);
}
// 记录流水
@@ -197,9 +209,9 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
updatePrincipalBalance = updatePrincipalBalance.negate();
}
// 会员老的余额
BigDecimal oldPrincipalBalance = info.getPrincipalBalance() == null
BigDecimal oldPrincipalBalance = walletInfo.getPrincipalBalance() == null
? BigDecimal.ZERO
: info.getPrincipalBalance();
: walletInfo.getPrincipalBalance();
newPrincipalBalance = oldPrincipalBalance.add(updatePrincipalBalance);
if (newPrincipalBalance.compareTo(BigDecimal.ZERO) < 0) {
log.warn("变更后本金余额不能为负数");
@@ -225,9 +237,9 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
// 扣款 转为负数
updateGiftBalance = updateGiftBalance.negate();
}
BigDecimal oldGiftBalance = info.getGiftBalance() == null
BigDecimal oldGiftBalance = walletInfo.getGiftBalance() == null
? BigDecimal.ZERO
: info.getGiftBalance();
: walletInfo.getGiftBalance();
newGiftBalance = oldGiftBalance.add(updateGiftBalance);
// 余额不能为负数
if (newGiftBalance.compareTo(BigDecimal.ZERO) < 0) {
@@ -251,7 +263,7 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
// 修改数据库
int i = 0;
if (newPrincipalBalance != null || newGiftBalance != null) {
i = memberBasicInfoMapper.updateMemberBalance(memberId, newPrincipalBalance, newGiftBalance, info.getVersion());
i = memberBasicInfoMapper.updateMemberBalance(memberId, newPrincipalBalance, newGiftBalance, walletInfo.getVersion());
if (i == 0) {
log.warn("修改余额失败, memberId:{}", memberId);
}

View File

@@ -180,9 +180,10 @@ public class TransactionService {
if (Objects.nonNull(dto.getMemberBasicInfo())) {
memberBasicInfoMapper.insertMemberBasicInfo(dto.getMemberBasicInfo());
}
if (Objects.nonNull(dto.getMemberWalletInfo())) {
memberWalletInfoMapper.insertSelective(dto.getMemberWalletInfo());
}
// 2023年11月11日17点01分修改逻辑 新建会员的时候不用新建钱包了,由在后管充值的时候创建
// if (Objects.nonNull(dto.getMemberWalletInfo())) {
// memberWalletInfoMapper.insertSelective(dto.getMemberWalletInfo());
// }
}
/**

View File

@@ -19,11 +19,6 @@ public class UpdateMemberBalanceDTO {
*/
private String memberId;
/**
* 所属运营商id
*/
private String merchantId;
/**
* 更新类型
* 1-进账2-出账
@@ -53,6 +48,11 @@ public class UpdateMemberBalanceDTO {
*/
private String relatedOrderCode;
/**
* 充值目标运营商id
*/
private String targetMerchantId;
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)