diff --git a/src/main/java/clap/server/adapter/inbound/web/statistics/FindStatisticsController.java b/src/main/java/clap/server/adapter/inbound/web/statistics/FindStatisticsController.java index dfa2b023..de72d30b 100644 --- a/src/main/java/clap/server/adapter/inbound/web/statistics/FindStatisticsController.java +++ b/src/main/java/clap/server/adapter/inbound/web/statistics/FindStatisticsController.java @@ -32,12 +32,14 @@ public class FindStatisticsController { @Operation(summary = "기본 통계 API") - @Parameter(name = "periodType", description = "day, week, month", required = true, in = QUERY) - @Parameter(name = "statisticsType", description = "request-by-period, process-by-period, request-by-category, process-by-manager", required = true, in = QUERY) + @Parameter(name = "periodType", required = true, in = QUERY) + @Parameter(name = "statisticsType", required = true, in = QUERY) @GetMapping @Secured("ROLE_MANAGER") public ResponseEntity> aggregateTaskStatistics(@RequestParam PeriodType periodType, @RequestParam StatisticsType statisticsType) { - switch (statisticsType) { + System.out.println("periodType = " + periodType); + System.out.println("statisticsType = " + statisticsType); + return switch (statisticsType) { case REQUEST_BY_PERIOD -> ResponseEntity.ok(findTaskProcessUsecase.aggregatePeriodTaskRequest(periodType.getType())); case PROCESS_BY_PERIOD -> ResponseEntity.ok(findTaskProcessUsecase @@ -46,8 +48,8 @@ public ResponseEntity> aggregateTaskStatistics(@Request ResponseEntity.ok(findTaskProcessUsecase.aggregateCategoryTaskRequest(periodType.getType())); case PROCESS_BY_MANAGER -> ResponseEntity.ok(findTaskProcessUsecase .aggregateManagerTaskProcess(periodType.getType())); - } - throw new StatisticsException(STATISTICS_BAD_REQUEST); + default -> throw new StatisticsException(STATISTICS_BAD_REQUEST); + }; } @Operation(summary = "1차 카테고리 하위 2차 카테고리별 통계 API") diff --git a/src/main/java/clap/server/application/service/admin/AddCategoryService.java b/src/main/java/clap/server/application/service/admin/AddCategoryService.java index cd401450..61f656ca 100644 --- a/src/main/java/clap/server/application/service/admin/AddCategoryService.java +++ b/src/main/java/clap/server/application/service/admin/AddCategoryService.java @@ -10,6 +10,7 @@ import clap.server.domain.model.task.Category; import clap.server.exception.ApplicationException; import lombok.RequiredArgsConstructor; +import org.springframework.transaction.annotation.Transactional; import java.util.Optional; @@ -24,6 +25,7 @@ public class AddCategoryService implements AddMainCategoryUsecase, AddSubCategor private final LoadMemberPort loadMemberPort; @Override + @Transactional public void addMainCategory(Long adminId, String code, String name) { Optional activeMember = loadMemberPort.findActiveMemberById(adminId); Category mainCategory = Category.createMainCategory( @@ -33,6 +35,7 @@ public void addMainCategory(Long adminId, String code, String name) { } @Override + @Transactional public void addSubCategory(Long adminId, Long mainCategoryId, String code, String name) { Optional activeMember = loadMemberPort.findActiveMemberById(adminId); Optional mainCategory = loadCategoryPort.findById(mainCategoryId); diff --git a/src/main/java/clap/server/application/service/admin/DeleteCategoryService.java b/src/main/java/clap/server/application/service/admin/DeleteCategoryService.java index f490bd5e..f4ad09a3 100644 --- a/src/main/java/clap/server/application/service/admin/DeleteCategoryService.java +++ b/src/main/java/clap/server/application/service/admin/DeleteCategoryService.java @@ -2,9 +2,11 @@ import clap.server.application.port.inbound.admin.DeleteCategoryUsecase; import clap.server.application.port.inbound.domain.MemberService; +import clap.server.application.port.outbound.task.CommandCategoryPort; import clap.server.application.port.outbound.task.LoadCategoryPort; import clap.server.common.annotation.architecture.ApplicationService; import clap.server.domain.model.member.Member; +import clap.server.domain.model.task.Category; import clap.server.exception.ApplicationException; import lombok.RequiredArgsConstructor; import org.springframework.transaction.annotation.Transactional; @@ -16,13 +18,15 @@ public class DeleteCategoryService implements DeleteCategoryUsecase { private final LoadCategoryPort loadCategoryPort; private final MemberService memberService; + private final CommandCategoryPort commandCategoryPort; @Override @Transactional public void deleteCategory(Long adminId, Long categoryId) { Member admin = memberService.findActiveMember(adminId); - loadCategoryPort.findById(categoryId) - .orElseThrow(() -> new ApplicationException(CATEGORY_NOT_FOUND)) - .deleteCategory(admin); + Category category = loadCategoryPort.findById(categoryId) + .orElseThrow(() -> new ApplicationException(CATEGORY_NOT_FOUND)); + category.deleteCategory(admin); + commandCategoryPort.save(category); } } diff --git a/src/main/java/clap/server/common/utils/StringToPeriodTypeConverter.java b/src/main/java/clap/server/common/utils/StringToPeriodTypeConverter.java deleted file mode 100644 index ae462adf..00000000 --- a/src/main/java/clap/server/common/utils/StringToPeriodTypeConverter.java +++ /dev/null @@ -1,13 +0,0 @@ -package clap.server.common.utils; - -import clap.server.adapter.inbound.web.dto.statistics.PeriodType; -import org.springframework.core.convert.converter.Converter; -import org.springframework.stereotype.Component; - -@Component -public class StringToPeriodTypeConverter implements Converter { - @Override - public PeriodType convert(String source) { - return PeriodType.from(source); - } -} diff --git a/src/main/java/clap/server/common/utils/StringToStatisticsTypeConverter.java b/src/main/java/clap/server/common/utils/StringToStatisticsTypeConverter.java deleted file mode 100644 index 6828d711..00000000 --- a/src/main/java/clap/server/common/utils/StringToStatisticsTypeConverter.java +++ /dev/null @@ -1,13 +0,0 @@ -package clap.server.common.utils; - -import clap.server.adapter.inbound.web.dto.statistics.StatisticsType; -import org.springframework.core.convert.converter.Converter; -import org.springframework.stereotype.Component; - -@Component -public class StringToStatisticsTypeConverter implements Converter { - @Override - public StatisticsType convert(String source) { - return StatisticsType.from(source); - } -} diff --git a/src/main/java/clap/server/config/web/WebConfig.java b/src/main/java/clap/server/config/web/WebConfig.java deleted file mode 100644 index 07947005..00000000 --- a/src/main/java/clap/server/config/web/WebConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package clap.server.config.web; - -import clap.server.common.utils.StringToPeriodTypeConverter; -import clap.server.common.utils.StringToStatisticsTypeConverter; -import org.springframework.context.annotation.Configuration; -import org.springframework.format.FormatterRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - - -@Configuration -public class WebConfig implements WebMvcConfigurer { - - @Override - public void addFormatters(FormatterRegistry registry) { - registry.addConverter(new StringToStatisticsTypeConverter()); - registry.addConverter(new StringToPeriodTypeConverter()); - } -}