Projekt

Obecné

Profil

« Předchozí | Další » 

Revize ba3279e3

Přidáno uživatelem stepanekp před více než 1 rok

Zobrazit rozdíly:

src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Person.java
16 16
public class Person implements DatabaseObject {
17 17

  
18 18
    @Id
19
    @GeneratedValue(strategy = GenerationType.AUTO)
19
    @GeneratedValue(strategy = GenerationType.IDENTITY)
20 20
    @Column(name = "id", nullable = false)
21 21
    private Long id;
22 22

  
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PersonService.java
1 1
package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment;
2 2

  
3
import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project;
3 4
import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person;
5
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonDto;
4 6

  
5 7
import java.util.List;
6 8

  
......
39 41
     * @param id    Identifier of person
40 42
     */
41 43
    void deletePerson(Long id);
44

  
45
    boolean mergePersons(Project project, List<PersonDto> personsToMerge, PersonDto personToMergeIn, String newName);
42 46
}
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PersonServiceImpl.java
1 1
package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment;
2 2

  
3
import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project;
3 4
import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person;
4 5
import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.PersonRepository;
6
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonDto;
5 7
import org.springframework.beans.factory.annotation.Autowired;
6 8
import org.springframework.stereotype.Service;
7 9

  
......
57 59
    public void deletePerson(Long id) {
58 60
        personRepository.deleteById(id);
59 61
    }
62

  
63
    public boolean mergePersons(Project project, List<PersonDto> personsToMerge, PersonDto personToMergeIn, String newName) {
64
        Person newPerson = null;
65

  
66
        if (newName == null) {
67
            newPerson = getPersonById(personToMergeIn.getId());
68
        }
69
        else if (personToMergeIn == null) {
70
            newPerson = new Person(newName, project);
71
            newPerson = savePerson(newPerson);
72
        }
73
        else {
74
            return false;
75
        }
76

  
77
        if (newPerson == null || project == null || personsToMerge == null)
78
            return false;
79

  
80

  
81
        for(PersonDto personDto : personsToMerge) { // Relation update for every selected person
82
            if (personDto.getId().longValue() == newPerson.getId().longValue())
83
                continue;
84

  
85
            Person person = getPersonById(personDto.getId());
86
            updatePersonRelations(person.getId(), newPerson.getId());
87
            deletePerson(person.getId());
88
        }
89

  
90
        return true;
91
    }
60 92
}
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/PersonController.java
4 4
import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project;
5 5
import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person;
6 6
import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService;
7
import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.PersonService;
7 8
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonDto;
9
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonMergeRequest;
8 10
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.PersonToDto;
9 11
import org.springframework.beans.factory.annotation.Autowired;
10 12
import org.springframework.http.HttpStatus;
......
29 31
    @Autowired
30 32
    private ProjectService projectService;
31 33

  
34
    @Autowired
35
    private PersonService personService;
36

  
32 37
    @PostMapping("/personsFromProject")
33 38
    public ResponseEntity<String> getPersonsFromProject(@RequestBody Map<String, String> requestData) {
34 39
        long ProjectId = Long.parseLong(requestData.get("projectId").toString());
......
51 56
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to serialize data to JSON");
52 57
        }
53 58
    }
59

  
60
    @PostMapping("/mergePersons")
61
    public ResponseEntity<String> mergeToSelected(@RequestBody PersonMergeRequest mergeRequest) {
62
        long projectId = mergeRequest.getProjectId();
63
        Project personProject = projectService.getProjectById(projectId);
64

  
65
        List<PersonDto> personsToMerge = mergeRequest.getPersons();
66
        PersonDto personToMergeIn = mergeRequest.getPerson();
67
        String newName = mergeRequest.getNewPersonName();
68

  
69
        if (personService.mergePersons(personProject, personsToMerge, personToMergeIn, newName)) {
70
            return ResponseEntity.status(HttpStatus.OK).body("Persons successfully merged");
71
        }
72
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Persons merge failed");
73
    }
54 74
}
75

  
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PersonMergeRequest.java
1
package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model;
2

  
3
import java.util.List;
4

  
5
public class PersonMergeRequest {
6

  
7
    private List<PersonDto> persons;
8

  
9
    private String newPersonName;
10

  
11
    private PersonDto person;
12

  
13
    private long projectId;
14

  
15
    public List<PersonDto> getPersons() {
16
        return persons;
17
    }
18

  
19
    public void setPersons(List<PersonDto> persons) {
20
        this.persons = persons;
21
    }
22

  
23
    public String getNewPersonName() {
24
        return newPersonName;
25
    }
26

  
27
    public void setNewPersonName(String newPersonName) {
28
        this.newPersonName = newPersonName;
29
    }
30

  
31
    public PersonDto getPerson() {
32
        return person;
33
    }
34

  
35
    public void setPerson(PersonDto person) {
36
        this.person = person;
37
    }
38

  
39
    public long getProjectId() {
40
        return projectId;
41
    }
42

  
43
    public void setProjectId(long projectId) {
44
        this.projectId = projectId;
45
    }
46
}

Také k dispozici: Unified diff