mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-26 05:55:03 +08:00
update 获取累计充值金额
This commit is contained in:
@@ -223,6 +223,19 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
String targetMerchantId = dto.getTargetMerchantId(); // 目标运营商id
|
||||
log.info("修改用户余额-param:{}", JSON.toJSONString(dto));
|
||||
|
||||
/*
|
||||
更新类型
|
||||
1-进账;2-出账
|
||||
*/
|
||||
String type = dto.getType();
|
||||
|
||||
/*
|
||||
子类型
|
||||
进账:10-充值, 11-赠送, 12-订单结算退款
|
||||
出账:20-后管扣款, 21-订单付款, 22-用户退款
|
||||
*/
|
||||
String subType;
|
||||
|
||||
// 本次操作人员
|
||||
String createBy = dto.getMemberId();
|
||||
|
||||
@@ -264,21 +277,30 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
BigDecimal newPrincipalBalance = null;
|
||||
BigDecimal newGiftBalance = null;
|
||||
|
||||
// 更新本金金额
|
||||
/*
|
||||
更新本金金额
|
||||
*/
|
||||
if (updatePrincipalBalance != null && updatePrincipalBalance.compareTo(BigDecimal.ZERO) > 0) {
|
||||
if (StringUtils.equals(dto.getType(), MemberWalletEnum.TYPE_OUT.getValue())) {
|
||||
// 余额类型(1-本金,2-赠送)
|
||||
String category = Constants.ONE;
|
||||
// 获取子类型
|
||||
subType = getTheSubType(dto, category);
|
||||
// 出账时,金额改为负数
|
||||
if (StringUtils.equals(type, MemberWalletEnum.TYPE_OUT.getValue())) {
|
||||
// 扣款 转为负数
|
||||
updatePrincipalBalance = updatePrincipalBalance.negate();
|
||||
}
|
||||
// 会员老的余额
|
||||
// 原金额
|
||||
BigDecimal oldPrincipalBalance = walletInfo.getPrincipalBalance() == null
|
||||
? BigDecimal.ZERO
|
||||
: walletInfo.getPrincipalBalance();
|
||||
// 新金额 = 原金额 + 变动金额
|
||||
newPrincipalBalance = oldPrincipalBalance.add(updatePrincipalBalance);
|
||||
if (newPrincipalBalance.compareTo(BigDecimal.ZERO) < 0) {
|
||||
log.info("修改用户余额-变更后本金余额不能为负数");
|
||||
throw new BusinessException("", "变更后本金余额不能为负数");
|
||||
}
|
||||
// 备注,拼接存入数据库
|
||||
String remark = "日期:" + DateUtils.getDateTime() +
|
||||
", 操作人员Id:" + createBy +
|
||||
", 变更用户本金金额:" + updatePrincipalBalance +
|
||||
@@ -286,12 +308,12 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
", 变更后金额:" + newPrincipalBalance;
|
||||
// 记流水
|
||||
logList.add(MemberWalletLog.builder()
|
||||
.memberId(dto.getMemberId())
|
||||
.memberId(memberId)
|
||||
.walletCode(walletCode)
|
||||
.type(dto.getType())
|
||||
.subType(dto.getSubType())
|
||||
.type(type)
|
||||
.subType(subType)
|
||||
.amount(updatePrincipalBalance)
|
||||
.category("1")
|
||||
.category(category)
|
||||
.relatedOrderCode(dto.getRelatedOrderCode())
|
||||
.beforeAmount(oldPrincipalBalance)
|
||||
.afterAmount(newPrincipalBalance)
|
||||
@@ -301,21 +323,31 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
.build());
|
||||
}
|
||||
|
||||
// 更新赠送金额
|
||||
/*
|
||||
更新赠送金额
|
||||
*/
|
||||
if (updateGiftBalance != null && updateGiftBalance.compareTo(BigDecimal.ZERO) > 0) {
|
||||
if (StringUtils.equals(dto.getType(), MemberWalletEnum.TYPE_OUT.getValue())) {
|
||||
// 余额类型(1-本金,2-赠送)
|
||||
String category = Constants.TWO;
|
||||
// 获取子类型
|
||||
subType = getTheSubType(dto, category);
|
||||
// 出账时,金额改为负数
|
||||
if (StringUtils.equals(type, MemberWalletEnum.TYPE_OUT.getValue())) {
|
||||
// 扣款 转为负数
|
||||
updateGiftBalance = updateGiftBalance.negate();
|
||||
}
|
||||
// 原金额
|
||||
BigDecimal oldGiftBalance = walletInfo.getGiftBalance() == null
|
||||
? BigDecimal.ZERO
|
||||
: walletInfo.getGiftBalance();
|
||||
// 新金额 = 原金额 + 变动金额
|
||||
newGiftBalance = oldGiftBalance.add(updateGiftBalance);
|
||||
// 余额不能为负数
|
||||
if (newGiftBalance.compareTo(BigDecimal.ZERO) < 0) {
|
||||
log.info("修改用户余额-变更后赠送余额不能为负数");
|
||||
throw new BusinessException("", "变更后赠送余额不能为负数");
|
||||
}
|
||||
// 备注,拼接存入数据库
|
||||
String remark = "日期:" + DateUtils.getDateTime() +
|
||||
", 操作人员Id:" + createBy +
|
||||
", 变更用户赠送金额:" + updateGiftBalance +
|
||||
@@ -323,12 +355,12 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
", 变更后金额:" + newGiftBalance;
|
||||
// 记流水
|
||||
logList.add(MemberWalletLog.builder()
|
||||
.memberId(dto.getMemberId())
|
||||
.memberId(memberId)
|
||||
.walletCode(walletCode)
|
||||
.type(dto.getType())
|
||||
.subType(dto.getSubType())
|
||||
.type(type)
|
||||
.subType(subType)
|
||||
.amount(updateGiftBalance)
|
||||
.category("2")
|
||||
.category(category)
|
||||
.relatedOrderCode(dto.getRelatedOrderCode())
|
||||
.beforeAmount(oldGiftBalance)
|
||||
.afterAmount(newGiftBalance)
|
||||
@@ -357,6 +389,31 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
return i;
|
||||
}
|
||||
|
||||
// 获取子类型
|
||||
private String getTheSubType(UpdateMemberBalanceDTO dto, String category) {
|
||||
String subType;
|
||||
if (!StringUtils.equals(dto.getFromWeb(), Constants.ONE)) {
|
||||
// 如果不是后管操作,subType等于dto中传过来的值
|
||||
subType = dto.getSubType();
|
||||
} else {
|
||||
// 来自后管的操作
|
||||
if (StringUtils.equals(dto.getType(), MemberWalletEnum.TYPE_OUT.getValue())) {
|
||||
// 后管操作 && 出账 = 就是后管扣款
|
||||
subType = MemberWalletEnum.SUBTYPE_WEB_DEDUCT_MONEY.getValue();
|
||||
} else {
|
||||
// 进账
|
||||
if (StringUtils.equals(category, Constants.ONE)) {
|
||||
// 充值本金
|
||||
subType = MemberWalletEnum.SUBTYPE_TOP_UP.getValue();
|
||||
} else {
|
||||
// 充值赠送金
|
||||
subType = MemberWalletEnum.SUBTYPE_GIVING.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
return subType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MemberVO queryMemberInfoByMemberId(String memberId) {
|
||||
return queryMemberInfoByMemberId(memberId, null);
|
||||
@@ -592,6 +649,9 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
updateMemberBalanceDTO.setUpdatePrincipalBalance(dto.getUpdatePrincipalBalance());
|
||||
updateMemberBalanceDTO.setUpdateGiftBalance(dto.getUpdateGiftBalance());
|
||||
updateMemberBalanceDTO.setTargetMerchantId(dto.getTargetMerchantId());
|
||||
if (StringUtils.isNotBlank(dto.getFromWeb())) {
|
||||
updateMemberBalanceDTO.setFromWeb(dto.getFromWeb());
|
||||
}
|
||||
updateMemberBalance(updateMemberBalanceDTO);
|
||||
}
|
||||
|
||||
|
||||
@@ -86,4 +86,8 @@ public class MemberWalletInfoServiceImpl implements MemberWalletInfoService {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public MemberWalletVO selectMemberWalletInfo(String walletCode) {
|
||||
return memberWalletInfoMapper.selectMemberWalletInfo(walletCode);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user