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 61b2e0f1b..4464bd6ff 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -332,26 +332,40 @@ public class MemberService { // 查询会员钱包信息表,获取 本金余额 // MemberWalletInfo memberWalletInfo = memberWalletInfoService.selectByMemberId(dto.getMemberId(), null); - MemberWalletInfo memberWalletInfo = memberWalletInfoService.selectByWalletCode(dto.getWalletCode()); - if (memberWalletInfo == null) { + MemberWalletVO memberWalletVO = memberWalletInfoService.selectMemberWalletInfo(dto.getWalletCode()); + // MemberWalletInfo memberWalletInfo = memberWalletInfoService.selectByWalletCode(dto.getWalletCode()); + if (memberWalletVO == null) { // 用户未注册小程序 throw new BusinessException(ReturnCodeEnum.CODE_AUTHENTICATION_ERROR); } // 当前余额 - vo.setCurrentBalance(memberWalletInfo.getPrincipalBalance().add(memberWalletInfo.getGiftBalance())); - + vo.setCurrentBalance(memberWalletVO.getPrincipalBalance().add(memberWalletVO.getGiftBalance())); + // 累计充值金额 + vo.setAccumulatedRechargeAmount(memberWalletVO.getAccumulatedRechargeAmount()); + // 累计赠送金额 + vo.setAccumulatedRechargeGift(memberWalletVO.getAccumulatedRechargeGift()); + // 累计消费金额 + vo.setAccumulatedConsumptionAmount(memberWalletVO.getAccumulatedConsumptionAmount()); // 根据日期查询会员钱包变动明细 // 分页 // PageHelper.startPage(pageNum, pageSize); List list = memberBasicInfoService.getMemberWalletDetail(dto); + // 总支出 BigDecimal totalConsumption = list.stream() .map(MemberWalletLogVO::getOrderAmount) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); - vo.setTotalConsumption(totalConsumption); + // 总充值 + BigDecimal totalRechargeAmount = list.stream() + .filter(x -> StringUtils.equals(x.getType(), "1")) + .filter(x -> StringUtils.equals(x.getSubType(), "10") || StringUtils.equals(x.getSubType(), "11")) + .map(MemberWalletLogVO::getAmount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + vo.setTotalRechargeAmount(totalRechargeAmount); + // PageInfo pageInfo = new PageInfo<>(list); // 获取 type 和 subType 的对应信息 for (MemberWalletLogVO walletLogVO : list) { @@ -382,7 +396,6 @@ public class MemberService { .build(); vo.setPageResponse(pageResponse); // log.info("查询用户余额信息 service方法 end"); - return vo; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberWalletInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberWalletInfoService.java index 7c78cbbf6..590501f5b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberWalletInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberWalletInfoService.java @@ -23,4 +23,6 @@ public interface MemberWalletInfoService { int updateByPrimaryKey(MemberWalletInfo record); List selectByMemberWalletList(String memberId); + + MemberWalletVO selectMemberWalletInfo(String walletCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletInfoServiceImpl.java index 0ec5ef278..7cad90f05 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletInfoServiceImpl.java @@ -11,6 +11,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; import java.util.Objects; @@ -86,8 +87,21 @@ public class MemberWalletInfoServiceImpl implements MemberWalletInfoService { return resultList; } + /** + * 查询会员钱包信息 + * @param walletCode + * @return + */ + @Override public MemberWalletVO selectMemberWalletInfo(String walletCode) { - return memberWalletInfoMapper.selectMemberWalletInfo(walletCode); + MemberWalletVO memberWalletVO = memberWalletInfoMapper.selectMemberWalletInfo(walletCode); + // 累计消费金额 = 累计充值 + 累计赠送 - 本金余额 - 赠送金余额 + BigDecimal accumulatedConsumptionAmount = memberWalletVO.getAccumulatedRechargeAmount() + .add(memberWalletVO.getAccumulatedRechargeAmount()) + .subtract(memberWalletVO.getPrincipalBalance()) + .subtract(memberWalletVO.getGiftBalance()); + memberWalletVO.setAccumulatedConsumptionAmount(accumulatedConsumptionAmount); + return memberWalletVO; } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/MemberWalletInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/MemberWalletInfoVO.java index a0f63df2b..748bf7a25 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/MemberWalletInfoVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/MemberWalletInfoVO.java @@ -28,6 +28,11 @@ public class MemberWalletInfoVO { */ private BigDecimal accumulatedRechargeAmount; + /** + * 累计赠送金额 + */ + private BigDecimal accumulatedRechargeGift; + /** * 累计消费 */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletInfoMapper.xml index 4a7134de1..c0fab086f 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletInfoMapper.xml @@ -203,6 +203,24 @@ \ No newline at end of file