diff --git a/src/main/java/com/yn/bftl/thirdparty/common/repository/AccountRepository.java b/src/main/java/com/yn/bftl/thirdparty/common/repository/AccountRepository.java index 9f6c4e6..b416ba6 100644 --- a/src/main/java/com/yn/bftl/thirdparty/common/repository/AccountRepository.java +++ b/src/main/java/com/yn/bftl/thirdparty/common/repository/AccountRepository.java @@ -4,8 +4,13 @@ import com.yn.bftl.common.modules.account.enums.AccountType; import com.yn.bftl.common.modules.company.entity.Company; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; /** * $AccountRepository @@ -22,4 +27,9 @@ @Query(value = "select acc from Account acc " + " where acc.company.id = ?1 and acc.type = 'DEPOSIT'" ) Account findDepositAccount(Long companyId); + + @Modifying + @Transactional + @Query("UPDATE Account account SET account.balance = account.balance + :amount where account.company = :companyId and account.type = 'DEPOSIT' and account.state = 'ENABLED'") + int plusBalanceForCompany(@Param("amount") BigDecimal amount, @Param("companyId") Long companyId); }