|
5 | 5 | import club.dnd5.portal.dto.api.RequestApi; |
6 | 6 | import club.dnd5.portal.dto.api.item.MagicItemApi; |
7 | 7 | import club.dnd5.portal.dto.api.item.MagicItemDetailApi; |
8 | | -import club.dnd5.portal.dto.api.item.MagicItemRequesApi; |
| 8 | +import club.dnd5.portal.dto.api.item.MagicItemRequestApi; |
9 | 9 | import club.dnd5.portal.dto.api.spells.SearchRequest; |
10 | 10 | import club.dnd5.portal.dto.fvtt.export.FCreature; |
11 | 11 | import club.dnd5.portal.exception.PageNotFoundException; |
@@ -44,7 +44,7 @@ public class MagicItemApiController { |
44 | 44 |
|
45 | 45 | @Operation(summary = "Получение краткого списка магических предметов и артефактов") |
46 | 46 | @PostMapping(value = "/api/v1/items/magic", produces = MediaType.APPLICATION_JSON_VALUE) |
47 | | - public List<MagicItemApi> getItems(@RequestBody MagicItemRequesApi request) { |
| 47 | + public List<MagicItemApi> getItems(@RequestBody MagicItemRequestApi request) { |
48 | 48 | Specification<MagicItem> specification = null; |
49 | 49 | Optional<RequestApi> optionalRequest = Optional.ofNullable(request); |
50 | 50 | if (!optionalRequest.map(RequestApi::getSearch).map(SearchRequest::getValue).orElse("").isEmpty()) { |
@@ -93,6 +93,14 @@ public List<MagicItemApi> getItems(@RequestBody MagicItemRequesApi request) { |
93 | 93 | specification = SpecificationUtil.getAndSpecification(specification, (root, query, cb) -> cb.isNull(root.get("charge"))); |
94 | 94 | } |
95 | 95 | } |
| 96 | + if (!request.getFilter().getCurse().isEmpty()) { |
| 97 | + if (request.getFilter().getCurse().contains("1")) { |
| 98 | + specification = SpecificationUtil.getAndSpecification(specification, (root, query, cb) -> cb.equal(root.get("curse"), 1)); |
| 99 | + } |
| 100 | + if (request.getFilter().getCurse().contains("2")) { |
| 101 | + specification = SpecificationUtil.getAndSpecification(specification, (root, query, cb) -> cb.equal(root.get("curse"), 0)); |
| 102 | + } |
| 103 | + } |
96 | 104 | } |
97 | 105 | Pageable pageable = PageAndSortUtil.getPageable(request); |
98 | 106 | return magicItemRepository.findAll(specification, pageable).toList() |
@@ -166,6 +174,13 @@ public FilterApi getMagicItemsFilter() { |
166 | 174 | chargeFilter.setValues(values); |
167 | 175 | otherFilters.add(chargeFilter); |
168 | 176 |
|
| 177 | + FilterApi curseFilter = new FilterApi("Проклятие", "curse"); |
| 178 | + List<FilterValueApi> curseValues = new ArrayList<>(2); |
| 179 | + curseValues.add(new FilterValueApi("есть", 1)); |
| 180 | + curseValues.add(new FilterValueApi("нет", 2)); |
| 181 | + curseFilter.setValues(curseValues); |
| 182 | + otherFilters.add(curseFilter); |
| 183 | + |
169 | 184 | filters.setOther(otherFilters); |
170 | 185 | return filters; |
171 | 186 | } |
|
0 commit comments