Compare commits

...

6 Commits

  1. 15
      pom.xml
  2. 2
      src/main/java/de/kreth/clubhelper/model/controller/AbstractController.java
  3. 69
      src/main/java/de/kreth/clubhelper/model/controller/RelativeController.java
  4. 4
      src/main/java/de/kreth/clubhelper/model/dao/RelativeDao.java
  5. 3
      src/main/java/de/kreth/clubhelper/model/dao/StartpassDao.java
  6. 222
      src/main/java/de/kreth/clubhelper/model/data/Person.java

@ -11,7 +11,7 @@
<groupId>de.kreth.clubhelper</groupId> <groupId>de.kreth.clubhelper</groupId>
<artifactId>ClubhelperModel</artifactId> <artifactId>ClubhelperModel</artifactId>
<version>0.0.1</version> <version>0.0.3-SNAPSHOT</version>
<name>clubhelper-model</name> <name>clubhelper-model</name>
<description>Model for Clubhelper Projects</description> <description>Model for Clubhelper Projects</description>
@ -40,11 +40,6 @@
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.keycloak</groupId> <groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-starter</artifactId> <artifactId>keycloak-spring-boot-starter</artifactId>
@ -59,6 +54,13 @@
<artifactId>springfox-boot-starter</artifactId> <artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version> <version>3.0.0</version>
</dependency> </dependency>
<!-- Documentation -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.4.6</version>
</dependency>
<!-- <dependency> --> <!-- <dependency> -->
<!-- <groupId>io.springfox</groupId> --> <!-- <groupId>io.springfox</groupId> -->
<!-- <artifactId>springfox-swagger2</artifactId> --> <!-- <artifactId>springfox-swagger2</artifactId> -->
@ -101,7 +103,6 @@
<dependency> <dependency>
<groupId>com.h2database</groupId> <groupId>com.h2database</groupId>
<artifactId>h2</artifactId> <artifactId>h2</artifactId>
<scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.googlecode.libphonenumber</groupId> <groupId>com.googlecode.libphonenumber</groupId>

