Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Amparo
amparo-backend
Commits
37c7606b
Commit
37c7606b
authored
1 year ago
by
Luis Felipe Copetti Rossi
Browse files
Options
Download
Email Patches
Plain Diff
fazendo a query da incopativel
parent
f58dba62
Pipeline
#11230
failed with stage
in 1 minute and 45 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
src/main/java/br/com/amparo/backend/controllers/MedicineController.java
+12
-9
...br/com/amparo/backend/controllers/MedicineController.java
src/main/java/br/com/amparo/backend/dto/medicine/MedicineIncResponse.java
+1
-6
.../com/amparo/backend/dto/medicine/MedicineIncResponse.java
src/main/java/br/com/amparo/backend/repository/MedicineRepository.java
+12
-20
.../br/com/amparo/backend/repository/MedicineRepository.java
src/main/java/br/com/amparo/backend/service/MedicineService.java
+2
-3
...n/java/br/com/amparo/backend/service/MedicineService.java
src/main/java/br/com/amparo/backend/service/impl/MedicineServiceImpl.java
+1
-3
.../com/amparo/backend/service/impl/MedicineServiceImpl.java
with
28 additions
and
41 deletions
+28
-41
src/main/java/br/com/amparo/backend/controllers/MedicineController.java
View file @
37c7606b
...
...
@@ -53,18 +53,21 @@ public class MedicineController {
@PreAuthorize
(
"hasRole('PATIENT') or hasRole('DOCTOR')"
)
public
ResponseEntity
<?>
findAllIncompatibility
(
@PathVariable
int
id
)
{
Optional
<
List
<
MedicineIncResponse
>>
incompatibilities
=
medicineService
.
findAllIncompatibility
(
id
);
if
(
incompatibilities
.
isEmpty
())
{
return
new
ResponseEntity
<>(
HttpStatus
.
NOT_FOUND
);
}
else
{
return
ResponseEntity
.
ok
(
incompatibilities
);
if
(
incompatibilities
.
isEmpty
())
{
return
new
ResponseEntity
<>(
HttpStatus
.
NOT_FOUND
);
}
else
{
return
ResponseEntity
.
ok
(
incompatibilities
);
}
}
@PostMapping
(
"/incompatibility
/test/{id}
"
)
@PostMapping
(
"/
{id}/
incompatibility"
)
@PreAuthorize
(
"hasRole('PATIENT') or hasRole('DOCTOR')"
)
public
ResponseEntity
<
List
<
MedicineIncResponse
>>
findIncompatibility
(
@PathVariable
int
id
,
@RequestBody
Map
<
String
,
List
<
Integer
>>
body
)
{
List
<
Integer
>
listIdInc
=
body
.
get
(
"idInc"
);
Optional
<
List
<
MedicineIncResponse
>>
incompatibilities
=
medicineService
.
findIncompatibility
(
id
,
listIdInc
);
return
incompatibilities
.
map
(
ResponseEntity:
:
ok
).
orElseGet
(()
->
ResponseEntity
.
notFound
().
build
());
public
ResponseEntity
<?>
listIncompatibility
(
@PathVariable
int
id
,
@RequestBody
List
<
Integer
>
incompatibilities
)
{
List
<
Map
<
String
,
Integer
>>
list
=
new
ArrayList
<>();
for
(
Integer
incompatibility
:
incompatibilities
)
{
list
.
add
(
Map
.
of
(
"id"
,
id
,
"incompatibility"
,
incompatibility
));
}
medicineService
.
listIncompatibility
(
list
);
return
ResponseEntity
.
ok
().
build
();
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/main/java/br/com/amparo/backend/dto/medicine/MedicineIncResponse.java
View file @
37c7606b
package
br.com.amparo.backend.dto.medicine
;
public
record
MedicineIncResponse
(
int
idMedicine
,
idMedicineInc
,
String
incompatibility
)
{
public
MedicineIncResponse
{
this
.
idMedicine
=
idMedicine
;
this
.
idMedicineInc
=
idMedicineInc
;
this
.
incompatibility
=
incompatibility
;
}
public
record
MedicineIncResponse
(
int
id
,
String
severity
,
String
incompatibility
)
{
}
This diff is collapsed.
Click to expand it.
src/main/java/br/com/amparo/backend/repository/MedicineRepository.java
View file @
37c7606b
...
...
@@ -97,25 +97,19 @@ public class MedicineRepository {
}
}
public
Optional
<
List
<
MedicineIncResponse
>>
findIncompatibility
(
int
id
,
List
<
Integer
>
idInc
)
{
List
<
MedicineIncResponse
>
result
=
new
ArrayList
<>();
public
Optional
<
List
<
MedicineIncResponse
>>
listIncompatibility
(
int
id
)
{
try
{
StringJoiner
joiner
=
new
StringJoiner
(
","
,
"("
,
")"
);
for
(
int
i
=
0
;
i
<
idInc
.
size
();
i
++)
{
joiner
.
add
(
"?"
);
}
String
sql
=
"SELECT i.severity, "
+
"m1.name AS medicine_name, "
+
"m2.name AS incompatibility_name "
+
"FROM Incompatibility i "
+
"JOIN Medicine m1 ON i.id_medicine = m1.id "
+
"JOIN Medicine m2 ON i.id_medicine_inc = m2.id "
+
"WHERE m1.id = ? OR m1.id IN "
+
joiner
.
toString
();
MapSqlParameterSource
param
=
new
MapSqlParameterSource
();
param
.
addValue
(
"id"
,
id
);
for
(
int
i
=
0
;
i
<
idInc
.
size
();
i
++)
{
param
.
addValue
(
"idInc"
+
i
,
idInc
.
get
(
i
));
}
String
sql
=
"""
SELECT m."
id
" as "
id_medicine_inc
",
m."
name
" as "
name_medicine_inc
",
i."
severity
" as "
severity
"
FROM "
Medicine
" m
INNER JOIN "
Incompatibility
" i ON m."
id
" = i."
id_medicine_inc
"
WHERE i."
id_medicine
" = :id
"""
;
MapSqlParameterSource
param
=
new
MapSqlParameterSource
(
Map
.
of
(
"id"
,
id
)
);
List
<
MedicineIncResponse
>
medicineIncResponse
=
jdbcTemplate
.
query
(
sql
,
param
,
(
rs
,
rowNum
)
->
new
MedicineIncResponse
(
rs
.
getInt
(
"id_medicine_inc"
),
rs
.
getString
(
"name_medicine_inc"
),
...
...
@@ -132,8 +126,6 @@ public class MedicineRepository {
}
}
public
List
<
MedicineResponse
>
findAllMedicines
(
int
pageNumber
,
int
pageSize
)
{
try
{
String
sql
=
"""
...
...
This diff is collapsed.
Click to expand it.
src/main/java/br/com/amparo/backend/service/MedicineService.java
View file @
37c7606b
...
...
@@ -5,6 +5,7 @@ import br.com.amparo.backend.dto.medicine.MedicineResponse;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
public
interface
MedicineService
{
...
...
@@ -14,7 +15,5 @@ public interface MedicineService {
Optional
<
List
<
MedicineIncResponse
>>
findAllIncompatibility
(
int
id
);
List
<
MedicineResponse
>
findAllMedicines
(
int
pageNumber
,
int
pageSize
);
Optional
<
List
<
MedicineIncResponse
>>
findIncompatibility
(
int
id
,
List
<
Integer
>
idInc
);
List
<
MedicineIncResponse
>
listIncompatibility
(
List
<
Map
<
String
,
Integer
>>
list
);
}
This diff is collapsed.
Click to expand it.
src/main/java/br/com/amparo/backend/service/impl/MedicineServiceImpl.java
View file @
37c7606b
...
...
@@ -33,7 +33,5 @@ public class MedicineServiceImpl implements MedicineService {
return
repository
.
findAllIncompatibility
(
id
);
}
public
Optional
<
List
<
MedicineIncResponse
>>
findIncompatibility
(
int
id
,
List
<
Integer
>
idInc
)
{
return
repository
.
findIncompatibility
(
id
,
idInc
);
}
}
This diff is collapsed.
Click to expand it.
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
Menu
Projects
Groups
Snippets
Help