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 1040c8da1..61b2e0f1b 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -382,6 +382,7 @@ public class MemberService { .build(); vo.setPageResponse(pageResponse); // log.info("查询用户余额信息 service方法 end"); + return vo; } diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberBasicInfoController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberBasicInfoController.java index 07ee2e2a6..4743ad5ca 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberBasicInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberBasicInfoController.java @@ -86,6 +86,7 @@ public class MemberBasicInfoController extends BaseController { public AjaxResult createMerchantVip(@RequestBody CreateMerchantVipDTO dto) { AjaxResult ajaxResult; try { + dto.setFromWeb(Constants.ONE); memberBasicInfoService.createMerchantVip(dto); ajaxResult = AjaxResult.success(); } catch (BusinessException e) { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/CreateMerchantVipDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/CreateMerchantVipDTO.java index e97daab28..6348b0a4c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/CreateMerchantVipDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/CreateMerchantVipDTO.java @@ -35,4 +35,9 @@ public class CreateMerchantVipDTO { * 赠送金 */ private BigDecimal updateGiftBalance; + + /** + * 来自后管 1-是 + */ + private String fromWeb; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletInfoMapper.java index 8aad1b512..db221124d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletInfoMapper.java @@ -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 selectByMemberWalletList(@Param("memberId") String memberId); MemberWalletInfo selectByWalletCode(@Param("walletCode") String walletCode); + + MemberWalletVO selectMemberWalletInfo(String walletCode); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java index 3862089a1..134c5085a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java @@ -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); } 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 d971ecfe6..0ec5ef278 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 @@ -86,4 +86,8 @@ public class MemberWalletInfoServiceImpl implements MemberWalletInfoService { return resultList; } + public MemberWalletVO selectMemberWalletInfo(String walletCode) { + return memberWalletInfoMapper.selectMemberWalletInfo(walletCode); + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/MemberWalletVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/MemberWalletVO.java index e63d0f200..7a739e9c7 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/MemberWalletVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/base/MemberWalletVO.java @@ -37,4 +37,24 @@ public class MemberWalletVO { * 本金金额 */ private BigDecimal principalBalance; + + /** + * 赠送金余额 + */ + private BigDecimal giftBalance; + + /** + * 累计本金充值 + */ + private BigDecimal accumulatedRechargeAmount; + + /** + * 累计赠送金额 + */ + private BigDecimal accumulatedRechargeGift; + + /** + * 累计消费 + */ + private BigDecimal accumulatedConsumptionAmount; } 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 4748858a7..a0f63df2b 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 @@ -23,6 +23,21 @@ public class MemberWalletInfoVO { */ private BigDecimal currentBalance; + /** + * 累计充值 + */ + private BigDecimal accumulatedRechargeAmount; + + /** + * 累计消费 + */ + private BigDecimal accumulatedConsumptionAmount; + + /** + * 总充值金额 + */ + private BigDecimal totalRechargeAmount; + /** * 总消费 */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletInfoMapper.xml index b785d3e1b..4a7134de1 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletInfoMapper.xml @@ -201,4 +201,8 @@ where del_flag = '0' and wallet_code = #{walletCode,jdbcType=VARCHAR} + + \ No newline at end of file