attendance mit localdate statt date

REL-BRANCH-ClubhelperModel-0.0.1
Markus Kreth 5 years ago
parent d0f143307c
commit b020eb3a62
  1. 71
      src/main/java/de/kreth/clubhelper/model/controller/AttendanceController.java
  2. 12
      src/main/java/de/kreth/clubhelper/model/dao/AttendanceDao.java
  3. 89
      src/main/java/de/kreth/clubhelper/model/data/Attendance.java

@ -1,5 +1,6 @@
package de.kreth.clubhelper.model.controller; package de.kreth.clubhelper.model.controller;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -16,6 +17,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.kreth.clubhelper.model.dao.AttendanceDao; import de.kreth.clubhelper.model.dao.AttendanceDao;
import de.kreth.clubhelper.model.dao.PersonDao; import de.kreth.clubhelper.model.dao.PersonDao;
import de.kreth.clubhelper.model.data.Attendance; import de.kreth.clubhelper.model.data.Attendance;
@ -24,41 +28,44 @@ import de.kreth.clubhelper.model.data.Person;
@Controller @Controller
@RequestMapping("/attendance") @RequestMapping("/attendance")
@PreAuthorize("hasRole('trainer') or hasRole('admin')") @PreAuthorize("hasRole('trainer') or hasRole('admin')")
public class AttendanceController public class AttendanceController {
{
@Autowired @Autowired
private AttendanceDao attendanceDao; private AttendanceDao attendanceDao;
@Autowired @Autowired
private PersonDao personDao; private PersonDao personDao;
@GetMapping(value = "/on") @GetMapping(value = "/{date}")
@ResponseBody @ResponseBody
public List<Attendance> getAttendencesOn(@RequestBody @DateTimeFormat(iso=ISO.DATE) Date date) public List<Attendance> getAttendencesOn(@PathVariable("date") @DateTimeFormat(iso = ISO.DATE) LocalDate date) {
{ List<Attendance> findByOnDate = attendanceDao.findByOnDate(date);
if (date == null) { ObjectMapper mapper = new ObjectMapper();
date = new Date(); try {
} String one = mapper.writeValueAsString(findByOnDate.get(0));
return attendanceDao.findByOnDate(date); System.out.println(one);
} } catch (JsonProcessingException e) {
e.printStackTrace();
}
return findByOnDate;
}
@PostMapping(value = "/for/{id}") @PostMapping(value = "/for/{id}")
@ResponseBody @ResponseBody
public Attendance post(@PathVariable("id") Long id) public Attendance post(@PathVariable("id") Long id) {
{ Attendance att = new Attendance();
Attendance att = new Attendance(); att.setOnDate(LocalDate.now());
att.setOnDate(new Date()); att.setPerson(personDao.findById(id).orElseThrow(() -> new RuntimeException("Person not found by id=" + id)));
att.setPerson(personDao.findById(id).orElseThrow(() -> new RuntimeException("Person not found by id=" + id))); attendanceDao.save(att);
attendanceDao.save(att); return att;
return att; }
}
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public Attendance delete(@PathVariable("id") Long personId, @RequestBody(required = true) Date onDate) { public Attendance delete(@PathVariable("id") Long personId, @RequestBody(required = true) Date onDate) {
Person person = personDao.findById(personId).orElseThrow(() -> new RuntimeException("Person not found by id=" + personId)); Person person = personDao.findById(personId)
Attendance attendance = attendanceDao.findByPersonAndOnDate(person, onDate); .orElseThrow(() -> new RuntimeException("Person not found by id=" + personId));
attendanceDao.delete(attendance); Attendance attendance = attendanceDao.findByPersonAndOnDate(person, onDate);
return attendance; attendanceDao.delete(attendance);
} return attendance;
}
} }

@ -1,5 +1,7 @@
package de.kreth.clubhelper.model.dao; package de.kreth.clubhelper.model.dao;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -10,13 +12,13 @@ import de.kreth.clubhelper.model.data.Person;
public interface AttendanceDao extends CrudRepository<Attendance, Long> { public interface AttendanceDao extends CrudRepository<Attendance, Long> {
List<Attendance> findByOnDate(Date onDate); List<Attendance> findByOnDate(LocalDate onDate);
List<Attendance> findByPerson(Person person); List<Attendance> findByPerson(Person person);
Attendance findByPersonAndOnDate(Person person, Date onDate); Attendance findByPersonAndOnDate(Person person, Date onDate);
List<Attendance> findByPersonId(long personId); List<Attendance> findByPersonId(long personId);
List<Attendance> findByChangedGreaterThan(Date date); List<Attendance> findByChangedGreaterThan(LocalDateTime date);
} }

@ -1,17 +1,14 @@
package de.kreth.clubhelper.model.data; package de.kreth.clubhelper.model.data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDate;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.Inheritance; import javax.persistence.Inheritance;
import javax.persistence.InheritanceType; import javax.persistence.InheritanceType;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/** /**
* The persistent class for the attendance database table. * The persistent class for the attendance database table.
@ -19,57 +16,49 @@ import javax.persistence.TemporalType;
@Entity @Entity
@Table(name = "attendance") @Table(name = "attendance")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@NamedQuery(name = "Attendance.findAll", query = "SELECT a FROM Attendance a") public class Attendance extends BaseEntity implements Serializable {
public class Attendance extends BaseEntity implements Serializable
{
private static final long serialVersionUID = 2385033161272078335L;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "on_date")
private Date onDate;
// bi-directional many-to-one association to Person
@ManyToOne
private Person person;
public Date getOnDate() private static final long serialVersionUID = 2385033161272078335L;
{
return new Date(this.onDate.getTime());
}
public Person getPerson() @Column(name = "on_date")
{ private LocalDate onDate;
return person;
}
public void setPerson(Person person) @ManyToOne
{ private Person person;
this.person = person;
}
public void setOnDate(Date onDate) public LocalDate getOnDate() {
{ return this.onDate;
this.onDate = onDate; }
}
@Override public Person getPerson() {
public int hashCode() return person;
{ }
final int prime = 103;
int result = super.hashCode();
result = prime * result;
return result;
}
@Override public void setPerson(Person person) {
public boolean equals(Object obj) this.person = person;
{ }
if (this == obj)
return true;
return super.equals(obj);
}
@Override public void setOnDate(LocalDate onDate) {
public String toString() this.onDate = onDate;
{ }
return "Attendance [person=" + person + ", onDate=" + onDate + "]";
} @Override
public int hashCode() {
final int prime = 103;
int result = super.hashCode();
result = prime * result;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
return super.equals(obj);
}
@Override
public String toString() {
return "Attendance [person=" + person + ", onDate=" + onDate + "]";
}
} }

Loading…
Cancel
Save