Skip to content

Commit 3c4f049

Browse files
authored
Merge pull request #37 from SakalAndrej/develop
Releaseable
2 parents 7e6df49 + bf3a12f commit 3c4f049

File tree

15 files changed

+306
-66
lines changed

15 files changed

+306
-66
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package at.htl.facades;
2+
3+
import at.htl.model.Campaign;
4+
import at.htl.model.DataSetDataField;
5+
6+
import javax.ejb.Stateless;
7+
import javax.persistence.EntityManager;
8+
import javax.persistence.PersistenceContext;
9+
import javax.persistence.TypedQuery;
10+
import java.util.List;
11+
12+
@Stateless
13+
public class CampaignFacade {
14+
15+
@PersistenceContext
16+
EntityManager entityManager;
17+
18+
public void save(Campaign campaign) {
19+
entityManager.persist(campaign);
20+
}
21+
22+
public void merge(Campaign campaign) {
23+
entityManager.merge(campaign);
24+
}
25+
26+
public Campaign findById(long id) {
27+
return entityManager.find(Campaign.class,id);
28+
}
29+
30+
public List<Campaign> getAll() {
31+
TypedQuery<Campaign> query = entityManager.createNamedQuery("Campaign.GetAll",Campaign.class);
32+
return query.getResultList();
33+
}
34+
35+
public void delete(long id) {
36+
entityManager.remove(findById(id));
37+
}
38+
}

HomeDsBackend/src/main/java/at/htl/facades/DataSetFieldFacade.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public DataSetDataField findById(long id) {
3737
return entityManager.find(DataSetDataField.class, id);
3838
}
3939

40-
4140
public List<DataSetDataField> getAll() {
4241
TypedQuery<DataSetDataField> q = entityManager.createNamedQuery("DataSetDataField.GetAll", DataSetDataField.class);
4342
return q.getResultList();
@@ -54,4 +53,9 @@ public void deleteById(long id) {
5453
DataSetDataField entityToDelete = findById(id);
5554
entityManager.remove(entityToDelete);
5655
}
56+
57+
public List<DataSetDataField> getActiveDataSetRows() {
58+
TypedQuery<DataSetDataField> q = entityManager.createNamedQuery("DataSetDataField.findActive", DataSetDataField.class);
59+
return q.getResultList();
60+
}
5761
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package at.htl.model;
2+
3+
import javax.persistence.*;
4+
5+
@NamedQueries(
6+
{
7+
@NamedQuery(name = "Campaign.GetAll",
8+
query = "select d from Campaign d")
9+
})
10+
11+
@Table
12+
@Entity
13+
public class Campaign {
14+
15+
@Id
16+
@GeneratedValue(strategy = GenerationType.IDENTITY)
17+
private long id;
18+
19+
private long campaignId;
20+
21+
public Campaign(long campaignId) {
22+
this.campaignId = campaignId;
23+
}
24+
25+
public Campaign() { }
26+
27+
//region Getter & Setter
28+
29+
public long getCampaignId() {
30+
return campaignId;
31+
}
32+
33+
public void setCampaignId(long campaignId) {
34+
this.campaignId = campaignId;
35+
}
36+
37+
public long getId() {
38+
return id;
39+
}
40+
41+
public void setId(long id) {
42+
this.id = id;
43+
}
44+
45+
//endregion
46+
}

HomeDsBackend/src/main/java/at/htl/model/DataSetDataField.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
query = "select d from DataSetDataField d"),
1212

1313
@NamedQuery(name = "DataSetDataField.findByRowId",
14-
query = "select d from DataSetDataField d where :id = d.dataRowId")
14+
query = "select d from DataSetDataField d where :id = d.dataRowId"),
15+
16+
@NamedQuery(name = "DataSetDataField.findActive",
17+
query = "select d from DataSetDataField d where d.isActive = true")
1518
})
1619

1720
@Table

