mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
余额退款
This commit is contained in:
@@ -127,6 +127,8 @@ public enum ReturnCodeEnum {
|
||||
// 地锁存在未完成的占桩订单
|
||||
CODE_HAS_OCCUPY_PILE_ORDER_ERROR("00100059", "当前地锁存在未完成的占桩订单"),
|
||||
|
||||
CODE_WALLET_NOT_FOUND_ERROR("00100060", "未查询会员钱包信息"),
|
||||
|
||||
/* 个人桩 start */
|
||||
|
||||
CODE_PILE_HAS_BEEN_BINDING_ERROR("00400001", "此桩已被绑定,请联系管理员!"),
|
||||
|
||||
@@ -46,4 +46,9 @@ public class ApplyRefundDTO {
|
||||
* 汇付需要merchantKey,取小程序appId传给它
|
||||
*/
|
||||
private String wechatAppId;
|
||||
|
||||
/**
|
||||
* 钱包编号
|
||||
*/
|
||||
private String walletCode;
|
||||
}
|
||||
|
||||
@@ -213,7 +213,7 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
|
||||
}
|
||||
|
||||
String targetMerchantId = dto.getTargetMerchantId(); // 目标运营商id
|
||||
log.info("修改用户余额 memberId:{}, updatePrincipalBalance:{}, targetMerchantId:{}", memberId, updatePrincipalBalance, targetMerchantId);
|
||||
log.info("修改用户余额-memberId:{}, updatePrincipalBalance:{}, targetMerchantId:{}", memberId, updatePrincipalBalance, targetMerchantId);
|
||||
|
||||
// 来自后管的充值,校验权限
|
||||
if (StringUtils.equals(dto.getFromWeb(), Constants.ONE)) {
|
||||
@@ -228,7 +228,7 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
|
||||
// 查询用户余额
|
||||
MemberWalletInfo walletInfo = memberWalletInfoService.selectByMemberId(memberId, targetMerchantId);
|
||||
if (walletInfo == null) {
|
||||
log.warn("根据会员id:{}, 目标运营商id:{}, 查询会员信息为空, 新建会员钱包", memberId, targetMerchantId);
|
||||
log.warn("修改用户余额-根据会员id:{}, 目标运营商id:{}, 查询会员信息为空, 新建会员钱包", memberId, targetMerchantId);
|
||||
// 如果查询到钱包为空,就新建一个该运营商的钱包
|
||||
walletInfo = MemberWalletInfo.builder()
|
||||
.walletCode(generateWalletCode())
|
||||
@@ -262,7 +262,7 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
|
||||
: walletInfo.getPrincipalBalance();
|
||||
newPrincipalBalance = oldPrincipalBalance.add(updatePrincipalBalance);
|
||||
if (newPrincipalBalance.compareTo(BigDecimal.ZERO) < 0) {
|
||||
log.warn("变更后本金余额不能为负数");
|
||||
log.warn("修改用户余额-变更后本金余额不能为负数");
|
||||
throw new BusinessException("", "变更后本金余额不能为负数");
|
||||
}
|
||||
// 记流水
|
||||
@@ -293,7 +293,7 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
|
||||
newGiftBalance = oldGiftBalance.add(updateGiftBalance);
|
||||
// 余额不能为负数
|
||||
if (newGiftBalance.compareTo(BigDecimal.ZERO) < 0) {
|
||||
log.warn("变更后赠送余额不能为负数");
|
||||
log.warn("修改用户余额-变更后赠送余额不能为负数");
|
||||
throw new BusinessException("", "变更后赠送余额不能为负数");
|
||||
}
|
||||
// 记流水
|
||||
@@ -315,9 +315,11 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService {
|
||||
// 修改数据库
|
||||
int i = 0;
|
||||
if (newPrincipalBalance != null || newGiftBalance != null) {
|
||||
log.info("修改用户余额-memberId:{}, walletCode:{}, newPrincipalBalance:{}, newGiftBalance:{}, version:{}"
|
||||
, memberId, walletCode, newPrincipalBalance, newGiftBalance, walletInfo.getVersion());
|
||||
i = memberBasicInfoMapper.updateMemberBalance(memberId, walletCode, newPrincipalBalance, newGiftBalance, walletInfo.getVersion());
|
||||
if (i == 0) {
|
||||
log.warn("修改余额失败, memberId:{}", memberId);
|
||||
log.warn("修改用户余额-修改余额失败, memberId:{}", memberId);
|
||||
}
|
||||
}
|
||||
// 插入 member_wallet_log 表
|
||||
|
||||
@@ -591,13 +591,17 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
|
||||
}
|
||||
|
||||
// 查会员余额
|
||||
MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId());
|
||||
if (memberVO == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_MEMBER_NOT_FOUND_ERROR);
|
||||
// MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId());
|
||||
// if (memberVO == null) {
|
||||
// throw new BusinessException(ReturnCodeEnum.CODE_MEMBER_NOT_FOUND_ERROR);
|
||||
// }
|
||||
MemberWalletInfo memberWalletInfo = memberWalletInfoService.selectByWalletCode(dto.getWalletCode());
|
||||
if (memberWalletInfo == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_WALLET_NOT_FOUND_ERROR);
|
||||
}
|
||||
|
||||
// 校验退款金额
|
||||
BigDecimal principalBalance = memberVO.getPrincipalBalance();
|
||||
BigDecimal principalBalance = memberWalletInfo.getPrincipalBalance();
|
||||
BigDecimal refundAmount = dto.getRefundAmount();
|
||||
if (refundAmount.compareTo(principalBalance) > 0) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_REFUND_MEMBER_BALANCE_ERROR);
|
||||
|
||||
@@ -480,13 +480,18 @@ public class NotDelayMerchantOrderLogic extends AbstractOrderLogic{
|
||||
}
|
||||
|
||||
// 查会员余额
|
||||
MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId());
|
||||
if (memberVO == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_MEMBER_NOT_FOUND_ERROR);
|
||||
// MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId());
|
||||
// if (memberVO == null) {
|
||||
// throw new BusinessException(ReturnCodeEnum.CODE_MEMBER_NOT_FOUND_ERROR);
|
||||
// }
|
||||
|
||||
MemberWalletInfo memberWalletInfo = memberWalletInfoService.selectByWalletCode(dto.getWalletCode());
|
||||
if (memberWalletInfo == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_WALLET_NOT_FOUND_ERROR);
|
||||
}
|
||||
|
||||
// 校验退款金额
|
||||
BigDecimal principalBalance = memberVO.getPrincipalBalance();
|
||||
BigDecimal principalBalance = memberWalletInfo.getPrincipalBalance();
|
||||
BigDecimal refundAmount = dto.getRefundAmount();
|
||||
if (refundAmount.compareTo(principalBalance) > 0) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_REFUND_MEMBER_BALANCE_ERROR);
|
||||
|
||||
Reference in New Issue
Block a user