From 320e9165ac6cc6d90978fbef3074a8ed9add1790 Mon Sep 17 00:00:00 2001
From: Administrator <1101184511@qq.com>
Date: 星期五, 09 五月 2025 01:21:32 +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