Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
1,510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 KB | None | 0 0
  1. commit 15375f08900f69ae9c8074c3be57182ea676fb81
  2. Author: joham97 <joham97@web.de>
  3. Date: Mon Jun 26 23:17:39 2017 +0200
  4.  
  5. Anmeldebogen Funktionalität
  6.  
  7. WICHTIG: Ich musste die Anmeldebogen Depencency mit Travis neu builden. Ich wusste nicht wie ich die Version auf 0.1.1 stelle. Dementsprechend muss einmal die Dependency lokal neu herruntergeladen werden. Sorry ging nicht anders.
  8.  
  9. diff --git a/src/main/java/de/atiw/sportfest/backend/resource/KlasseResource.java b/src/main/java/de/atiw/sportfest/backend/resource/KlasseResource.java
  10. index 0c53659..4fd9e3e 100644
  11. -- a/src/main/java/de/atiw/sportfest/backend/resource/KlasseResource.java
  12. ++ b/src/main/java/de/atiw/sportfest/backend/resource/KlasseResource.java
  13. @@ -1,27 +1,42 @@
  14. package de.atiw.sportfest.backend.resource;
  15.  
  16.  
  17. import java.io.File;
  18. import java.io.InputStream;
  19. import java.sql.Connection;
  20. import java.sql.ResultSet;
  21. import java.sql.SQLException;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24.  
  25. import javax.annotation.Resource;
  26. import javax.sql.DataSource;
  27. import javax.ws.rs.Consumes;
  28. import javax.ws.rs.DELETE;
  29. import javax.ws.rs.GET;
  30. import javax.ws.rs.POST;
  31. import javax.ws.rs.PUT;
  32. import javax.ws.rs.Path;
  33. import javax.ws.rs.PathParam;
  34. import javax.ws.rs.Produces;
  35. import javax.ws.rs.core.MediaType;
  36. import javax.ws.rs.core.Response;
  37. import javax.ws.rs.core.Response.ResponseBuilder;
  38.  
  39. import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
  40. import org.glassfish.jersey.media.multipart.FormDataParam;
  41.  
  42. import de.atiw.sportfest.backend.ExceptionResponse;
  43. import de.atiw.sportfest.backend.auth.Role;
  44. import de.atiw.sportfest.backend.auth.Secured;
  45. import de.atiw.sportfest.backend.resource.jaxb.Disziplin;
  46. import de.atiw.sportfest.backend.resource.jaxb.Klasse;
  47. import de.atiw.sportfest.backend.resource.jaxb.Schueler;
  48. import excel.exports.DBToExcelDisziplin;
  49. import excel.exports.DBToExcelExporter;
  50. import excel.exports.DBToExcelSchueler;
  51. import excel.imports.ExcelToDBImporter;
  52. import excel.imports.ExcelToDBTeilnahme;
  53.  
  54. @Path("/klasse")
  55. public class KlasseResource {
  56. @@ -80,6 +95,89 @@ public class KlasseResource {
  57. return response;
  58. }
  59.  
  60. @GET
  61. @Path("/{kid}/anmeldung")
  62. @Produces("application/vnd.ms-excel")
  63. public Response getAnmeldebogen(@PathParam("kid") String kid){
  64. Response response = null;
  65. Connection connection = null;
  66. try {
  67. connection = db.getConnection();
  68.  
  69.  
  70. ArrayList<DBToExcelSchueler> schueler = new ArrayList<>();
  71. ResultSet rs = Schueler.getRSgetAllOfKlasse(connection, kid);
  72. while(rs.next()){
  73. schueler.add(new DBToExcelSchueler(rs.getString(2), rs.getString(3), rs.getInt(1)));
  74. }
  75. rs = Disziplin.getRSgetAll(connection);
  76.  
  77.  
  78. ArrayList<DBToExcelDisziplin> disziplinen = new ArrayList<>();
  79. while(rs.next()){
  80. disziplinen.add(new DBToExcelDisziplin(rs.getString(2), rs.getInt(1), rs.getBoolean(7), rs.getInt(4), rs.getInt(5)));
  81. }
  82.  
  83.  
  84. String klasse = "";
  85. rs = Klasse.getRSgetOne(connection, kid);
  86. if(rs.next()){
  87. klasse = rs.getString(2);
  88. }
  89.  
  90. String fileName = klasse+".xlsx";
  91. String path = System.getProperty("user.dir")+"/"+fileName;
  92.  
  93. DBToExcelExporter.export(path, klasse, schueler, disziplinen);
  94.  
  95. File file = new File(path);
  96. ResponseBuilder responseBuilder = Response.ok((Object) file).header("Content-Disposition", "attachment; filename="+fileName);
  97.  
  98. response = responseBuilder.build();
  99. } catch (Exception e) {
  100. e.printStackTrace();
  101. response = ExceptionResponse.internalServerError(e);
  102. }finally {
  103. try {
  104. connection.close();
  105. } catch (SQLException e) {
  106. e.printStackTrace();
  107. }
  108. }
  109. return response;
  110. }
  111.  
  112. @POST
  113. @Path("/anmeldung")
  114. @Consumes(MediaType.MULTIPART_FORM_DATA)
  115. public Response putAnmeldebogen(
  116. @FormDataParam("file") InputStream uploadedInputStream,
  117. @FormDataParam("file") FormDataContentDisposition fileDetail) {
  118. Response response = null;
  119. Connection connection = null;
  120. try {
  121. connection = db.getConnection();
  122.  
  123. List<ExcelToDBTeilnahme> teilnahmen = ExcelToDBImporter.importTeilnahmen(uploadedInputStream);
  124.  
  125. for(ExcelToDBTeilnahme teilnahme : teilnahmen){
  126. Klasse.getRSputAnmeldung(connection, teilnahme.getSchuelerID(), teilnahme.getDisziplinID());
  127. }
  128.  
  129. response = Response.ok().build();
  130. } catch (Exception e) {
  131. e.printStackTrace();
  132. response = ExceptionResponse.internalServerError(e);
  133. }finally {
  134. try {
  135. connection.close();
  136. } catch (SQLException e) {
  137. e.printStackTrace();
  138. }
  139. }
  140. return response;
  141. }
  142.  
  143. @PUT
  144. @Secured({ Role.admin })
  145. @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
  146. diff --git a/src/main/java/de/atiw/sportfest/backend/resource/jaxb/Klasse.java b/src/main/java/de/atiw/sportfest/backend/resource/jaxb/Klasse.java
  147. index 11e7b0b..5168a49 100644
  148. -- a/src/main/java/de/atiw/sportfest/backend/resource/jaxb/Klasse.java
  149. ++ b/src/main/java/de/atiw/sportfest/backend/resource/jaxb/Klasse.java
  150. @@ -50,6 +50,13 @@ public class Klasse {
  151. }
  152. }
  153.  
  154. public static void getRSputAnmeldung(Connection conn, int sid, int did) throws SQLException {
  155. PreparedStatement ps = conn.prepareStatement("Call AnmeldungAnlegen(?, ?);");
  156. ps.setInt(1, sid);
  157. ps.setInt(2, did);
  158. ps.execute();
  159. }
  160.  
  161. public static void getRSdelete(Connection conn, String kid) throws SQLException{
  162. PreparedStatement ps = conn.prepareStatement("Call KlasseLoeschen(?)");
  163. ps.setString(1,kid);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement