mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 11:35:12 +08:00
update 获取累计充值金额
This commit is contained in:
@@ -35,4 +35,9 @@ public class CreateMerchantVipDTO {
|
||||
* 赠送金
|
||||
*/
|
||||
private BigDecimal updateGiftBalance;
|
||||
|
||||
/**
|
||||
* 来自后管 1-是
|
||||
*/
|
||||
private String fromWeb;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.jsowell.pile.mapper;
|
||||
|
||||
import com.jsowell.pile.domain.MemberWalletInfo;
|
||||
import com.jsowell.pile.vo.base.MemberWalletVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@@ -69,4 +70,6 @@ public interface MemberWalletInfoMapper {
|
||||
List<MemberWalletInfo> selectByMemberWalletList(@Param("memberId") String memberId);
|
||||
|
||||
MemberWalletInfo selectByWalletCode(@Param("walletCode") String walletCode);
|
||||
|
||||
MemberWalletVO selectMemberWalletInfo(String walletCode);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,4 +37,24 @@ public class MemberWalletVO {
|
||||
* 本金金额
|
||||
*/
|
||||
private BigDecimal principalBalance;
|
||||
|
||||
/**
|
||||
* 赠送金余额
|
||||
*/
|
||||
private BigDecimal giftBalance;
|
||||
|
||||
/**
|
||||
* 累计本金充值
|
||||
*/
|
||||
private BigDecimal accumulatedRechargeAmount;
|
||||
|
||||
/**
|
||||
* 累计赠送金额
|
||||
*/
|
||||
private BigDecimal accumulatedRechargeGift;
|
||||
|
||||
/**
|
||||
* 累计消费
|
||||
*/
|
||||
private BigDecimal accumulatedConsumptionAmount;
|
||||
}
|
||||
|
||||
@@ -23,6 +23,21 @@ public class MemberWalletInfoVO {
|
||||
*/
|
||||
private BigDecimal currentBalance;
|
||||
|
||||
/**
|
||||
* 累计充值
|
||||
*/
|
||||
private BigDecimal accumulatedRechargeAmount;
|
||||
|
||||
/**
|
||||
* 累计消费
|
||||
*/
|
||||
private BigDecimal accumulatedConsumptionAmount;
|
||||
|
||||
/**
|
||||
* 总充值金额
|
||||
*/
|
||||
private BigDecimal totalRechargeAmount;
|
||||
|
||||
/**
|
||||
* 总消费
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user