diff --git a/.gitignore b/.gitignore
index 1c7043d..c2292b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,5 @@
**/target/**
.DS_Store
/vk-bot/src/main/resources/config.properties
+*.log
+*.properties
diff --git a/core/pom.xml b/core/pom.xml
index 6f96fe4..b500633 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -11,5 +11,23 @@
consultant-core
+
+ 1.0.2
+ 1.18.4
+
+
+
+
+ javax.persistence
+ persistence-api
+ ${persistence.ver}
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.ver}
+
+
\ No newline at end of file
diff --git a/core/src/main/java/org/sadtech/consultant/dao/NextStage.java b/core/src/main/java/org/sadtech/consultant/dao/NextStage.java
new file mode 100644
index 0000000..9a7947d
--- /dev/null
+++ b/core/src/main/java/org/sadtech/consultant/dao/NextStage.java
@@ -0,0 +1,14 @@
+package org.sadtech.consultant.dao;
+
+import lombok.Data;
+
+import javax.persistence.Entity;
+
+@Entity
+@Data
+public class NextStage {
+
+ private long id;
+ private long idNext;
+
+}
diff --git a/core/src/main/java/org/sadtech/consultant/dao/SaveStage.java b/core/src/main/java/org/sadtech/consultant/dao/SaveStage.java
new file mode 100644
index 0000000..c80e35e
--- /dev/null
+++ b/core/src/main/java/org/sadtech/consultant/dao/SaveStage.java
@@ -0,0 +1,16 @@
+package org.sadtech.consultant.dao;
+
+import lombok.Data;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+@Entity
+@Data
+public class SaveStage {
+
+ @Id
+ private long id;
+ private long idStage;
+
+}
diff --git a/core/src/main/java/org/sadtech/consultant/dao/SocialNetworks.java b/core/src/main/java/org/sadtech/consultant/dao/SocialNetworks.java
new file mode 100644
index 0000000..7dd831a
--- /dev/null
+++ b/core/src/main/java/org/sadtech/consultant/dao/SocialNetworks.java
@@ -0,0 +1,18 @@
+package org.sadtech.consultant.dao;
+
+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;
+ private long phone;
+
+}
diff --git a/core/src/main/java/org/sadtech/consultant/dao/Stage.java b/core/src/main/java/org/sadtech/consultant/dao/Stage.java
new file mode 100644
index 0000000..59aa1d7
--- /dev/null
+++ b/core/src/main/java/org/sadtech/consultant/dao/Stage.java
@@ -0,0 +1,17 @@
+package org.sadtech.consultant.dao;
+
+import lombok.Data;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+@Entity
+@Data
+public class Stage {
+
+ @Id
+ private long id;
+ private String text;
+ private String wordKeys;
+
+}
diff --git a/core/src/main/java/org/sadtech/consultant/dao/User.java b/core/src/main/java/org/sadtech/consultant/dao/User.java
new file mode 100644
index 0000000..cf14046
--- /dev/null
+++ b/core/src/main/java/org/sadtech/consultant/dao/User.java
@@ -0,0 +1,24 @@
+package org.sadtech.consultant.dao;
+
+import lombok.Data;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.util.List;
+
+@Entity
+@Data
+public class User {
+
+ @Id
+ @GeneratedValue
+ private long id;
+ private String name;
+ private String token;
+ private String lastName;
+ private String city;
+ private List socialNetworks;
+
+
+}
diff --git a/vk-bot/WEB-INF/web.xml b/vk-bot/WEB-INF/web.xml
new file mode 100644
index 0000000..d80081d
--- /dev/null
+++ b/vk-bot/WEB-INF/web.xml
@@ -0,0 +1,6 @@
+
+
+
\ No newline at end of file
diff --git a/vk-bot/pom.xml b/vk-bot/pom.xml
index 7c82c9f..09af7bc 100644
--- a/vk-bot/pom.xml
+++ b/vk-bot/pom.xml
@@ -22,6 +22,14 @@
6
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+ false
+
+
@@ -42,13 +50,11 @@
spring-core
${spring.ver}
-
org.springframework
spring-context
${spring.ver}
-
org.springframework
spring-context-support
@@ -59,11 +65,6 @@
spring-web
${spring.ver}
-
- javax.servlet
- javax.servlet-api
- 3.1.0
-
org.springframework
spring-webmvc
@@ -74,6 +75,19 @@
spring-core
5.1.3.RELEASE
+
+ org.springframework.data
+ spring-data-jpa
+ 2.1.3.RELEASE
+
+
+
+ javax.servlet
+ javax.servlet-api
+ 3.1.0
+
+
+
org.mortbay.jetty
jetty-util
@@ -85,7 +99,48 @@
json
20180813
+
+
+ javax.persistence
+ persistence-api
+ 1.0.2
+
+
+ mysql
+ mysql-connector-java
+ 8.0.13
+
+
+
+ org.hibernate
+ hibernate-entitymanager
+ 5.4.0.Final
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.4
+
+
+
+ log4j
+ log4j
+ 1.2.17
+
+
+ org.hibernate
+ hibernate-core
+ 5.2.10.Final
+
+
+ org.hibernate
+ hibernate-core
+ 5.2.10.Final
+
+
+
\ No newline at end of file
diff --git a/vk-bot/src/main/java/org/sadtech/vkbot/config/DataConfig.java b/vk-bot/src/main/java/org/sadtech/vkbot/config/DataConfig.java
new file mode 100644
index 0000000..1acd9af
--- /dev/null
+++ b/vk-bot/src/main/java/org/sadtech/vkbot/config/DataConfig.java
@@ -0,0 +1,77 @@
+package org.sadtech.vkbot.config;
+
+import org.hibernate.jpa.HibernatePersistenceProvider;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.jdbc.datasource.DriverManagerDataSource;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import javax.sql.DataSource;
+import java.util.Properties;
+
+@Configuration
+@EnableTransactionManagement
+@ComponentScan("org.sadtech.vkbot")
+@EnableJpaRepositories("org.sadtech.vkbot.repo")
+public class DataConfig {
+
+ private static final String PROPERTY_NAME_DATABASE_DRIVER = "com.mysql.jdbc.Driver";
+ private static final String PROPERTY_NAME_DATABASE_URL = "jdbc:mysql://localhost:3306/testbd"+
+ "?verifyServerCertificate=false"+
+ "&useSSL=false"+
+ "&requireSSL=false"+
+ "&useLegacyDatetimeCode=false"+
+ "&"+
+ "&serverTimezone=UTC";
+ private static final String PROPERTY_NAME_DATABASE_USERNAME = "root";
+ private static final String PROPERTY_NAME_DATABASE_PASSWORD = "121314185398MAmaPApa";
+
+ private static final String PROPERTY_NAME_HIBERNATE_DIALECT = "org.hibernate.dialect.MySQL5Dialect";
+ private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL = "true";
+ private static final String PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN = "org.sadtech.vkbot";
+ private static final String PROPERTY_NAME_HIBERNATE_HBM2DDL_AUTO = "create-drop";
+
+ @Bean
+ public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
+ LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
+ entityManagerFactoryBean.setDataSource(dataSource());
+ entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistenceProvider.class);
+ entityManagerFactoryBean.setPackagesToScan(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN);
+ entityManagerFactoryBean.setJpaProperties(hibernateProp());
+
+ return entityManagerFactoryBean;
+ }
+
+ @Bean
+ public JpaTransactionManager transactionManager() {
+ JpaTransactionManager transactionManager = new JpaTransactionManager();
+ transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
+
+ return transactionManager;
+ }
+
+ @Bean
+ public DataSource dataSource() {
+ DriverManagerDataSource dataSource = new DriverManagerDataSource();
+
+ dataSource.setDriverClassName(PROPERTY_NAME_DATABASE_DRIVER);
+ dataSource.setUrl(PROPERTY_NAME_DATABASE_URL);
+ dataSource.setUsername(PROPERTY_NAME_DATABASE_USERNAME);
+ dataSource.setPassword(PROPERTY_NAME_DATABASE_PASSWORD);
+
+ return dataSource;
+ }
+
+ private Properties hibernateProp() {
+ Properties properties = new Properties();
+ properties.put("hibernate.dialect", PROPERTY_NAME_HIBERNATE_DIALECT);
+ properties.put("hibernate.show_sql", PROPERTY_NAME_HIBERNATE_SHOW_SQL);
+ properties.put("hibernate.hbm2ddl.auto", PROPERTY_NAME_HIBERNATE_HBM2DDL_AUTO);
+ return properties;
+ }
+
+}
\ No newline at end of file
diff --git a/vk-bot/src/main/java/org/sadtech/vkbot/config/SpringConfig.java b/vk-bot/src/main/java/org/sadtech/vkbot/config/SpringConfig.java
index fe02b9e..20c0c81 100644
--- a/vk-bot/src/main/java/org/sadtech/vkbot/config/SpringConfig.java
+++ b/vk-bot/src/main/java/org/sadtech/vkbot/config/SpringConfig.java
@@ -8,15 +8,20 @@ import com.vk.api.sdk.exceptions.ClientException;
import com.vk.api.sdk.httpclient.HttpTransportClient;
import com.vk.api.sdk.objects.groups.responses.GetLongPollServerResponse;
import org.sadtech.vkbot.ResponseData;
-import org.sadtech.consultant.controller.Test;
import org.sadtech.vkbot.TestLogic;
+import org.sadtech.vkbot.controller.Test;
+import org.sadtech.vkbot.service.UserService;
+import org.sadtech.vkbot.service.impl.UserServiceImpl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@Configuration
@PropertySource("classpath:config.properties")
+@ComponentScan("org.sadtech.vkbot")
public class SpringConfig {
@Value("${vk.groupID}")
@@ -75,6 +80,11 @@ public class SpringConfig {
return new Test();
}
+ @Bean
+ public UserService userService() {
+ return new UserServiceImpl();
+ }
+
@Bean
public ResponseData responseData() {
return new ResponseData();
diff --git a/vk-bot/src/main/java/org/sadtech/vkbot/config/WebConfig.java b/vk-bot/src/main/java/org/sadtech/vkbot/config/WebConfig.java
index f7b4685..b808784 100644
--- a/vk-bot/src/main/java/org/sadtech/vkbot/config/WebConfig.java
+++ b/vk-bot/src/main/java/org/sadtech/vkbot/config/WebConfig.java
@@ -9,6 +9,7 @@ import org.springframework.web.servlet.DispatcherServlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
+import javax.sql.DataSource;
@Configuration
@ComponentScan("org.sadtech.vkbot.controller")
@@ -17,7 +18,7 @@ public class WebConfig implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
- context.register(SpringConfig.class, WebConfig.class);
+ context.register(SpringConfig.class, WebConfig.class, DataConfig.class);
context.setServletContext(servletContext);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(context));
diff --git a/vk-bot/src/main/java/org/sadtech/vkbot/controller/Test.java b/vk-bot/src/main/java/org/sadtech/vkbot/controller/Test.java
index 849c466..23b8b78 100644
--- a/vk-bot/src/main/java/org/sadtech/vkbot/controller/Test.java
+++ b/vk-bot/src/main/java/org/sadtech/vkbot/controller/Test.java
@@ -1,4 +1,4 @@
-package org.sadtech.consultant.controller;
+package org.sadtech.vkbot.controller;
import com.vk.api.sdk.actions.LongPoll;
import com.vk.api.sdk.callback.longpoll.queries.GetLongPollEventsQuery;
@@ -8,10 +8,20 @@ import com.vk.api.sdk.client.actors.GroupActor;
import com.vk.api.sdk.exceptions.ApiException;
import com.vk.api.sdk.exceptions.ClientException;
import com.vk.api.sdk.objects.groups.responses.GetLongPollServerResponse;
+import lombok.extern.log4j.Log4j;
import org.json.JSONObject;
import org.sadtech.vkbot.ResponseData;
+import org.sadtech.vkbot.dao.User;
+import org.sadtech.vkbot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.stereotype.Repository;
+import javax.annotation.Resource;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+
+@Log4j
public class Test extends Thread {
@Autowired
@@ -23,6 +33,9 @@ public class Test extends Thread {
@Autowired
private ResponseData responseData;
+ @Resource
+ private UserService userService;
+
private GetLongPollEventsResponse getLongPollEventsResponse = null;
public void run() {
@@ -34,7 +47,7 @@ public class Test extends Thread {
} catch (ClientException e) {
e.printStackTrace();
}
-
+ log.info("Test");
JSONObject jObject = new JSONObject(getResponse); // json
// System.out.println(getResponse);
String key = jObject.getString("key"); // get the name from data.
@@ -44,6 +57,11 @@ public class Test extends Thread {
GetLongPollEventsQuery getLongPollEventsQuery = longPoll.getEvents(server, key, ts).waitTime(5);
// Gson gson = new Gson();
+ User user = new User();
+ user.setId(1);
+ user.setName("Test");
+ userService.addUser(user);
+
while (true) {
try {
getLongPollEventsResponse = getLongPollEventsQuery.execute();
@@ -52,7 +70,7 @@ public class Test extends Thread {
} catch (ClientException e) {
e.printStackTrace();
}
-// System.out.println(getLongPollEventsResponse);
+ System.out.println(getLongPollEventsResponse);
if (getLongPollEventsResponse.getUpdates().toArray().length != 0) {
responseData.setJsonObjects(getLongPollEventsResponse.getUpdates());
// JsonObject updates = getLongPollEventsResponse.getUpdates().get(0);
diff --git a/vk-bot/src/main/java/org/sadtech/vkbot/dao/User.java b/vk-bot/src/main/java/org/sadtech/vkbot/dao/User.java
new file mode 100644
index 0000000..3009957
--- /dev/null
+++ b/vk-bot/src/main/java/org/sadtech/vkbot/dao/User.java
@@ -0,0 +1,19 @@
+package org.sadtech.vkbot.dao;
+
+import lombok.Data;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+@Entity
+@Data
+public class User {
+
+ @Id
+ private long id;
+ private String name;
+
+}
diff --git a/vk-bot/src/main/java/org/sadtech/vkbot/repo/UserRepository.java b/vk-bot/src/main/java/org/sadtech/vkbot/repo/UserRepository.java
new file mode 100644
index 0000000..f1629f3
--- /dev/null
+++ b/vk-bot/src/main/java/org/sadtech/vkbot/repo/UserRepository.java
@@ -0,0 +1,9 @@
+package org.sadtech.vkbot.repo;
+
+import org.sadtech.vkbot.dao.User;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface UserRepository extends JpaRepository {
+
+
+}
diff --git a/vk-bot/src/main/java/org/sadtech/vkbot/service/UserService.java b/vk-bot/src/main/java/org/sadtech/vkbot/service/UserService.java
new file mode 100644
index 0000000..9657604
--- /dev/null
+++ b/vk-bot/src/main/java/org/sadtech/vkbot/service/UserService.java
@@ -0,0 +1,11 @@
+package org.sadtech.vkbot.service;
+
+import org.sadtech.vkbot.dao.User;
+
+public interface UserService {
+
+ User addUser(User user);
+
+ void removeUser(long id);
+
+}
diff --git a/vk-bot/src/main/java/org/sadtech/vkbot/service/impl/UserServiceImpl.java b/vk-bot/src/main/java/org/sadtech/vkbot/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..e3f8e70
--- /dev/null
+++ b/vk-bot/src/main/java/org/sadtech/vkbot/service/impl/UserServiceImpl.java
@@ -0,0 +1,24 @@
+package org.sadtech.vkbot.service.impl;
+
+import org.sadtech.vkbot.dao.User;
+import org.sadtech.vkbot.repo.UserRepository;
+import org.sadtech.vkbot.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class UserServiceImpl implements UserService {
+
+ @Autowired
+ private UserRepository userRepository;
+
+ @Override
+ public User addUser(User user) {
+ User savedUser = userRepository.saveAndFlush(user);
+ return savedUser;
+ }
+
+ @Override
+ public void removeUser(long id) {
+ userRepository.deleteById(id);
+ }
+}