DB -> Log get, add, edit, del
This commit is contained in:
parent
bb8a796bd4
commit
d9adebc934
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
out/
|
out/
|
||||||
conf.ini
|
conf.ini
|
||||||
log/log4j/log.out/
|
log/
|
||||||
reports/
|
reports/
|
||||||
|
.idea/dataSources*
|
@ -11,5 +11,6 @@
|
|||||||
<orderEntry type="library" name="org.ini4j:ini4j:0.5.4" level="project" />
|
<orderEntry type="library" name="org.ini4j:ini4j:0.5.4" level="project" />
|
||||||
<orderEntry type="library" name="log4j:log4j:1.2.17" level="project" />
|
<orderEntry type="library" name="log4j:log4j:1.2.17" level="project" />
|
||||||
<orderEntry type="library" name="org.apache.pdfbox:pdfbox:1.8.9" level="project" />
|
<orderEntry type="library" name="org.apache.pdfbox:pdfbox:1.8.9" level="project" />
|
||||||
|
<orderEntry type="library" name="org.postgresql:postgresql:42.2.19" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
@ -1,10 +1,13 @@
|
|||||||
package tourplaner.business;
|
package tourplaner.business;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
import org.apache.pdfbox.exceptions.COSVisitorException;
|
||||||
import tourplaner.data.DbConnect;
|
import tourplaner.data.DbConnect;
|
||||||
import tourplaner.data.PostgresHelper;
|
import tourplaner.data.PostgresHelper;
|
||||||
|
import tourplaner.object.Log;
|
||||||
import tourplaner.object.Tour;
|
import tourplaner.object.Tour;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -25,9 +28,7 @@ public class TourPlaner{
|
|||||||
* @return Alle touren als ArrayList
|
* @return Alle touren als ArrayList
|
||||||
*/
|
*/
|
||||||
public static ArrayList<Tour> getAllTours(){
|
public static ArrayList<Tour> getAllTours(){
|
||||||
DbConnect dbConnect = new DbConnect();
|
return new DbConnect().getAllTouren();
|
||||||
ArrayList<Tour> touren = dbConnect.getAllTouren();
|
|
||||||
return touren;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,13 +38,11 @@ public class TourPlaner{
|
|||||||
* @return false bei error
|
* @return false bei error
|
||||||
*/
|
*/
|
||||||
public static boolean editTour(String oldname, Tour tour){
|
public static boolean editTour(String oldname, Tour tour){
|
||||||
DbConnect dbConnect = new DbConnect();
|
return new DbConnect().editTour(oldname, tour);
|
||||||
return dbConnect.editTour(oldname, tour);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean delTour(String tourname){
|
public static boolean delTour(String tourname){
|
||||||
DbConnect dbConnect = new DbConnect();
|
return new DbConnect().delTour(tourname);
|
||||||
return dbConnect.delTour(tourname);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -52,11 +51,38 @@ public class TourPlaner{
|
|||||||
* @return false bei error
|
* @return false bei error
|
||||||
*/
|
*/
|
||||||
public static boolean addTour(Tour newTour){
|
public static boolean addTour(Tour newTour){
|
||||||
DbConnect dbConnect = new DbConnect();
|
return new DbConnect().addTour(newTour);
|
||||||
return dbConnect.addTour(newTour);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static ArrayList<Log> getLogs(String tourname){
|
||||||
|
return new DbConnect().getLogs(tourname);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void doReport(String tourname){
|
||||||
|
try {
|
||||||
|
Reporter.createTourReport(tourname);
|
||||||
|
} catch (IOException e) {
|
||||||
|
LogHelper.error(e.getMessage(), e.getClass().getName());
|
||||||
|
} catch (COSVisitorException e) {
|
||||||
|
LogHelper.error(e.getMessage(), e.getClass().getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean addLog(String tourname, Log log){
|
||||||
|
if(Double.isInfinite(log.getAvgspeed())) log.setAvgspeed(-1.0);
|
||||||
|
return new DbConnect().addLog(tourname, log);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean delLog(String tourname, String id){
|
||||||
|
return new DbConnect().delLog(tourname, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean editLog(String tourname, Log log){
|
||||||
|
if(Double.isInfinite(log.getAvgspeed())) log.setAvgspeed(-1.0);
|
||||||
|
return new DbConnect().editLog(tourname, log);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String getMapJson(String start, String ziel){
|
public static String getMapJson(String start, String ziel){
|
||||||
// TODO: 14.04.2021 Map Quest
|
// TODO: 14.04.2021 Map Quest
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
package tourplaner.data;
|
package tourplaner.data;
|
||||||
|
|
||||||
|
import javafx.geometry.Pos;
|
||||||
|
import tourplaner.object.Log;
|
||||||
import tourplaner.object.Tour;
|
import tourplaner.object.Tour;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
import java.sql.Date;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,9 +49,20 @@ public class DbConnect {
|
|||||||
* @return false bei error
|
* @return false bei error
|
||||||
*/
|
*/
|
||||||
public boolean editTour(String oldname, Tour tour) {
|
public boolean editTour(String oldname, Tour tour) {
|
||||||
return PostgresHelper.executeUpdate("UPDATE public.tour SET tourname = '"+tour.getName()+"', dauer = 1, mapjson = '"+tour.getMapJson()+"', start = '"+tour.getStart()+"', ziel = '"+tour.getZiel()+"', strecke = "+tour.getStrecke()+" WHERE tourname ='" + oldname + "';");
|
String tourname = tour.getName();
|
||||||
|
ArrayList<Boolean> result = new ArrayList<>();
|
||||||
|
ArrayList<Log> logs = getLogs(oldname);
|
||||||
|
result.add(delLogs(oldname));
|
||||||
|
result.add(PostgresHelper.executeUpdate("UPDATE public.tour SET tourname = '"+tour.getName()+"', dauer = 1, mapjson = '"+tour.getMapJson()+"', start = '"+tour.getStart()+"', ziel = '"+tour.getZiel()+"', strecke = "+tour.getStrecke()+" WHERE tourname ='" + oldname + "';"));
|
||||||
|
logs.forEach(log -> {
|
||||||
|
result.add(addLog(tourname, log));
|
||||||
|
});
|
||||||
|
return !result.contains(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean delLogs(String tourname){
|
||||||
|
return PostgresHelper.executeUpdate("DELETE FROM public.log WHERE tourname = '"+tourname+"'");
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Fügt eine Tour hinzu
|
* Fügt eine Tour hinzu
|
||||||
* @param tour Neue Tour
|
* @param tour Neue Tour
|
||||||
@ -63,7 +78,70 @@ public class DbConnect {
|
|||||||
* @return false bei error
|
* @return false bei error
|
||||||
*/
|
*/
|
||||||
public boolean delTour(String tourname){
|
public boolean delTour(String tourname){
|
||||||
return PostgresHelper.executeUpdate("DELETE FROM public.tour WHERE tourname = '"+tourname+"'");
|
ArrayList<Boolean> result = new ArrayList<>();
|
||||||
|
result.add(delLogs(tourname));
|
||||||
|
result.add(PostgresHelper.executeUpdate("DELETE FROM public.tour WHERE tourname = '"+tourname+"'"));
|
||||||
|
return !result.contains(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Log> getLogs(String tourname){
|
||||||
|
|
||||||
|
this.c = PostgresHelper.con();
|
||||||
|
String id, bemerkung ;
|
||||||
|
double dauer, strecke, pause, gegangen, avg, hightmeter;
|
||||||
|
Date datum;
|
||||||
|
|
||||||
|
ArrayList<Log> logs = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
stmt = this.c.createStatement();
|
||||||
|
ResultSet rs = stmt.executeQuery("SELECT * FROM public.log where tourname = '"+ tourname +"'");
|
||||||
|
while (rs.next()) {
|
||||||
|
id = rs.getString("id");
|
||||||
|
bemerkung = rs.getString("bemerkung");
|
||||||
|
datum = rs.getDate("datum");
|
||||||
|
dauer = rs.getDouble("dauer");
|
||||||
|
// avg = rs.getDouble("avg");
|
||||||
|
hightmeter = rs.getDouble("hightmeter");
|
||||||
|
pause = rs.getDouble("pause");
|
||||||
|
// gegangen = rs.getDouble("gegangen");
|
||||||
|
strecke = rs.getDouble("strecke");
|
||||||
|
if (!tourname.isEmpty()) {
|
||||||
|
logs.add(new Log(id, dauer, datum.toLocalDate(), strecke, bemerkung,hightmeter, pause));
|
||||||
|
}else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
stmt.close();
|
||||||
|
this.c.close();
|
||||||
|
return logs;
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println(e.getClass().getName() + ": " + e.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Füght einen Logeintrag ein
|
||||||
|
* @param tourname Zu welcher Tour der Logeintrag gehört
|
||||||
|
* @param log Der Logeintrag
|
||||||
|
* @return false bei error
|
||||||
|
*/
|
||||||
|
public boolean addLog(String tourname, Log log){
|
||||||
|
if(Double.isInfinite(log.getAvgspeed())) log.setAvgspeed(-1.0);
|
||||||
|
return PostgresHelper.executeUpdate("INSERT INTO public.log (tourname, id, bemerkung, datum, strecke, avg, hightmeter, pause, gegangen, dauer) VALUES ('"+tourname+"', '"+log.getId()+"', '"+log.getBemerkung()+"', '"+log.getDatum()+"', "
|
||||||
|
+log.getStrecke()+", "+log.getAvgspeed()+", "+log.getHightmeter()+", "+log.getPause()+", "+log.getGegangen()+", "+log.getDauer()+")");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean editLog(String tourname, Log log){
|
||||||
|
return PostgresHelper.executeUpdate("UPDATE public.log SET bemerkung = '"+log.getBemerkung()+"', datum = '"+log.getDatum()+"', strecke = "+log.getStrecke()+", avg = "+log.getAvgspeed()+", hightmeter = "+
|
||||||
|
log.getHightmeter()+", pause = "+log.getPause()+", gegangen = "+log.getGegangen()+", dauer = "+log.getDauer()+" WHERE tourname = '"+tourname+"' and id = '"+log.getId()+"'");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean delLog(String tourname, String id){
|
||||||
|
System.out.println("DELETE FROM public.log WHERE tourname = '"+tourname+"' and id = '"+id+"'");
|
||||||
|
return PostgresHelper.executeUpdate("DELETE FROM public.log WHERE tourname = '"+tourname+"' and id = '"+id+"'");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,6 +11,7 @@ import javafx.scene.control.cell.PropertyValueFactory;
|
|||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
import tourplaner.business.ConfigHelper;
|
import tourplaner.business.ConfigHelper;
|
||||||
import tourplaner.business.LogHelper;
|
import tourplaner.business.LogHelper;
|
||||||
|
import tourplaner.business.TourPlaner;
|
||||||
import tourplaner.object.Log;
|
import tourplaner.object.Log;
|
||||||
import tourplaner.object.Tour;
|
import tourplaner.object.Tour;
|
||||||
import tourplaner.viewmodels.ViewModel;
|
import tourplaner.viewmodels.ViewModel;
|
||||||
@ -49,13 +50,13 @@ public class TourplanerController implements Initializable {
|
|||||||
@FXML
|
@FXML
|
||||||
private void editTourBtn(){
|
private void editTourBtn(){
|
||||||
this.viewModel.editTour();
|
this.viewModel.editTour();
|
||||||
beschreibungTableView.getItems().removeIf(s -> true); //Leert die Table View komplett
|
syncTour(this.viewModel.getSelectedTour().getName());
|
||||||
beschreibungTableView.getItems().add(this.viewModel.getTour(this.viewModel.getSelectedTour().getName()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void editLogBtn(){
|
private void editLogBtn(){
|
||||||
this.viewModel.editLog();
|
this.viewModel.editLog();
|
||||||
|
syncLogs();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Öffnet github im standart browser
|
* Öffnet github im standart browser
|
||||||
@ -84,6 +85,19 @@ public class TourplanerController implements Initializable {
|
|||||||
this.viewModel.doxygenDocBrowser();
|
this.viewModel.doxygenDocBrowser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void syncTour(String selectedItem){
|
||||||
|
beschreibungTableView.getItems().removeIf(s -> true); //Leert die Table View komplett
|
||||||
|
beschreibungTableView.getItems().add(this.viewModel.getTour(selectedItem));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void syncTourNamen(){
|
||||||
|
TourListView.setItems(this.viewModel.getTourNamen());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void syncLogs(){
|
||||||
|
logTableView.getItems().removeIf(s -> true);
|
||||||
|
logTableView.setItems(this.viewModel.getLogData());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -95,8 +109,7 @@ public class TourplanerController implements Initializable {
|
|||||||
String selectedItem = TourListView.getSelectionModel().getSelectedItem();
|
String selectedItem = TourListView.getSelectionModel().getSelectedItem();
|
||||||
this.viewModel.selectTour(selectedItem);
|
this.viewModel.selectTour(selectedItem);
|
||||||
titleTextView.setText(selectedItem);
|
titleTextView.setText(selectedItem);
|
||||||
beschreibungTableView.getItems().removeIf(s -> true); //Leert die Table View komplett
|
syncTour(selectedItem);
|
||||||
beschreibungTableView.getItems().add(this.viewModel.getTour(selectedItem));
|
|
||||||
startCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("start"));
|
startCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("start"));
|
||||||
zielCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("ziel"));
|
zielCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("ziel"));
|
||||||
dauerCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("dauer"));
|
dauerCol.setCellValueFactory(new PropertyValueFactory<Tour, String>("dauer"));
|
||||||
@ -105,6 +118,7 @@ public class TourplanerController implements Initializable {
|
|||||||
|
|
||||||
//Log anzeigen
|
//Log anzeigen
|
||||||
logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinelogsvorhanden")));
|
logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinelogsvorhanden")));
|
||||||
|
logTableView.getItems().removeIf(s -> true);
|
||||||
logTableView.setItems(this.viewModel.getLogData());
|
logTableView.setItems(this.viewModel.getLogData());
|
||||||
logDauerCol.setCellValueFactory(new PropertyValueFactory<Log, String>("dauer"));
|
logDauerCol.setCellValueFactory(new PropertyValueFactory<Log, String>("dauer"));
|
||||||
logStreckeCol.setCellValueFactory(new PropertyValueFactory<Log, String>("strecke"));
|
logStreckeCol.setCellValueFactory(new PropertyValueFactory<Log, String>("strecke"));
|
||||||
@ -163,12 +177,13 @@ public class TourplanerController implements Initializable {
|
|||||||
@FXML
|
@FXML
|
||||||
private void addLog(){
|
private void addLog(){
|
||||||
this.viewModel.addLog();
|
this.viewModel.addLog();
|
||||||
|
syncLogs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void delLog(){
|
private void delLog(){
|
||||||
this.viewModel.delLog();
|
this.viewModel.delLog();
|
||||||
|
syncLogs();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -190,7 +205,7 @@ public class TourplanerController implements Initializable {
|
|||||||
//Tour list -> links
|
//Tour list -> links
|
||||||
TourListView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
|
TourListView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
|
||||||
TourListView.setOrientation(Orientation.VERTICAL);
|
TourListView.setOrientation(Orientation.VERTICAL);
|
||||||
TourListView.setItems(this.viewModel.getTourNamen());
|
syncTourNamen();
|
||||||
//Tabs zu Tour -> rechts oben
|
//Tabs zu Tour -> rechts oben
|
||||||
beschreibungTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected")));
|
beschreibungTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected")));
|
||||||
titleTextView.setText( ConfigHelper.getLangIniString("keinetourselected"));
|
titleTextView.setText( ConfigHelper.getLangIniString("keinetourselected"));
|
||||||
|
@ -212,10 +212,11 @@ public class ViewModel {
|
|||||||
Log newLog = new Log(this.selectedLog.getId(), dauer, datum, strecke, this.neueBemerkung, hightmeter, pause);
|
Log newLog = new Log(this.selectedLog.getId(), dauer, datum, strecke, this.neueBemerkung, hightmeter, pause);
|
||||||
this.logData.removeIf(ld -> ld.getId().equals(this.selectedLog.getId()));
|
this.logData.removeIf(ld -> ld.getId().equals(this.selectedLog.getId()));
|
||||||
this.logData.add(newLog);
|
this.logData.add(newLog);
|
||||||
tourAkt.get().delLog(this.selectedLog.getId());
|
// tourAkt.get().delLog(this.selectedLog.getId());
|
||||||
tourAkt.get().addLog(newLog);
|
// tourAkt.get().addLog(newLog);
|
||||||
this.tourData.removeIf(td -> td.getName().equals(this.selectedTour.getName()));
|
this.tourData.removeIf(td -> td.getName().equals(this.selectedTour.getName()));
|
||||||
this.tourData.add(tourAkt.get());
|
this.tourData.add(tourAkt.get());
|
||||||
|
TourPlaner.editLog(this.selectedTour.getName(), newLog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -327,6 +328,7 @@ public class ViewModel {
|
|||||||
if (date != null) {
|
if (date != null) {
|
||||||
Log newLog = new Log(newId.get(), dauer, date, strecke, this.neueBemerkung, hightmeter, pause);
|
Log newLog = new Log(newId.get(), dauer, date, strecke, this.neueBemerkung, hightmeter, pause);
|
||||||
this.logData.add(newLog);
|
this.logData.add(newLog);
|
||||||
|
TourPlaner.addLog(this.selectedTour.getName(), newLog);
|
||||||
s.addLog(newLog);
|
s.addLog(newLog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -348,25 +350,8 @@ public class ViewModel {
|
|||||||
*/
|
*/
|
||||||
public void delLog(){
|
public void delLog(){
|
||||||
if(this.selectedLog != null) {
|
if(this.selectedLog != null) {
|
||||||
this.logData.removeIf(s -> s.getId().equals(this.selectedLog.getId()));
|
TourPlaner.delLog(this.selectedTour.getName(), this.selectedLog.getId());
|
||||||
AtomicReference<Tour> tourToEdit = new AtomicReference<>();
|
|
||||||
this.tourData.forEach(s -> {
|
|
||||||
if (s.getLogs() != null) {
|
|
||||||
s.getLogs().forEach(ss -> {
|
|
||||||
if (ss.getId().equals(this.selectedLog.getId())) {
|
|
||||||
tourToEdit.set(s);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (tourToEdit.get() != null){
|
|
||||||
Tour toEdit = tourToEdit.get();
|
|
||||||
toEdit.delLog(this.selectedLog.getId());
|
|
||||||
this.tourData.removeIf(s -> s.getName().equals(toEdit.getName()));
|
|
||||||
this.tourData.add(toEdit);
|
|
||||||
this.selectedLog = null;
|
this.selectedLog = null;
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
AlertHelper.warn(ConfigHelper.getLangIniString("achtung"),
|
AlertHelper.warn(ConfigHelper.getLangIniString("achtung"),
|
||||||
ConfigHelper.getLangIniString("keinetourselected"),
|
ConfigHelper.getLangIniString("keinetourselected"),
|
||||||
@ -406,6 +391,8 @@ public class ViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ObservableList<Log> getLogData() {
|
public ObservableList<Log> getLogData() {
|
||||||
|
logData.removeAll();
|
||||||
|
logData.addAll(TourPlaner.getLogs(this.selectedTour.getName()));
|
||||||
return logData;
|
return logData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -586,14 +573,7 @@ public class ViewModel {
|
|||||||
ConfigHelper.getLangIniString("keinetourselected"),
|
ConfigHelper.getLangIniString("keinetourselected"),
|
||||||
ConfigHelper.getLangIniString("logtournotselectedmsg"));
|
ConfigHelper.getLangIniString("logtournotselectedmsg"));
|
||||||
}else {
|
}else {
|
||||||
try {
|
TourPlaner.doReport(this.selectedTour.getName());
|
||||||
Reporter.createTourReport(this.selectedTour.getName());
|
|
||||||
} catch (IOException e) {
|
|
||||||
LogHelper.error(e.getMessage(), e.getClass().getName());
|
|
||||||
} catch (COSVisitorException e) {
|
|
||||||
LogHelper.error(e.getMessage(), e.getClass().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user