From f318c9c7c127b00f353bf45f273096d1dc4b424f Mon Sep 17 00:00:00 2001 From: admin <1101184511@qq.com> Date: 星期三, 20 八月 2025 01:10:48 +0800 Subject: [PATCH] 功能完善 --- src/main/java/com/taoke/autopay/service/impl/credit/UserCreditBalanceServiceImpl.java | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/taoke/autopay/service/impl/credit/UserCreditBalanceServiceImpl.java b/src/main/java/com/taoke/autopay/service/impl/credit/UserCreditBalanceServiceImpl.java index 56e370d..02b2870 100644 --- a/src/main/java/com/taoke/autopay/service/impl/credit/UserCreditBalanceServiceImpl.java +++ b/src/main/java/com/taoke/autopay/service/impl/credit/UserCreditBalanceServiceImpl.java @@ -22,7 +22,7 @@ @Override public void initializeCreditBalance(Long userId) { - if(getCreditBalanceByUserId(userId)!=null){ + if (getCreditBalanceByUserId(userId) != null) { return; } UserCreditBalance userCreditBalance = new UserCreditBalance(); @@ -30,7 +30,7 @@ userCreditBalance.setCreditBalance(0); userCreditBalance.setCreateTime(new Date()); userCreditBalance.setUpdateTime(new Date()); - userCreditBalanceMapper.insert(userCreditBalance); + userCreditBalanceMapper.insertSelective(userCreditBalance); } @Override @@ -52,18 +52,28 @@ @Override public void increaseCreditBalance(Long userId, int amount) { UserCreditBalance userCreditBalance = userCreditBalanceMapper.selectByPrimaryKeyForUpdate(userId); + if (userCreditBalance == null) { + initializeCreditBalance(userId); + userCreditBalance = userCreditBalanceMapper.selectByPrimaryKeyForUpdate(userId); + } if (userCreditBalance != null) { userCreditBalanceMapper.updateByPrimaryKeySelective(UserCreditBalance.builder() - .id(userCreditBalance.getId()) - .creditBalance(userCreditBalance.getCreditBalance() + amount) - .updateTime(new Date()) + .id(userCreditBalance.getId()) + .creditBalance(userCreditBalance.getCreditBalance() + amount) + .updateTime(new Date()) .build()); } } + @Transactional(rollbackFor = Exception.class) @Override public void decreaseCreditBalance(Long userId, int amount) { UserCreditBalance userCreditBalance = userCreditBalanceMapper.selectByPrimaryKeyForUpdate(userId); + if (userCreditBalance == null) { + initializeCreditBalance(userId); + userCreditBalance = userCreditBalanceMapper.selectByPrimaryKeyForUpdate(userId); + } + if (userCreditBalance != null) { userCreditBalanceMapper.updateByPrimaryKeySelective(UserCreditBalance.builder() .id(userCreditBalance.getId()) -- Gitblit v1.8.0