From 7ab12d6bbe8bc10b99f322484c9605f546dde681 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Fri, 14 Mar 2025 14:22:06 +0400 Subject: [PATCH 1/3] #25 -- Fix controllers --- .../rule/controller/FuzzyRuleController.java | 2 ++ .../FuzzyRuleParseRestController.java | 20 ------------------- .../controller/FuzzyRuleRestController.java | 11 +++++++++- 3 files changed, 12 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleParseRestController.java diff --git a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleController.java b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleController.java index e13f1c6..e5f6f10 100644 --- a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleController.java +++ b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleController.java @@ -1,5 +1,6 @@ package ru.ulstu.fc.rule.controller; +import io.swagger.v3.oas.annotations.Hidden; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.springframework.stereotype.Controller; @@ -21,6 +22,7 @@ import java.util.List; @Controller @RequestMapping("rule") +@Hidden public class FuzzyRuleController { private final FuzzyRuleService fuzzyRuleService; private final VariableService variableService; diff --git a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleParseRestController.java b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleParseRestController.java deleted file mode 100644 index e2518c1..0000000 --- a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleParseRestController.java +++ /dev/null @@ -1,20 +0,0 @@ -package ru.ulstu.fc.rule.controller; - -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RestController; -import ru.ulstu.fc.rule.service.FuzzyRuleParseService; - -@RestController("fuzzyRuleParseRest") -public class FuzzyRuleParseRestController { - private final FuzzyRuleParseService fuzzyRuleParseService; - - public FuzzyRuleParseRestController(FuzzyRuleParseService fuzzyRuleParseService) { - this.fuzzyRuleParseService = fuzzyRuleParseService; - } - - @PostMapping("parse/{projectId}") - public void parseRule(@PathVariable("projectId") Integer projectId, String data) { - fuzzyRuleParseService.parseFuzzyRules(data, projectId); - } -} diff --git a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java index 158e9ba..5cd2bea 100644 --- a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java +++ b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController; import ru.ulstu.fc.project.service.ProjectRulesService; import ru.ulstu.fc.rule.model.FuzzyRule; import ru.ulstu.fc.rule.model.FuzzyRuleForm; +import ru.ulstu.fc.rule.service.FuzzyRuleParseService; import ru.ulstu.fc.rule.service.FuzzyRuleService; import java.util.List; @@ -19,11 +20,14 @@ import java.util.List; public class FuzzyRuleRestController { private final FuzzyRuleService ruleService; private final ProjectRulesService projectRulesService; + private final FuzzyRuleParseService fuzzyRuleParseService; public FuzzyRuleRestController(FuzzyRuleService ruleService, - ProjectRulesService projectRulesService) { + ProjectRulesService projectRulesService, + FuzzyRuleParseService fuzzyRuleParseService) { this.ruleService = ruleService; this.projectRulesService = projectRulesService; + this.fuzzyRuleParseService = fuzzyRuleParseService; } @GetMapping("/getAll/{projectId}") @@ -49,4 +53,9 @@ public class FuzzyRuleRestController { ruleService.delete(fuzzyRuleForm); } } + + @PostMapping("parse/{projectId}") + public void parseRule(@PathVariable("projectId") Integer projectId, String data) { + fuzzyRuleParseService.parseFuzzyRules(data, projectId); + } } From 37fcc9bdcda2143f2cf728ac0ab581abc87bf64e Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Fri, 14 Mar 2025 14:52:12 +0400 Subject: [PATCH 2/3] #25 -- Fix rules dto --- .../project/service/ProjectRulesService.java | 6 +++++ .../rule/controller/FuzzyRuleController.java | 24 +++++++++---------- .../controller/FuzzyRuleRestController.java | 22 ++++++++--------- .../FuzzyRuleDto.java} | 11 +++++---- .../fc/rule/service/FuzzyRuleService.java | 10 +++++--- src/main/resources/templates/rule/edit.html | 2 +- 6 files changed, 42 insertions(+), 33 deletions(-) rename src/main/java/ru/ulstu/fc/rule/model/{FuzzyRuleForm.java => dto/FuzzyRuleDto.java} (79%) diff --git a/src/main/java/ru/ulstu/fc/project/service/ProjectRulesService.java b/src/main/java/ru/ulstu/fc/project/service/ProjectRulesService.java index 52f1d72..91e9e24 100644 --- a/src/main/java/ru/ulstu/fc/project/service/ProjectRulesService.java +++ b/src/main/java/ru/ulstu/fc/project/service/ProjectRulesService.java @@ -2,10 +2,12 @@ package ru.ulstu.fc.project.service; import org.springframework.stereotype.Service; import ru.ulstu.fc.rule.model.FuzzyRule; +import ru.ulstu.fc.rule.model.dto.FuzzyRuleDto; import ru.ulstu.fc.rule.repository.FuzzyRuleRepository; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; @Service public class ProjectRulesService { @@ -24,4 +26,8 @@ public class ProjectRulesService { } return ruleRepository.findByProject(projectService.getById(projectId)); } + + public List getDtoByProjectId(Integer projectId) { + return getByProjectId(projectId).stream().map(FuzzyRuleDto::new).collect(Collectors.toList()); + } } diff --git a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleController.java b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleController.java index e5f6f10..7bc5796 100644 --- a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleController.java +++ b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleController.java @@ -11,8 +11,8 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import ru.ulstu.fc.rule.model.FuzzyRuleForm; import ru.ulstu.fc.rule.model.FuzzyTerm; +import ru.ulstu.fc.rule.model.dto.FuzzyRuleDto; import ru.ulstu.fc.rule.model.dto.VariableDto; import ru.ulstu.fc.rule.service.FuzzyRuleService; import ru.ulstu.fc.rule.service.FuzzyTermService; @@ -40,29 +40,29 @@ public class FuzzyRuleController { public String edit(@PathVariable(value = "projectId") Integer projectId, @PathVariable(value = "ruleId") Integer id, Model model) { model.addAttribute("projectId", projectId); - model.addAttribute("fuzzyRuleForm", + model.addAttribute("fuzzyRuleDto", (id != null && id != 0) - ? new FuzzyRuleForm(id, fuzzyRuleService.getById(id)) - : new FuzzyRuleForm(id, projectId)); + ? new FuzzyRuleDto(fuzzyRuleService.getById(id)) + : new FuzzyRuleDto(id, projectId)); return "rule/edit"; } @PostMapping(value = "save", params = "save") - public String save(@Valid FuzzyRuleForm fuzzyRuleForm, BindingResult bindingResult, Model model) { + public String save(@Valid FuzzyRuleDto fuzzyRuleDto, BindingResult bindingResult, Model model) { if (bindingResult.hasErrors()) { - model.addAttribute("projectId", fuzzyRuleForm.getProjectId()); + model.addAttribute("projectId", fuzzyRuleDto.getProjectId()); return "rule/edit"; } - fuzzyRuleService.save(fuzzyRuleForm); - return "redirect:/project/edit/" + fuzzyRuleForm.getProjectId(); + fuzzyRuleService.save(fuzzyRuleDto); + return "redirect:/project/edit/" + fuzzyRuleDto.getProjectId(); } @PostMapping(value = "save", params = "delete") - public String delete(FuzzyRuleForm fuzzyRuleForm) { - if (fuzzyRuleForm != null && fuzzyRuleForm.getId() != null) { - fuzzyRuleService.delete(fuzzyRuleForm); + public String delete(FuzzyRuleDto fuzzyRuleDto) { + if (fuzzyRuleDto != null && fuzzyRuleDto.getId() != null) { + fuzzyRuleService.delete(fuzzyRuleDto); } - return "redirect:/project/edit/" + fuzzyRuleForm.getProjectId(); + return "redirect:/project/edit/" + fuzzyRuleDto.getProjectId(); } @ResponseBody diff --git a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java index 5cd2bea..b08fa01 100644 --- a/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java +++ b/src/main/java/ru/ulstu/fc/rule/controller/FuzzyRuleRestController.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import ru.ulstu.fc.project.service.ProjectRulesService; import ru.ulstu.fc.rule.model.FuzzyRule; -import ru.ulstu.fc.rule.model.FuzzyRuleForm; +import ru.ulstu.fc.rule.model.dto.FuzzyRuleDto; import ru.ulstu.fc.rule.service.FuzzyRuleParseService; import ru.ulstu.fc.rule.service.FuzzyRuleService; @@ -31,26 +31,24 @@ public class FuzzyRuleRestController { } @GetMapping("/getAll/{projectId}") - public List getAll(@PathVariable(value = "projectId") Integer projectId) { - //TODO: return dto - return projectRulesService.getByProjectId(projectId); + public List getAll(@PathVariable(value = "projectId") Integer projectId) { + return projectRulesService.getDtoByProjectId(projectId); } @GetMapping("/get/{ruleId}") - public FuzzyRule get(@PathVariable(value = "ruleId") Integer id) { - //TODO: return dto - return ruleService.getById(id); + public FuzzyRuleDto get(@PathVariable(value = "ruleId") Integer id) { + return ruleService.getByIdDto(id); } @PostMapping - public FuzzyRule save(@Valid FuzzyRuleForm fuzzyRuleForm) { - return ruleService.save(fuzzyRuleForm); + public FuzzyRule save(@Valid FuzzyRuleDto fuzzyRuleDto) { + return ruleService.save(fuzzyRuleDto); } @DeleteMapping - public void delete(@Valid FuzzyRuleForm fuzzyRuleForm) { - if (fuzzyRuleForm != null && fuzzyRuleForm.getId() != null) { - ruleService.delete(fuzzyRuleForm); + public void delete(@Valid FuzzyRuleDto fuzzyRuleDto) { + if (fuzzyRuleDto != null && fuzzyRuleDto.getId() != null) { + ruleService.delete(fuzzyRuleDto); } } diff --git a/src/main/java/ru/ulstu/fc/rule/model/FuzzyRuleForm.java b/src/main/java/ru/ulstu/fc/rule/model/dto/FuzzyRuleDto.java similarity index 79% rename from src/main/java/ru/ulstu/fc/rule/model/FuzzyRuleForm.java rename to src/main/java/ru/ulstu/fc/rule/model/dto/FuzzyRuleDto.java index 5ae6d32..726c6b1 100644 --- a/src/main/java/ru/ulstu/fc/rule/model/FuzzyRuleForm.java +++ b/src/main/java/ru/ulstu/fc/rule/model/dto/FuzzyRuleDto.java @@ -1,9 +1,10 @@ -package ru.ulstu.fc.rule.model; +package ru.ulstu.fc.rule.model.dto; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; +import ru.ulstu.fc.rule.model.FuzzyRule; -public class FuzzyRuleForm { +public class FuzzyRuleDto { private Integer id; @NotNull private Integer projectId; @@ -11,15 +12,15 @@ public class FuzzyRuleForm { @Size(min = 5, max = 250, message = "Длина от 5 до 250 символов") private String content; - public FuzzyRuleForm() { + public FuzzyRuleDto() { } - public FuzzyRuleForm(Integer id, Integer projectId) { + public FuzzyRuleDto(Integer id, Integer projectId) { this.id = id; this.projectId = projectId; } - public FuzzyRuleForm(Integer id, FuzzyRule fuzzyRule) { + public FuzzyRuleDto(FuzzyRule fuzzyRule) { this.id = fuzzyRule.getId(); this.projectId = fuzzyRule.getProject().getId(); this.content = fuzzyRule.getContent(); diff --git a/src/main/java/ru/ulstu/fc/rule/service/FuzzyRuleService.java b/src/main/java/ru/ulstu/fc/rule/service/FuzzyRuleService.java index bde8fb2..bd4b617 100644 --- a/src/main/java/ru/ulstu/fc/rule/service/FuzzyRuleService.java +++ b/src/main/java/ru/ulstu/fc/rule/service/FuzzyRuleService.java @@ -3,7 +3,7 @@ package ru.ulstu.fc.rule.service; import org.springframework.stereotype.Service; import ru.ulstu.fc.project.service.ProjectService; import ru.ulstu.fc.rule.model.FuzzyRule; -import ru.ulstu.fc.rule.model.FuzzyRuleForm; +import ru.ulstu.fc.rule.model.dto.FuzzyRuleDto; import ru.ulstu.fc.rule.repository.FuzzyRuleRepository; @Service @@ -25,7 +25,11 @@ public class FuzzyRuleService { return fuzzyRule; } - public FuzzyRule save(FuzzyRuleForm ruleForm) { + public FuzzyRuleDto getByIdDto(Integer id) { + return new FuzzyRuleDto(getById(id)); + } + + public FuzzyRule save(FuzzyRuleDto ruleForm) { FuzzyRule rule; if (ruleForm.getId() == null || ruleForm.getId() == 0) { rule = new FuzzyRule(); @@ -37,7 +41,7 @@ public class FuzzyRuleService { return ruleRepository.save(rule); } - public void delete(FuzzyRuleForm ruleForm) { + public void delete(FuzzyRuleDto ruleForm) { ruleRepository.delete(getById(ruleForm.getId())); } diff --git a/src/main/resources/templates/rule/edit.html b/src/main/resources/templates/rule/edit.html index 70fa5ec..b2984c5 100644 --- a/src/main/resources/templates/rule/edit.html +++ b/src/main/resources/templates/rule/edit.html @@ -9,7 +9,7 @@

