last transfer

This commit is contained in:
Vladimir Voronin
2025-01-07 13:00:16 +03:00
parent afd8e9f6d7
commit 2506e6081f
7 changed files with 35 additions and 7 deletions

View File

@@ -6,6 +6,7 @@ import org.springframework.web.bind.annotation.RestController
import reactor.core.publisher.Mono import reactor.core.publisher.Mono
import space.luminic.budgerapp.models.Budget import space.luminic.budgerapp.models.Budget
import space.luminic.budgerapp.models.Category import space.luminic.budgerapp.models.Category
import space.luminic.budgerapp.models.Recurrent
import space.luminic.budgerapp.models.Transaction import space.luminic.budgerapp.models.Transaction
import space.luminic.budgerapp.services.TransferService import space.luminic.budgerapp.services.TransferService
@@ -23,6 +24,11 @@ class TransferController(private val transferService: TransferService) {
return transferService.getCategories() return transferService.getCategories()
} }
@GetMapping("/recurrents")
fun recurrentTransactions(): Mono<List<Recurrent>> {
return transferService.recurrents()
}
@GetMapping("/budgets") @GetMapping("/budgets")
fun budgets(): Mono<List<Budget>> { fun budgets(): Mono<List<Budget>> {
return transferService.transferBudgets() return transferService.transferBudgets()

View File

@@ -0,0 +1,6 @@
package space.luminic.budgerapp.repos
import org.springframework.data.mongodb.repository.MongoRepository
import space.luminic.budgerapp.models.Recurrent
interface RecurrentRepoOld : MongoRepository<Recurrent, String>

View File

@@ -7,13 +7,14 @@ import org.springframework.stereotype.Repository
import space.luminic.budgerapp.models.Recurrent import space.luminic.budgerapp.models.Recurrent
import space.luminic.budgerapp.models.Transaction import space.luminic.budgerapp.models.Transaction
import space.luminic.budgerapp.models.TransactionType import space.luminic.budgerapp.models.TransactionType
import space.luminic.budgerapp.services.CategoryService import space.luminic.budgerapp.repos.CategoryRepoOld
@Repository @Repository
class RecurrentRepoSQL( class RecurrentRepoSQL(
private val jdbcTemplate: JdbcTemplate, private val jdbcTemplate: JdbcTemplate,
private val categoryService: CategoryService private val categoryRepoOld: CategoryRepoOld
) { ) {
private val logger = LoggerFactory.getLogger(RecurrentRepoSQL::class.java) private val logger = LoggerFactory.getLogger(RecurrentRepoSQL::class.java)
@@ -26,7 +27,7 @@ class RecurrentRepoSQL(
val recurrent = Recurrent( val recurrent = Recurrent(
atDay = rs.getInt("at_day"), atDay = rs.getInt("at_day"),
category = categoryService.getCategoryByName(rs.getString("c_name")).block()!!, category = categoryRepoOld.findByName(rs.getString("c_name"))!!,
name = rs.getString("name"), name = rs.getString("name"),
description = rs.getString("description"), description = rs.getString("description"),
amount = rs.getInt("amount") amount = rs.getInt("amount")

View File

@@ -5,21 +5,26 @@ import reactor.core.publisher.Flux
import reactor.core.publisher.Mono import reactor.core.publisher.Mono
import space.luminic.budgerapp.models.Budget import space.luminic.budgerapp.models.Budget
import space.luminic.budgerapp.models.Category import space.luminic.budgerapp.models.Category
import space.luminic.budgerapp.models.Recurrent
import space.luminic.budgerapp.models.Transaction import space.luminic.budgerapp.models.Transaction
import space.luminic.budgerapp.repos.BudgetRepo import space.luminic.budgerapp.repos.BudgetRepo
import space.luminic.budgerapp.repos.CategoryRepo import space.luminic.budgerapp.repos.CategoryRepo
import space.luminic.budgerapp.repos.RecurrentRepo
import space.luminic.budgerapp.repos.TransactionRepo import space.luminic.budgerapp.repos.TransactionRepo
import space.luminic.budgerapp.repos.sqlrepo.BudgetRepoSQL import space.luminic.budgerapp.repos.sqlrepo.BudgetRepoSQL
import space.luminic.budgerapp.repos.sqlrepo.CategoriesRepoSQL import space.luminic.budgerapp.repos.sqlrepo.CategoriesRepoSQL
import space.luminic.budgerapp.repos.sqlrepo.RecurrentRepoSQL
import space.luminic.budgerapp.repos.sqlrepo.TransactionsRepoSQl import space.luminic.budgerapp.repos.sqlrepo.TransactionsRepoSQl
@Service @Service
class TransferService( class TransferService(
private val transactionsRepoSQl: TransactionsRepoSQl, private val transactionsRepoSQl: TransactionsRepoSQl,
private val categoriesRepoSQL: CategoriesRepoSQL, private val categoriesRepoSQL: CategoriesRepoSQL,
private val recurrentRepoSQL: RecurrentRepoSQL,
private val budgetRepoSQL: BudgetRepoSQL, private val budgetRepoSQL: BudgetRepoSQL,
private val categoryRepo: CategoryRepo, private val categoryRepo: CategoryRepo,
private val transactionRepo: TransactionRepo, private val transactionRepo: TransactionRepo,
private val recurrentRepo: RecurrentRepo,
private val budgetService: BudgetService private val budgetService: BudgetService
) { ) {
@@ -37,6 +42,13 @@ class TransferService(
.collectList() // Преобразуем Flux<Category> в Mono<List<Category>> .collectList() // Преобразуем Flux<Category> в Mono<List<Category>>
} }
fun recurrents(): Mono<List<Recurrent>> {
val recurrents = recurrentRepoSQL.getRecurrents()
return Flux.fromIterable(recurrents).flatMap { recurrent ->
recurrentRepo.save(recurrent)
}.collectList()
}
fun transferBudgets(): Mono<List<Budget>> { fun transferBudgets(): Mono<List<Budget>> {
val budgets = budgetRepoSQL.getBudgets() val budgets = budgetRepoSQL.getBudgets()

View File

@@ -1,8 +1,11 @@
spring.application.name=budger-app spring.application.name=budger-app
spring.data.mongodb.host=127.0.0.1 spring.data.mongodb.host=213.226.71.138
spring.data.mongodb.port=27017 spring.data.mongodb.port=27017
spring.data.mongodb.database=budger-app spring.data.mongodb.database=budger-app
spring.data.mongodb.username=budger-app
spring.data.mongodb.password=BA1q2w3e4r!
spring.data.mongodb.authentication-database=admin
management.endpoints.web.exposure.include=* management.endpoints.web.exposure.include=*

View File

@@ -1,7 +1,7 @@
spring.application.name=budger-app spring.application.name=budger-app
spring.data.mongodb.host=213.226.71.138 spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017 spring.data.mongodb.port=27017
spring.data.mongodb.database=budger-app spring.data.mongodb.database=budger-app
spring.data.mongodb.username=budger-app spring.data.mongodb.username=budger-app
@@ -19,7 +19,7 @@ logging.level.org.springframework.data = INFO
logging.level.org.springframework.data.mongodb.core.ReactiveMongoTemplate=INFO logging.level.org.springframework.data.mongodb.core.ReactiveMongoTemplate=INFO
logging.level.org.springframework.security = INFO logging.level.org.springframework.security = INFO
logging.level.org.springframework.data.mongodb.code = INFO logging.level.org.springframework.data.mongodb.code = INFO
logging.level.org.springframework.web.reactive=INFO logging.level.org.springframework.web.reactive=INFO<EFBFBD>

View File

@@ -4,7 +4,7 @@ server.port=8082
#server.servlet.context-path=/api #server.servlet.context-path=/api
spring.webflux.base-path=/api spring.webflux.base-path=/api
spring.profiles.active=prod spring.profiles.active=dev
spring.main.web-application-type=reactive spring.main.web-application-type=reactive