Преглед на файлове

Use projections for project search

tags/Baseline_30082024_BACKEND_UAT
Wayne преди 1 година
родител
ревизия
b3bb5f381e
променени са 4 файла, в които са добавени 28 реда и са изтрити 3 реда
  1. +21
    -0
      src/main/java/com/ffii/tsms/modules/data/entity/projections/ProjectSearchInfo.kt
  2. +2
    -0
      src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt
  3. +3
    -2
      src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt
  4. +2
    -1
      src/main/java/com/ffii/tsms/modules/project/web/ProjectsController.kt

+ 21
- 0
src/main/java/com/ffii/tsms/modules/data/entity/projections/ProjectSearchInfo.kt Целия файл

@@ -0,0 +1,21 @@
package com.ffii.tsms.modules.data.entity.projections

import org.springframework.beans.factory.annotation.Value

/**
* Projection for {@link com.ffii.tsms.modules.project.entity.Project}
*/
interface ProjectSearchInfo {
val id: Long?
val name: String?
val code: String?

@get:Value("#{target.projectCategory.name}")
val category: String?

@get:Value("#{target.teamLead.team.code}")
val team: String?

@get:Value("#{target.customer.name}")
val client: String?
}

+ 2
- 0
src/main/java/com/ffii/tsms/modules/project/entity/ProjectRepository.kt Целия файл

@@ -1,6 +1,8 @@
package com.ffii.tsms.modules.project.entity;

import com.ffii.core.support.AbstractRepository
import com.ffii.tsms.modules.data.entity.projections.ProjectSearchInfo

interface ProjectRepository : AbstractRepository<Project, Long> {
fun findProjectSearchInfoBy(): List<ProjectSearchInfo>
}

+ 3
- 2
src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt Целия файл

@@ -1,6 +1,7 @@
package com.ffii.tsms.modules.project.service

import com.ffii.tsms.modules.data.entity.StaffRepository
import com.ffii.tsms.modules.data.entity.projections.ProjectSearchInfo
import com.ffii.tsms.modules.data.service.CustomerService
import com.ffii.tsms.modules.project.entity.Project
import com.ffii.tsms.modules.project.entity.ProjectCategory
@@ -15,8 +16,8 @@ class ProjectsService(
private val customerService: CustomerService, private val projectCategoryRepository: ProjectCategoryRepository,
private val staffRepository: StaffRepository
) {
fun allProjects(): List<Project> {
return projectRepository.findAll()
fun allProjects(): List<ProjectSearchInfo> {
return projectRepository.findProjectSearchInfoBy()
}

fun allProjectCategories(): List<ProjectCategory> {


+ 2
- 1
src/main/java/com/ffii/tsms/modules/project/web/ProjectsController.kt Целия файл

@@ -1,5 +1,6 @@
package com.ffii.tsms.modules.project.web

import com.ffii.tsms.modules.data.entity.projections.ProjectSearchInfo
import com.ffii.tsms.modules.project.entity.Project
import com.ffii.tsms.modules.project.entity.ProjectCategory
import com.ffii.tsms.modules.project.service.ProjectsService
@@ -11,7 +12,7 @@ import org.springframework.web.bind.annotation.*
@RequestMapping("/projects")
class ProjectsController(private val projectsService: ProjectsService) {
@GetMapping
fun allProjects(): List<Project> {
fun allProjects(): List<ProjectSearchInfo> {
return projectsService.allProjects()
}



Зареждане…
Отказ
Запис