@ -69,6 +69,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
@GetMapping(value = "/for/{id}") @GetMapping(value = "/for/{id}")
public List<T> getByParentId(@PathVariable("id") long id) { public List<T> getByParentId(@PathVariable("id") long id) {
if (dao instanceof ClubhelperDao) { if (dao instanceof ClubhelperDao) {
@SuppressWarnings("unchecked")
ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao; ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao;
return specialDao.findByPersonId(id); return specialDao.findByPersonId(id);
} }
@ -80,6 +81,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
public List<T> getChangedSince(@PathVariable("changed") long changed) { public List<T> getChangedSince(@PathVariable("changed") long changed) {
if (dao instanceof ClubhelperDao) { if (dao instanceof ClubhelperDao) {
@SuppressWarnings("unchecked")
ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao; ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao;
return specialDao.findByChangedGreaterThan(new Date(changed)); return specialDao.findByChangedGreaterThan(new Date(changed));
} }

@ -1,12 +1,16 @@
package de.kreth.clubhelper.model.controller; package de.kreth.clubhelper.model.controller;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.annotation.JsonIgnore;
import de.kreth.clubhelper.model.dao.RelativeDao; import de.kreth.clubhelper.model.dao.RelativeDao;
import de.kreth.clubhelper.model.data.Person;
import de.kreth.clubhelper.model.data.Relative; import de.kreth.clubhelper.model.data.Relative;
@RestController @RestController
@ -22,6 +26,69 @@ public class RelativeController extends AbstractController<Relative, RelativeDao
@Override @Override
public List<Relative> getByParentId(long id) { public List<Relative> getByParentId(long id) {
return relativeDao.findByPerson1ORPerson2(id); return relativeDao.findByPersonId1OrPerson2Id(id).stream()
.map(r -> map(id, r))
.collect(Collectors.toList());
}
private Relation map(long forPersonId, Relative relative) {
Relation r;
if (relative.getPerson2Bean().getId() == forPersonId) {
r = new Relation(relative.getToPerson1Relation(), relative.getPerson1Bean());
} else {
r = new Relation(relative.getToPerson2Relation(), relative.getPerson2Bean());
}
r.setChanged(relative.getChanged());
r.setCreated(relative.getCreated());
r.setId(relative.getId());
r.setDeleted(relative.getDeleted());
return r;
}
public class Relation extends Relative {
private static final long serialVersionUID = -4881464721582462186L;
private final String relationType;
private final Person relative;
private Relation(String relationType, Person relative) {
super();
this.relationType = relationType;
this.relative = relative;
}
public String getRelationType() {
return relationType;
}
public Person getRelative() {
return relative;
}
@JsonIgnore
@Override
public Person getPerson1Bean() {
return super.getPerson1Bean();
}
@JsonIgnore
@Override
public Person getPerson2Bean() {
return super.getPerson2Bean();
}
@JsonIgnore
@Override
public String getToPerson1Relation() {
return super.getToPerson1Relation();
}
@JsonIgnore
@Override
public String getToPerson2Relation() {
return super.getToPerson2Relation();
}
} }
} }

@ -2,12 +2,14 @@ package de.kreth.clubhelper.model.dao;
import java.util.List; import java.util.List;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.CrudRepository;
import de.kreth.clubhelper.model.data.Relative; import de.kreth.clubhelper.model.data.Relative;
public interface RelativeDao extends CrudRepository<Relative, Long> { public interface RelativeDao extends CrudRepository<Relative, Long> {
List<Relative> findByPerson1ORPerson2(long personId); @Query(value = "SELECT * FROM clubhelper.relative r where r.person1=?1 or r.person2=?1", nativeQuery = true)
List<Relative> findByPersonId1OrPerson2Id(long personId);
} }

@ -4,6 +4,5 @@ import org.springframework.data.repository.CrudRepository;
import de.kreth.clubhelper.model.data.Startpass; import de.kreth.clubhelper.model.data.Startpass;
public interface StartpassDao extends CrudRepository<Startpass, Long> public interface StartpassDao extends CrudRepository<Startpass, Long>, ClubhelperDao<Startpass> {
{
} }

@ -19,122 +19,108 @@ import javax.persistence.Table;
@Entity @Entity
@Table(name = "person") @Table(name = "person")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Person extends BaseEntity implements Serializable public class Person extends BaseEntity implements Serializable {
{ public static final String SESSION_LOGIN = "SESSION_LOGIN_USER";
public static final String SESSION_LOGIN = "SESSION_LOGIN_USER"; public static final String QUERY_FINDALL = "Person.findAll";
public static final String QUERY_FINDALL = "Person.findAll"; public static final String QUERY_FINDLOGIN = "Person.findLogin";
public static final String QUERY_FINDLOGIN = "Person.findLogin"; private static final long serialVersionUID = -8361264400619997123L;
private static final long serialVersionUID = -8361264400619997123L; @Basic
@Basic private LocalDate birth;
private LocalDate birth; private String prename;
private String prename; private String surname;
private String surname; private String username;
private String username; private String password;
private String password; private Integer gender;
private Integer gender; @ManyToMany
@ManyToMany @JoinTable(name = "persongroup", joinColumns = @JoinColumn(name = "person_id"), inverseJoinColumns = @JoinColumn(name = "group_id"))
@JoinTable(name = "persongroup", joinColumns = @JoinColumn(name = "person_id"), inverseJoinColumns = @JoinColumn(name = "group_id")) private List<GroupDef> groups;
private List<GroupDef> groups;
public Gender getGender() {
public Gender getGender() if (gender == null) {
{ return null;
if (gender == null) { }
return null; return Gender.valueOf(gender);
} }
return Gender.valueOf(gender);
} public LocalDate getBirth() {
return birth;
public LocalDate getBirth() }
{
return birth; public void setBirth(LocalDate birth) {
} this.birth = birth;
}
public void setBirth(LocalDate birth)
{ public String getPrename() {
this.birth = birth; return prename;
} }
public String getPrename() public void setPrename(String prename) {
{ this.prename = prename;
return prename; }
}
public String getSurname() {
public void setPrename(String prename) return surname;
{ }
this.prename = prename;
} public void setSurname(String surname) {
this.surname = surname;
public String getSurname() }
{
return surname; public String getUsername() {
} return username;
}
public void setSurname(String surname)
{ public void setUsername(String username) {
this.surname = surname; this.username = username;
} }
public String getUsername() public String getPassword() {
{ return password;
return username; }
}
public void setPassword(String password) {
public void setUsername(String username) this.password = password;
{ }
this.username = username;
} public void setGender(Integer gender) {
this.gender = gender;
public String getPassword() }
{
return password; public boolean isMember(GroupDef group) {
} return groups != null && groups.contains(group);
}
public void setPassword(String password)
{ public List<GroupDef> getGroups() {
this.password = password; return groups;
} }
public void setGender(Integer gender) @Override
{ public int hashCode() {
this.gender = gender; final int prime = 59;
} int result = super.hashCode();
result = prime * result;
public boolean isMember(GroupDef group) return result;
{ }
return groups != null && groups.contains(group);
} @Override
public boolean equals(Object obj) {
@Override if (this == obj)
public int hashCode() return true;
{ if (!super.equals(obj))
final int prime = 59; return false;
int result = super.hashCode(); if (getClass() != obj.getClass())
result = prime * result; return false;
return result; Person other = (Person) obj;
} if (surname == null) {
if (other.surname != null)
@Override return false;
public boolean equals(Object obj) } else if (!surname.equals(other.surname))
{ return false;
if (this == obj) return true;
return true; }
if (!super.equals(obj))
return false; @Override
if (getClass() != obj.getClass()) public String toString() {
return false; return "Person [id=" + getId() + ", prename=" + prename + ", surname=" + surname + "]";
Person other = (Person) obj; }
if (surname == null) {
if (other.surname != null)
return false;
}
else if (!surname.equals(other.surname))
return false;
return true;
}
@Override
public String toString()
{
return "Person [id=" + getId() + ", prename=" + prename + ", surname=" + surname + "]";
}
} }

Loading…
Cancel
Save