From 8720856b52c908354321d074959bd8b9edbc38b1 Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期二, 22 十月 2024 17:35:33 +0800 Subject: [PATCH] 1.查询时候如果钱包不存在则创建 --- src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java | 60 ++++++++++++++++++++++++++--- src/main/java/com/mzl/flower/entity/wallet/WalletDO.java | 2 src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java | 2 src/main/java/com/mzl/flower/web/v2/wallet/WalletController.java | 2 src/main/java/com/mzl/flower/service/wallet/WalletService.java | 2 5 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/mzl/flower/entity/wallet/WalletDO.java b/src/main/java/com/mzl/flower/entity/wallet/WalletDO.java index 2f240e0..50d4011 100644 --- a/src/main/java/com/mzl/flower/entity/wallet/WalletDO.java +++ b/src/main/java/com/mzl/flower/entity/wallet/WalletDO.java @@ -72,7 +72,7 @@ * 总交易金额 */ @ApiModelProperty(value = "总交易金额") - private String totalTransactionAmount; + private BigDecimal totalTransactionAmount; } diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java index 3a28344..0d6a144 100644 --- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java @@ -1,13 +1,21 @@ package com.mzl.flower.service.impl.wallet; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.mzl.flower.config.security.SecurityUtils; +import com.mzl.flower.dto.response.supplier.SupplierDTO; import com.mzl.flower.entity.coupon.CouponTemplateDO; import com.mzl.flower.entity.wallet.WalletDO; import com.mzl.flower.enums.TrueOrFalseEnum; import com.mzl.flower.mapper.wallet.WalletMapper; +import com.mzl.flower.service.supplier.SupplierService; import com.mzl.flower.service.wallet.WalletService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; /** * <p> @@ -20,16 +28,54 @@ @Service public class WalletServiceImpl extends ServiceImpl<WalletMapper, WalletDO> implements WalletService { + @Autowired + private SupplierService supplierService; @Override - public WalletDO getBySupplierId(Long supplierId) { + public WalletDO getBySupplierId() { + final SupplierDTO currentSupplier = supplierService.getCurrentSupplier(); // 根据供应商ID获取钱包信息 - if (supplierId != null) { + // 查询的条件的deleted的字段得为0 - return getOne(new LambdaQueryWrapper<WalletDO>() - .eq(WalletDO::getDeleted, TrueOrFalseEnum.FALSE.isFlag()) - .eq(WalletDO::getSupplierId, supplierId)); - } - return null; + // 下面的单独封装成一个方法 + WalletDO walletDO = getBySupplierId(currentSupplier.getId()); + + if(null==walletDO){ + // 先创建一个钱包 + walletDO=new WalletDO(); + walletDO.setUserId(SecurityUtils.getUserId()); + walletDO.setSupplierId(currentSupplier.getId()); + walletDO.setTotalAmount(BigDecimal.ZERO); + walletDO.setWithdrawableAmount(BigDecimal.ZERO); + //把所有涉及BigDecimal的金额都设置为0 + walletDO.setWithdrawingAmount(BigDecimal.ZERO); + walletDO.setWithdrawnAmount(BigDecimal.ZERO); + walletDO.setSettlingAmount(BigDecimal.ZERO); + walletDO.setTotalDeduction(BigDecimal.ZERO); + walletDO.setTotalTransactionAmount(BigDecimal.ZERO); + walletDO.create(SecurityUtils.getUserId()); + baseMapper.insert(walletDO); + // 将再次查询的结果返回 + walletDO=getBySupplierId(currentSupplier.getId()); + } + + + return walletDO; } + + + public WalletDO getBySupplierId(Long supplierId){ + // 不用getOne,用获取list的第一个元素 + + List<WalletDO> walletDOS = baseMapper.selectList(new LambdaQueryWrapper<WalletDO>() + .eq(WalletDO::getDeleted, TrueOrFalseEnum.FALSE.isFlag()) + .eq(WalletDO::getSupplierId, supplierId)); + if(!CollectionUtils.isEmpty(walletDOS)){ + return walletDOS.get(0); + }else return null; + } + + + + } diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java index d4793f1..b7b71fd 100644 --- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java @@ -40,7 +40,7 @@ throw new ValidationException("供应商不能为空"); } - final WalletDO walletDO = walletService.getBySupplierId(supplierDTO.getId()); + final WalletDO walletDO = walletService.getBySupplierId(); if(null==walletDO){ throw new ValidationException("钱包不能为空"); } diff --git a/src/main/java/com/mzl/flower/service/wallet/WalletService.java b/src/main/java/com/mzl/flower/service/wallet/WalletService.java index db0d8aa..f7d4035 100644 --- a/src/main/java/com/mzl/flower/service/wallet/WalletService.java +++ b/src/main/java/com/mzl/flower/service/wallet/WalletService.java @@ -13,5 +13,5 @@ */ public interface WalletService extends IService<WalletDO> { - WalletDO getBySupplierId(Long supplierId); + WalletDO getBySupplierId(); } diff --git a/src/main/java/com/mzl/flower/web/v2/wallet/WalletController.java b/src/main/java/com/mzl/flower/web/v2/wallet/WalletController.java index 63ba753..ceee11d 100644 --- a/src/main/java/com/mzl/flower/web/v2/wallet/WalletController.java +++ b/src/main/java/com/mzl/flower/web/v2/wallet/WalletController.java @@ -66,7 +66,7 @@ throw new ValidationException("供应商不能为空"); } - return walletService.getBySupplierId(currentSupplier.getId()); + return walletService.getBySupplierId(); } @GetMapping("/page") -- Gitblit v1.9.3