attendance mit localdate statt date

REL-BRANCH-ClubhelperModel-0.0.1
Markus Kreth 5 years ago
parent d0f143307c
commit b020eb3a62
  1. 31
      src/main/java/de/kreth/clubhelper/model/controller/AttendanceController.java
  2. 6
      src/main/java/de/kreth/clubhelper/model/dao/AttendanceDao.java
  3. 39
      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,8 +28,7 @@ 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;
@ -33,22 +36,25 @@ public class AttendanceController
@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));
System.out.println(one);
} catch (JsonProcessingException e) {
e.printStackTrace();
} }
return attendanceDao.findByOnDate(date); 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(new Date()); att.setOnDate(LocalDate.now());
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;
@ -56,7 +62,8 @@ public class AttendanceController
@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)
.orElseThrow(() -> new RuntimeException("Person not found by id=" + personId));
Attendance attendance = attendanceDao.findByPersonAndOnDate(person, onDate); Attendance attendance = attendanceDao.findByPersonAndOnDate(person, onDate);
attendanceDao.delete(attendance); attendanceDao.delete(attendance);
return 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,7 +12,7 @@ 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);
@ -18,5 +20,5 @@ public interface AttendanceDao extends CrudRepository<Attendance, Long> {
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,40 +16,34 @@ 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; private static final long serialVersionUID = 2385033161272078335L;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "on_date") @Column(name = "on_date")
private Date onDate; private LocalDate onDate;
// bi-directional many-to-one association to Person
@ManyToOne @ManyToOne
private Person person; private Person person;
public Date getOnDate() public LocalDate getOnDate() {
{ return this.onDate;
return new Date(this.onDate.getTime());
} }
public Person getPerson() public Person getPerson() {
{
return person; return person;
} }
public void setPerson(Person person) public void setPerson(Person person) {
{
this.person = person; this.person = person;
} }
public void setOnDate(Date onDate) public void setOnDate(LocalDate onDate) {
{
this.onDate = onDate; this.onDate = onDate;
} }
@Override @Override
public int hashCode() public int hashCode() {
{
final int prime = 103; final int prime = 103;
int result = super.hashCode(); int result = super.hashCode();
result = prime * result; result = prime * result;
@ -60,16 +51,14 @@ public class Attendance extends BaseEntity implements Serializable
} }
@Override @Override
public boolean equals(Object obj) public boolean equals(Object obj) {
{
if (this == obj) if (this == obj)
return true; return true;
return super.equals(obj); return super.equals(obj);
} }
@Override @Override
public String toString() public String toString() {
{
return "Attendance [person=" + person + ", onDate=" + onDate + "]"; return "Attendance [person=" + person + ", onDate=" + onDate + "]";
} }
} }

Loading…
Cancel
Save