diff --git a/pom.xml b/pom.xml
index 5e55758..4a34740 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,6 +10,18 @@
4.0.0
consultant-core
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 8
+
+
+
+
1.0.2
@@ -43,6 +55,11 @@
spring-data-jpa
${spring.data}
+
+ javax.persistence
+ javax.persistence-api
+ 2.2
+
\ No newline at end of file
diff --git a/src/main/java/org/sadtech/consultant/database/entity/Message.java b/src/main/java/org/sadtech/consultant/database/entity/Messages.java
similarity index 56%
rename from src/main/java/org/sadtech/consultant/database/entity/Message.java
rename to src/main/java/org/sadtech/consultant/database/entity/Messages.java
index e729d25..f752173 100644
--- a/src/main/java/org/sadtech/consultant/database/entity/Message.java
+++ b/src/main/java/org/sadtech/consultant/database/entity/Messages.java
@@ -2,20 +2,20 @@ package org.sadtech.consultant.database.entity;
import lombok.Data;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
+import javax.persistence.*;
@Data
@Entity
-public class Message {
+public class Messages {
@Id
@GeneratedValue
private Long idMess;
private Long idUser;
private String text;
- private String date;
+ private Long date;
+ @Enumerated(EnumType.STRING)
+ private SourceMessage source;
}
diff --git a/src/main/java/org/sadtech/consultant/database/entity/SocialNetworks.java b/src/main/java/org/sadtech/consultant/database/entity/SocialNetworks.java
deleted file mode 100644
index d3c78a4..0000000
--- a/src/main/java/org/sadtech/consultant/database/entity/SocialNetworks.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.sadtech.consultant.database.entity;
-
-import lombok.Data;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-
-@Data
-@Entity
-public class SocialNetworks {
-
- @Id
- private Long id;
- private Long idVk;
- private Long idFacebook;
-
-}
diff --git a/src/main/java/org/sadtech/consultant/database/entity/SourceMessage.java b/src/main/java/org/sadtech/consultant/database/entity/SourceMessage.java
new file mode 100644
index 0000000..df6497a
--- /dev/null
+++ b/src/main/java/org/sadtech/consultant/database/entity/SourceMessage.java
@@ -0,0 +1,5 @@
+package org.sadtech.consultant.database.entity;
+
+public enum SourceMessage {
+ VK, FACEBOOK;
+}
diff --git a/src/main/java/org/sadtech/consultant/database/entity/User.java b/src/main/java/org/sadtech/consultant/database/entity/User.java
index 10271c7..17267fa 100644
--- a/src/main/java/org/sadtech/consultant/database/entity/User.java
+++ b/src/main/java/org/sadtech/consultant/database/entity/User.java
@@ -2,8 +2,7 @@ package org.sadtech.consultant.database.entity;
import lombok.Data;
-import javax.persistence.Entity;
-import javax.persistence.Id;
+import javax.persistence.*;
import java.util.List;
@Entity
@@ -16,7 +15,10 @@ public class User {
private String token;
private String lastName;
private String city;
-// private List socialNetworks;
+
+ @ElementCollection
+ @CollectionTable(name="SocialNetworks", joinColumns=@JoinColumn(name="id"))
+ private List socialNetworks;
}
diff --git a/src/main/java/org/sadtech/consultant/database/repository/MessageRepository.java b/src/main/java/org/sadtech/consultant/database/repository/MessageRepository.java
index 51d73ed..cedfccb 100644
--- a/src/main/java/org/sadtech/consultant/database/repository/MessageRepository.java
+++ b/src/main/java/org/sadtech/consultant/database/repository/MessageRepository.java
@@ -1,8 +1,16 @@
package org.sadtech.consultant.database.repository;
-import org.sadtech.consultant.database.entity.Message;
+import org.sadtech.consultant.database.entity.Messages;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
-public interface MessageRepository extends JpaRepository {
+import java.util.Collection;
+import java.util.List;
+
+public interface MessageRepository extends JpaRepository {
+
+ @Query("SELECT u FROM Messages u WHERE u.date > :date")
+ Collection getMessagesByRange(@Param("date") Long date);
}
diff --git a/src/main/java/org/sadtech/consultant/database/repository/NextUnitRepositoriy.java b/src/main/java/org/sadtech/consultant/database/repository/NextUnitRepository.java
similarity index 69%
rename from src/main/java/org/sadtech/consultant/database/repository/NextUnitRepositoriy.java
rename to src/main/java/org/sadtech/consultant/database/repository/NextUnitRepository.java
index eff732b..3f3f71f 100644
--- a/src/main/java/org/sadtech/consultant/database/repository/NextUnitRepositoriy.java
+++ b/src/main/java/org/sadtech/consultant/database/repository/NextUnitRepository.java
@@ -3,8 +3,7 @@ package org.sadtech.consultant.database.repository;
import org.sadtech.consultant.database.entity.NextUnit;
import org.springframework.data.jpa.repository.JpaRepository;
-public interface NextUnitRepositoriy extends JpaRepository {
-
+public interface NextUnitRepository extends JpaRepository {
}
diff --git a/src/main/java/org/sadtech/consultant/database/repository/SocialNetworksRepositoriy.java b/src/main/java/org/sadtech/consultant/database/repository/SocialNetworksRepositoriy.java
deleted file mode 100644
index 7c606ae..0000000
--- a/src/main/java/org/sadtech/consultant/database/repository/SocialNetworksRepositoriy.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.sadtech.consultant.database.repository;
-
-import org.sadtech.consultant.database.entity.SocialNetworks;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface SocialNetworksRepositoriy extends JpaRepository {
-}
diff --git a/src/main/java/org/sadtech/consultant/database/service/MessageService.java b/src/main/java/org/sadtech/consultant/database/service/MessageService.java
index c4edb28..9aa136e 100644
--- a/src/main/java/org/sadtech/consultant/database/service/MessageService.java
+++ b/src/main/java/org/sadtech/consultant/database/service/MessageService.java
@@ -1,8 +1,12 @@
package org.sadtech.consultant.database.service;
-import org.sadtech.consultant.database.entity.Message;
+import org.sadtech.consultant.database.entity.Messages;
+
+import java.util.List;
public interface MessageService {
- void addMessage(Message message);
+ void addMessage(Messages message);
+
+ List getMessageRange(Long date);
}
diff --git a/src/main/java/org/sadtech/consultant/database/service/SocialNetworksService.java b/src/main/java/org/sadtech/consultant/database/service/SocialNetworksService.java
deleted file mode 100644
index 83d12da..0000000
--- a/src/main/java/org/sadtech/consultant/database/service/SocialNetworksService.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package org.sadtech.consultant.database.service;
-
-public interface SocialNetworksService {
-}
diff --git a/src/main/java/org/sadtech/consultant/database/service/impl/MessageServiceImpl.java b/src/main/java/org/sadtech/consultant/database/service/impl/MessageServiceImpl.java
index 2171cda..23f6d65 100644
--- a/src/main/java/org/sadtech/consultant/database/service/impl/MessageServiceImpl.java
+++ b/src/main/java/org/sadtech/consultant/database/service/impl/MessageServiceImpl.java
@@ -1,18 +1,25 @@
package org.sadtech.consultant.database.service.impl;
-import org.sadtech.consultant.database.entity.Message;
+import org.sadtech.consultant.database.entity.Messages;
import org.sadtech.consultant.database.repository.MessageRepository;
import org.sadtech.consultant.database.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+
@Service
public class MessageServiceImpl implements MessageService {
@Autowired
private MessageRepository repository;
- public void addMessage(Message message) {
+ public void addMessage(Messages message) {
repository.saveAndFlush(message);
}
+
+ @Override
+ public List getMessageRange(Long date) {
+ return (List) repository.getMessagesByRange(date);
+ }
}
diff --git a/src/main/java/org/sadtech/consultant/database/service/impl/NextUnitServiceImpl.java b/src/main/java/org/sadtech/consultant/database/service/impl/NextUnitServiceImpl.java
index 282c162..1e93a0f 100644
--- a/src/main/java/org/sadtech/consultant/database/service/impl/NextUnitServiceImpl.java
+++ b/src/main/java/org/sadtech/consultant/database/service/impl/NextUnitServiceImpl.java
@@ -1,6 +1,6 @@
package org.sadtech.consultant.database.service.impl;
-import org.sadtech.consultant.database.repository.NextUnitRepositoriy;
+import org.sadtech.consultant.database.repository.NextUnitRepository;
import org.sadtech.consultant.database.service.NextUnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -9,6 +9,6 @@ import org.springframework.stereotype.Service;
public class NextUnitServiceImpl implements NextUnitService {
@Autowired
- private NextUnitRepositoriy repositoriy;
+ private NextUnitRepository repository;
}
diff --git a/src/main/java/org/sadtech/consultant/database/service/impl/SocialNetworksServiceImpl.java b/src/main/java/org/sadtech/consultant/database/service/impl/SocialNetworksServiceImpl.java
deleted file mode 100644
index b1b8c05..0000000
--- a/src/main/java/org/sadtech/consultant/database/service/impl/SocialNetworksServiceImpl.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.sadtech.consultant.database.service.impl;
-
-import org.sadtech.consultant.database.repository.SocialNetworksRepositoriy;
-import org.sadtech.consultant.database.service.SocialNetworksService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SocialNetworksServiceImpl implements SocialNetworksService {
-
- @Autowired
- private SocialNetworksRepositoriy repositoriy;
-
-}
diff --git a/src/main/java/org/sadtech/consultant/processing/MessageHandler.java b/src/main/java/org/sadtech/consultant/processing/MessageHandler.java
new file mode 100644
index 0000000..fdd84a8
--- /dev/null
+++ b/src/main/java/org/sadtech/consultant/processing/MessageHandler.java
@@ -0,0 +1,40 @@
+package org.sadtech.consultant.processing;
+
+import lombok.extern.log4j.Log4j;
+import org.sadtech.consultant.database.entity.Messages;
+import org.sadtech.consultant.database.service.MessageService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Log4j
+@Component
+public class MessageHandler {
+
+ private MessageService service;
+ private long data;
+
+ public MessageHandler(MessageService service) {
+ this.service = service;
+ data = new Date().getTime() / 1000;
+ }
+
+ @Async
+ public void processing() {
+ while (true) {
+ List messages = service.getMessageRange(data);
+ for (Messages message : messages) {
+ System.out.println(message);
+ data = message.getDate();
+ }
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+}