Compare commits
4 Commits
85aa8dc929
...
7c0eb7ad33
Author | SHA1 | Date | |
---|---|---|---|
7c0eb7ad33 | |||
3e9ed0561f | |||
37fcc9bdcd | |||
7ab12d6bbe |
@ -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";
|
||||
}
|
||||
|
@ -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<Project> getProjects() {
|
||||
return projectService.getCurrentUserProjects();
|
||||
public List<ProjectDto> 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";
|
||||
}
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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();
|
@ -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<FuzzyRuleDto> getDtoByProjectId(Integer projectId) {
|
||||
return getByProjectId(projectId).stream().map(FuzzyRuleDto::new).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
@ -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<ProjectDto> 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) {
|
||||
|
@ -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;
|
||||
@ -10,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;
|
||||
@ -21,6 +22,7 @@ import java.util.List;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("rule")
|
||||
@Hidden
|
||||
public class FuzzyRuleController {
|
||||
private final FuzzyRuleService fuzzyRuleService;
|
||||
private final VariableService variableService;
|
||||
@ -38,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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -9,7 +9,8 @@ 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;
|
||||
|
||||
import java.util.List;
|
||||
@ -19,34 +20,40 @@ 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}")
|
||||
public List<FuzzyRule> getAll(@PathVariable(value = "projectId") Integer projectId) {
|
||||
//TODO: return dto
|
||||
return projectRulesService.getByProjectId(projectId);
|
||||
public List<FuzzyRuleDto> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("parse/{projectId}")
|
||||
public void parseRule(@PathVariable("projectId") Integer projectId, String data) {
|
||||
fuzzyRuleParseService.parseFuzzyRules(data, projectId);
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
@ -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()));
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
</head>
|
||||
<div class="container" layout:fragment="content">
|
||||
<h3>Редактирование правила:</h3>
|
||||
<form th:action="@{/rule/save}" th:object="${fuzzyRuleForm}" method="post">
|
||||
<form th:action="@{/rule/save}" th:object="${fuzzyRuleDto}" method="post">
|
||||
<input type="hidden" id="projectId" th:field="*{projectId}">
|
||||
<input type="hidden" th:field="*{id}">
|
||||
<div class="form-group">
|
||||
|
Loading…
x
Reference in New Issue
Block a user