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); + } +}