Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
templateService
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Bazarbay Tulenov
templateService
Commits
8d1241ec
Commit
8d1241ec
authored
Dec 26, 2023
by
aimagambetov_an
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
issue-23 and filter in tempalate/getAll
parent
a2290723
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
77 additions
and
8 deletions
+77
-8
src/main/java/kz/project/printedFormsService/controller/TemplateController.java
...ct/printedFormsService/controller/TemplateController.java
+3
-2
src/main/java/kz/project/printedFormsService/data/repository/TemplateJdbcRepository.java
...dFormsService/data/repository/TemplateJdbcRepository.java
+61
-0
src/main/java/kz/project/printedFormsService/service/TemplateService.java
.../project/printedFormsService/service/TemplateService.java
+1
-1
src/main/java/kz/project/printedFormsService/service/impl/TemplateServiceImpl.java
...printedFormsService/service/impl/TemplateServiceImpl.java
+12
-5
No files found.
src/main/java/kz/project/printedFormsService/controller/TemplateController.java
View file @
8d1241ec
...
...
@@ -270,11 +270,12 @@ public class TemplateController {
@Operation
(
description
=
"Метод для получения всех шаблонов"
)
public
ResponseEntity
getAll
(
@Parameter
(
name
=
"isActive"
)
@RequestParam
(
value
=
"isActive"
,
required
=
false
)
Boolean
isActive
,
@Parameter
(
name
=
"page"
)
@RequestParam
(
value
=
"page"
,
defaultValue
=
"0"
)
Integer
page
,
@Parameter
(
name
=
"size"
)
@RequestParam
(
value
=
"size"
,
defaultValue
=
"50"
)
Integer
size
)
{
@Parameter
(
name
=
"size"
)
@RequestParam
(
value
=
"size"
,
defaultValue
=
"50"
)
Integer
size
,
@Parameter
(
name
=
"search"
)
@RequestParam
(
value
=
"search"
,
required
=
false
)
String
search
)
{
try
{
processLogger
.
start
(
TemplateController
.
class
,
new
Throwable
().
getStackTrace
()[
0
].
getMethodName
(),
"Получение списка шаблонов"
);
Page
<
TemplateShortDto
>
allTemplates
=
service
.
getAllTemplate
(
isActive
,
PageRequest
.
of
(
page
,
size
));
Page
<
TemplateShortDto
>
allTemplates
=
service
.
getAllTemplate
(
isActive
,
PageRequest
.
of
(
page
,
size
)
,
search
);
processLogger
.
finish
(
TemplateController
.
class
,
new
Throwable
().
getStackTrace
()[
0
].
getMethodName
(),
"Получение списка шаблонов"
);
return
ResponseEntity
.
ok
(
allTemplates
);
}
catch
(
Exception
e
)
{
...
...
src/main/java/kz/project/printedFormsService/data/repository/TemplateJdbcRepository.java
0 → 100644
View file @
8d1241ec
package
kz.project.printedFormsService.data.repository
;
import
kz.project.printedFormsService.data.entity.TemplateEntity
;
import
kz.project.printedFormsService.data.entity.dict.DTemplateType
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
@RequiredArgsConstructor
public
class
TemplateJdbcRepository
{
private
final
JdbcTemplate
jdbcTemplate
;
public
Page
<
TemplateEntity
>
findAllByStatusAndFilter
(
Boolean
isActive
,
Pageable
pageable
,
String
search
,
List
<
String
>
projects
)
{
StringBuilder
inClause
=
new
StringBuilder
(
"t.project IN (?"
);
inClause
.
append
(
", ?"
.
repeat
(
Math
.
max
(
0
,
projects
.
size
()
-
1
)));
inClause
.
append
(
")"
);
String
sql
=
"SELECT t.*, type.id as typeId, type.code as typeCode, type.name as typeName FROM template_schema.template t "
+
"INNER JOIN template_schema.d_template_type type ON t.type_id = type.id "
+
"WHERE "
+
inClause
;
if
(
isActive
!=
null
)
{
sql
+=
" AND t.status = "
+
isActive
;
}
if
(
search
!=
null
)
{
sql
+=
" AND (t.code = '"
+
search
+
"' OR t.name = '"
+
search
+
"')"
;
}
sql
+=
" LIMIT ? OFFSET ?"
;
Object
[]
queryParams
=
projects
.
toArray
();
Object
[]
additionalParams
=
{
pageable
.
getPageSize
(),
pageable
.
getOffset
()};
Object
[]
allParams
=
ArrayUtils
.
addAll
(
queryParams
,
additionalParams
);
List
<
TemplateEntity
>
result
=
jdbcTemplate
.
query
(
sql
,
allParams
,
(
rs
,
rowNum
)
->
{
DTemplateType
type
=
new
DTemplateType
();
type
.
setId
(
rs
.
getLong
(
"typeId"
));
type
.
setCode
(
rs
.
getString
(
"typeCode"
));
type
.
setName
(
rs
.
getString
(
"typeName"
));
TemplateEntity
templateEntity
=
new
TemplateEntity
();
templateEntity
.
setId
(
rs
.
getLong
(
"id"
));
templateEntity
.
setCode
(
rs
.
getString
(
"code"
));
templateEntity
.
setName
(
rs
.
getString
(
"name"
));
templateEntity
.
setStatus
(
rs
.
getBoolean
(
"status"
));
templateEntity
.
setProject
(
rs
.
getString
(
"project"
));
templateEntity
.
setVersion
(
rs
.
getInt
(
"version"
));
templateEntity
.
setType
(
type
);
return
templateEntity
;
});
return
new
PageImpl
<>(
result
,
pageable
,
100L
);
}
}
src/main/java/kz/project/printedFormsService/service/TemplateService.java
View file @
8d1241ec
...
...
@@ -23,7 +23,7 @@ public interface TemplateService {
void
delete
(
String
code
)
throws
ValidationException
;
Page
<
TemplateShortDto
>
getAllTemplate
(
Boolean
isActive
,
Pageable
pageable
);
Page
<
TemplateShortDto
>
getAllTemplate
(
Boolean
isActive
,
Pageable
pageable
,
String
search
);
TemplateDto
getTemplateData
(
Long
id
)
throws
ValidationException
;
...
...
src/main/java/kz/project/printedFormsService/service/impl/TemplateServiceImpl.java
View file @
8d1241ec
...
...
@@ -31,6 +31,7 @@ import java.util.Map;
@Service
public
class
TemplateServiceImpl
implements
TemplateService
{
private
final
TemplateRepository
repository
;
private
final
TemplateJdbcRepository
templateJdbcRepository
;
private
final
TemplateVersionRepository
versionRepository
;
private
final
DTemplateTypeRepository
dTemplateTypeRepository
;
...
...
@@ -39,12 +40,14 @@ public class TemplateServiceImpl implements TemplateService {
private
ProcessLogger
processLogger
;
public
TemplateServiceImpl
(
TemplateRepository
repository
,
TemplateJdbcRepository
templateJdbcRepository
,
TemplateVersionRepository
versionRepository
,
DTemplateTypeRepository
dTemplateTypeRepository
,
TemplateFileInfoRepository
fileInfoRepository
,
DocumentRepository
documentRepository
,
ProcessLogger
processLogger
)
{
this
.
repository
=
repository
;
this
.
templateJdbcRepository
=
templateJdbcRepository
;
this
.
versionRepository
=
versionRepository
;
this
.
dTemplateTypeRepository
=
dTemplateTypeRepository
;
this
.
fileInfoRepository
=
fileInfoRepository
;
...
...
@@ -128,11 +131,15 @@ public class TemplateServiceImpl implements TemplateService {
}
@Override
public
Page
<
TemplateShortDto
>
getAllTemplate
(
Boolean
isActive
,
Pageable
pageable
)
{
if
(
isActive
==
null
)
return
TemplateShortDto
.
toDtoList
(
repository
.
findAll
(
pageable
));
else
if
(
isActive
)
return
TemplateShortDto
.
toDtoList
(
repository
.
findAllByStatusTrue
(
pageable
));
else
return
TemplateShortDto
.
toDtoList
(
repository
.
findAllByStatusFalse
(
pageable
));
public
Page
<
TemplateShortDto
>
getAllTemplate
(
Boolean
isActive
,
Pageable
pageable
,
String
search
)
{
Map
<
String
,
List
<
String
>>
projectRoleMap
=
SecurityContextUtils
.
getProjectRoleMap
();
List
<
String
>
valuesToCheck
=
Arrays
.
asList
(
"creator"
,
"editor"
,
"delete"
,
"admin"
);
List
<
String
>
projects
=
projectRoleMap
.
entrySet
()
.
stream
()
.
filter
(
entry
->
valuesToCheck
.
stream
().
anyMatch
(
entry
.
getValue
()::
contains
))
.
map
(
Map
.
Entry
::
getKey
)
.
toList
();
return
TemplateShortDto
.
toDtoList
(
templateJdbcRepository
.
findAllByStatusAndFilter
(
isActive
,
pageable
,
search
,
projects
));
}
@Override
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment