admin
2025-08-20 f318c9c7c127b00f353bf45f273096d1dc4b424f
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())