HomeDsBackend/src/main/java/at/htl/rest/MediaEndpoint.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ public class MediaEndpoint {
2121
@Produces(MediaType.APPLICATION_JSON)
2222
@Path("/")
2323
@ApiOperation("Get all Medias")
24-
public Response getMedias(@QueryParam("start") int start, @QueryParam("length") int length) {
24+
public Response getMedias(@QueryParam("start") int start, @QueryParam("length") int length, @QueryParam("tags") String tags) {
2525
try {
2626
if (length == 0 && start == 0) {
2727

28-
return Response.ok(mediaApi.getAllMedia(start, length)).build();
28+
return Response.ok(mediaApi.getAllMedia(start, length, tags)).build();
2929

3030
} else {
31-
return Response.ok(mediaApi.getAllMedia(start, length)).build();
31+
return Response.ok(mediaApi.getAllMedia(start, length, tags)).build();
3232
}
3333
} catch (NoConnectionException e) {
3434
e.printStackTrace();
Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package at.htl.utils;
22

33
import at.htl.exceptions.NoConnectionException;
4-
import at.htl.model.DataSet;
5-
import at.htl.model.Display;
4+
import at.htl.facades.CampaignFacade;
5+
import at.htl.facades.DataSetFieldFacade;
6+
import at.htl.model.Campaign;
67
import at.htl.xiboClient.DataSetApi;
78
import at.htl.xiboClient.DisplayApi;
89

910
import javax.ejb.Stateless;
1011
import javax.inject.Inject;
11-
import java.util.LinkedList;
12+
import java.time.LocalDateTime;
1213

1314
@Stateless
1415
public class LayoutChangerUtil {
@@ -19,18 +20,43 @@ public class LayoutChangerUtil {
1920
@Inject
2021
DataSetApi dataSetApi;
2122

22-
public void changeLayoutForAll(int layoutId) {
23-
try {
24-
LinkedList<Display> displays = displayApi.GetAllDisplays();
25-
26-
/*for (int i = 0; i < displays.size(); i++) {
27-
displayApi.ChangeLayout(displays.get(i).getDisplayGroupId(), layoutId);
28-
}*/
29-
displayApi.ChangeLayout(11,layoutId);
30-
dataSetApi.collectNowAll();
31-
} catch (NoConnectionException e) {
32-
e.printStackTrace();
33-
}
23+
@Inject
24+
DataSetFieldFacade dataSetFieldFacade;
25+
26+
@Inject
27+
CampaignFacade campaignFacade;
3428

29+
public void changeLayout(long campaignLayoutId, LocalDateTime toDate) throws NoConnectionException {
30+
displayApi.scheduleLayout(campaignLayoutId, LocalDateTime.now(), toDate);
31+
dataSetApi.collectNowAll();
32+
}
33+
34+
/*
35+
Wenn keine DataSets verfügbar Layout auf normal wechseln (alte kampagne löschen falls es eine alte gibt wenn nicht nichts tun)
36+
Wenn DataSets verfügbar sind dataset layout einlegen (neue kampagne anlegen)
37+
*/
38+
public void campaignLogic() {
39+
if (dataSetFieldFacade.getActiveDataSetRows().size() > 0) {
40+
try {
41+
long id = -1;
42+
if (campaignFacade.getAll().size() <= 0 && (id = displayApi.scheduleLayout(43, LocalDateTime.now(), LocalDateTime.now().plusMinutes(2))) > 0) {
43+
campaignFacade.save(new Campaign(id));
44+
}
45+
} catch (NoConnectionException e) {
46+
e.printStackTrace();
47+
}
48+
} else {
49+
if (campaignFacade.getAll() != null && campaignFacade.getAll().size()>0) {
50+
long deleteId = campaignFacade.getAll().get(0).getId();
51+
52+
try {
53+
if (displayApi.deleteEvent(campaignFacade.getAll().get(0).getCampaignId())) {
54+
campaignFacade.delete(deleteId);
55+
}
56+
} catch (NoConnectionException e) {
57+
e.printStackTrace();
58+
}
59+
}
60+
}
3561
}
3662
}

HomeDsBackend/src/main/java/at/htl/utils/RequestHelper.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ public HttpURLConnection executeRequest(RequestTypeEnum executeType, String para
3333
case PUT:
3434
con.setRequestMethod("PUT");
3535
con.setDoOutput(true);
36-
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
37-
wr.writeBytes(paramsBody);
38-
wr.flush();
39-
wr.close();
36+
DataOutputStream wr2 = new DataOutputStream(con.getOutputStream());
37+
wr2.writeBytes(paramsBody);
38+
wr2.flush();
39+
wr2.close();
4040
break;
4141

4242
case POST:

HomeDsBackend/src/main/java/at/htl/utils/TimeService.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
package at.htl.utils;
22

33
import at.htl.exceptions.NoConnectionException;
4+
import at.htl.facades.CampaignFacade;
45
import at.htl.facades.DataSetFieldFacade;
6+
import at.htl.model.Campaign;
57
import at.htl.model.DataSetDataField;
68
import at.htl.xiboClient.DataSetApi;
9+
import at.htl.xiboClient.DisplayApi;
710

811
import javax.annotation.PostConstruct;
912
import javax.ejb.EJB;
1013
import javax.ejb.Schedule;
1114
import javax.ejb.Singleton;
1215
import javax.ejb.Startup;
1316
import java.time.LocalDate;
17+
import java.time.LocalDateTime;
1418
import java.util.List;
1519

1620
@Singleton
@@ -23,7 +27,16 @@ public class TimeService {
2327
@EJB
2428
DataSetApi dataSetApi;
2529

26-
@Schedule(minute = "*", hour = "*")
30+
@EJB
31+
DisplayApi displayApi;
32+
33+
@EJB
34+
CampaignFacade campaignFacade;
35+
36+
@EJB
37+
LayoutChangerUtil layoutChangerUtil;
38+
39+
@Schedule(minute = "*", hour = "23")
2740
public void doWork() {
2841
List<DataSetDataField> datafields = dataSetFieldFacade.getAll();
2942

@@ -83,6 +96,9 @@ public void doWork() {
8396
else {
8497
System.out.println("Every min scheduler had no job :(!");
8598
}
99+
100+
layoutChangerUtil.campaignLogic();
101+
86102
}
87103

88104
@PostConstruct

HomeDsBackend/src/main/java/at/htl/web/DataSetController.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import at.htl.exceptions.NoConnectionException;
44
import at.htl.facades.DataSetFieldFacade;
55
import at.htl.model.DataSetDataField;
6+
import at.htl.utils.LayoutChangerUtil;
67
import at.htl.xiboClient.DataSetApi;
78

89
import javax.annotation.PostConstruct;
@@ -25,6 +26,9 @@ public class DataSetController implements Serializable {
2526
@Inject
2627
DataSetApi dataSetApi;
2728

29+
@Inject
30+
LayoutChangerUtil layoutChangerUtil;
31+
2832
private static List<DataSetDataField> dataSetData;
2933

3034
private DataSetDataField dataSetToAdd;
@@ -37,6 +41,7 @@ public DataSetController() {
3741
public void init() {
3842
this.updateList();
3943
dataSetToAdd = new DataSetDataField();
44+
//layoutChangerUtil.campaignLogic();
4045
}
4146

4247
public void removeDataSet(DataSetDataField dataSet) {
@@ -60,6 +65,7 @@ public void removeDataSet(DataSetDataField dataSet) {
6065
} catch (NoConnectionException ex) {
6166
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "", "Error while establishing a connection"));
6267
}
68+
layoutChangerUtil.campaignLogic();
6369
}
6470

6571
public void addDataSet() {
@@ -87,6 +93,7 @@ public void addDataSetToXibo(DataSetDataField dataFieldToAdd) {
8793
dataFieldToAdd.setDataRowId(id);
8894
dataSetFieldFacade.save(dataFieldToAdd);
8995
this.updateList();
96+
layoutChangerUtil.campaignLogic();
9097

9198
//clear add variable
9299
dataSetToAdd = new DataSetDataField();

HomeDsBackend/src/main/java/at/htl/web/IndexController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class IndexController {
2222
private static LocalDateTime lastOnline;
2323

2424
public boolean isServerOnline() {
25-
if (cnt == 0 || (lastOnline.plusMinutes(2).isBefore(LocalDateTime.now()))) {
25+
if (cnt == 0 || (lastOnline.plusSeconds(30).isBefore(LocalDateTime.now()))) {
2626
try {
2727
cnt++;
2828
on = true;

0 commit comments

Comments
 (0)