Редактирование правила:

-
+
From 3e9ed0561f627764c0ee1c48a3c7144fd58bd158 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Fri, 14 Mar 2025 15:21:43 +0400 Subject: [PATCH 3/3] #25 -- Fix project dto --- .../project/controller/ProjectController.java | 14 +++++++------- .../controller/ProjectRestController.java | 15 +++++++-------- .../java/ru/ulstu/fc/project/model/Project.java | 8 ++++---- .../model/{ProjectForm.java => ProjectDto.java} | 6 +++--- .../fc/project/service/ProjectService.java | 17 +++++++++++------ 5 files changed, 32 insertions(+), 28 deletions(-) rename src/main/java/ru/ulstu/fc/project/model/{ProjectForm.java => ProjectDto.java} (88%) diff --git a/src/main/java/ru/ulstu/fc/project/controller/ProjectController.java b/src/main/java/ru/ulstu/fc/project/controller/ProjectController.java index ca23828..3d77353 100644 --- a/src/main/java/ru/ulstu/fc/project/controller/ProjectController.java +++ b/src/main/java/ru/ulstu/fc/project/controller/ProjectController.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import ru.ulstu.fc.project.model.Project; -import ru.ulstu.fc.project.model.ProjectForm; +import ru.ulstu.fc.project.model.ProjectDto; import ru.ulstu.fc.project.service.ProjectRulesService; import ru.ulstu.fc.project.service.ProjectService; import ru.ulstu.fc.project.service.ProjectVariableService; @@ -41,7 +41,7 @@ public class ProjectController { @GetMapping("/edit/{projectId}") public String edit(@PathVariable(value = "projectId") Integer id, Model model) { model.addAttribute("project", - new ProjectForm((id != null && id != 0) + new ProjectDto((id != null && id != 0) ? projectService.getById(id) : new Project())); @@ -51,15 +51,15 @@ public class ProjectController { } @PostMapping(value = "save", params = "save") - public String save(ProjectForm projectForm, Model model) { - model.addAttribute("project", projectService.save(projectForm)); + public String save(ProjectDto projectDto, Model model) { + model.addAttribute("project", projectService.save(projectDto)); return "redirect:/project/list"; } @PostMapping(value = "save", params = "delete") - public String delete(ProjectForm projectForm) { - if (projectForm != null && projectForm.getId() != null) { - projectService.delete(projectForm); + public String delete(ProjectDto projectDto) { + if (projectDto != null && projectDto.getId() != null) { + projectService.delete(projectDto); } return "redirect:/project/list"; } diff --git a/src/main/java/ru/ulstu/fc/project/controller/ProjectRestController.java b/src/main/java/ru/ulstu/fc/project/controller/ProjectRestController.java index 7fcce20..e5b10a7 100644 --- a/src/main/java/ru/ulstu/fc/project/controller/ProjectRestController.java +++ b/src/main/java/ru/ulstu/fc/project/controller/ProjectRestController.java @@ -6,8 +6,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import ru.ulstu.fc.project.model.Project; -import ru.ulstu.fc.project.model.ProjectForm; +import ru.ulstu.fc.project.model.ProjectDto; import ru.ulstu.fc.project.service.ProjectService; import ru.ulstu.fc.user.model.UserRoleConstants; @@ -24,18 +23,18 @@ public class ProjectRestController { } @GetMapping("list") - public List getProjects() { - return projectService.getCurrentUserProjects(); + public List getProjects() { + return projectService.getCurrentUserProjectsDto(); } @PostMapping("save") - public Project save(Project project) { - return projectService.save(project); + public ProjectDto save(ProjectDto projectDto) { + return projectService.save(projectDto); } @DeleteMapping("delete") - public String delete(ProjectForm projectForm) { - projectService.delete(projectForm); + public String delete(ProjectDto projectDto) { + projectService.delete(projectDto); return "redirect:/list"; } } diff --git a/src/main/java/ru/ulstu/fc/project/model/Project.java b/src/main/java/ru/ulstu/fc/project/model/Project.java index e5ff8c7..d0c5e40 100644 --- a/src/main/java/ru/ulstu/fc/project/model/Project.java +++ b/src/main/java/ru/ulstu/fc/project/model/Project.java @@ -20,11 +20,11 @@ public class Project extends BaseEntity { public Project() { } - public Project(ProjectForm projectForm) { - if (projectForm.getId() != null) { - setId(projectForm.getId()); + public Project(ProjectDto projectDto) { + if (projectDto.getId() != null) { + setId(projectDto.getId()); } - this.name = projectForm.getName(); + this.name = projectDto.getName(); } public String getName() { diff --git a/src/main/java/ru/ulstu/fc/project/model/ProjectForm.java b/src/main/java/ru/ulstu/fc/project/model/ProjectDto.java similarity index 88% rename from src/main/java/ru/ulstu/fc/project/model/ProjectForm.java rename to src/main/java/ru/ulstu/fc/project/model/ProjectDto.java index b2a10c9..1031b37 100644 --- a/src/main/java/ru/ulstu/fc/project/model/ProjectForm.java +++ b/src/main/java/ru/ulstu/fc/project/model/ProjectDto.java @@ -4,16 +4,16 @@ import jakarta.validation.constraints.NotEmpty; import java.util.Date; -public class ProjectForm { +public class ProjectDto { private Integer id; @NotEmpty(message = "Название проекта не может быть пустым") private String name; private Date createDate; - public ProjectForm() { + public ProjectDto() { } - public ProjectForm(Project project) { + public ProjectDto(Project project) { this.id = project.getId(); this.name = project.getName(); this.createDate = project.getCreateDate(); diff --git a/src/main/java/ru/ulstu/fc/project/service/ProjectService.java b/src/main/java/ru/ulstu/fc/project/service/ProjectService.java index e41034e..c01f12a 100644 --- a/src/main/java/ru/ulstu/fc/project/service/ProjectService.java +++ b/src/main/java/ru/ulstu/fc/project/service/ProjectService.java @@ -2,12 +2,13 @@ package ru.ulstu.fc.project.service; import org.springframework.stereotype.Service; import ru.ulstu.fc.project.model.Project; -import ru.ulstu.fc.project.model.ProjectForm; +import ru.ulstu.fc.project.model.ProjectDto; import ru.ulstu.fc.project.repository.ProjectRepository; import ru.ulstu.fc.user.model.User; import ru.ulstu.fc.user.service.UserService; import java.util.List; +import java.util.stream.Collectors; @Service public class ProjectService { @@ -24,6 +25,10 @@ public class ProjectService { return projectRepository.findAllByUserId(userService.getCurrentUser().getId()); } + public List getCurrentUserProjectsDto() { + return getCurrentUserProjects().stream().map(ProjectDto::new).collect(Collectors.toList()); + } + public Project getById(Integer id) { Project project = projectRepository .findById(id) @@ -32,8 +37,8 @@ public class ProjectService { return project; } - public Project save(ProjectForm projectForm) { - return save(new Project(projectForm)); + public ProjectDto save(ProjectDto projectDto) { + return new ProjectDto(save(new Project(projectDto))); } public Project save(Project projectToSave) { @@ -47,9 +52,9 @@ public class ProjectService { return projectRepository.save(dbProject); } - public void delete(ProjectForm projectForm) { - getById(projectForm.getId()); - projectRepository.deleteById(projectForm.getId()); + public void delete(ProjectDto projectDto) { + getById(projectDto.getId()); + projectRepository.deleteById(projectDto.getId()); } public void checkIsCurrentUserProjectWithThrow(Project project) {