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