diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index 0eefbada3..18e91ed29 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -160,10 +160,10 @@ public class MemberService { memberBasicInfo.setOpenId(openId); // 首次新建会员,同时新建会员钱包 - MemberWalletInfo memberWalletInfo = MemberWalletInfo.builder().memberId(memberId).build(); + // MemberWalletInfo memberWalletInfo = MemberWalletInfo.builder().memberId(memberId).build(); MemberTransactionDTO memberTransactionDTO = MemberTransactionDTO.builder() .memberBasicInfo(memberBasicInfo) - .memberWalletInfo(memberWalletInfo) + // .memberWalletInfo(memberWalletInfo) .build(); transactionService.createMember(memberTransactionDTO); } else { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletInfoMapper.java index 719cee5d1..abf6f0154 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletInfoMapper.java @@ -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); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java index 067c98d06..628377642 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java @@ -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); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/transaction/service/TransactionService.java b/jsowell-pile/src/main/java/com/jsowell/pile/transaction/service/TransactionService.java index 6faaf37ce..07954d563 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/transaction/service/TransactionService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/transaction/service/TransactionService.java @@ -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()); + // } } /** diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/UpdateMemberBalanceDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/UpdateMemberBalanceDTO.java index 411e98ce4..55d787152 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/UpdateMemberBalanceDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/UpdateMemberBalanceDTO.java @@ -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) diff --git a/jsowell-ui/src/views/member/info/index.vue b/jsowell-ui/src/views/member/info/index.vue index 26d83a9b8..c3a1c0bad 100644 --- a/jsowell-ui/src/views/member/info/index.vue +++ b/jsowell-ui/src/views/member/info/index.vue @@ -210,7 +210,7 @@ {