diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..fa759f1
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,293 @@
+
+ 4.0.0
+
+ com.beimi
+ beimi
+ 1.0.0
+ jar
+
+ majiang
+ 贝密游戏(麻将)
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.3.RELEASE
+
+
+
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-freemarker
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+ org.freemarker
+ freemarker
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+
+ org.jasypt
+ jasypt
+ 1.9.2
+
+
+
+ org
+ jaudiotagger
+ 2.0.1
+
+
+
+ lt.jave
+ jave
+ 1.0.2
+
+
+
+ commons-codec
+ commons-codec
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+
+ commons-beanutils
+ commons-beanutils
+
+
+
+ com.corundumstudio.socketio
+ netty-socketio
+ 1.6.7
+
+
+ commons-io
+ commons-io
+ 2.4
+
+
+
+ org.springframework
+ spring-context-support
+
+
+ com.hazelcast
+ hazelcast
+ 3.8
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-xml
+
+
+
+
+ com.alibaba
+ druid
+ 1.0.27
+
+
+
+ org.lionsoul.ip2region
+ ip2region
+ 1.2.3
+
+
+
+ com.lmax
+ disruptor
+ 3.3.6
+
+
+
+ org.apache.poi
+ poi
+ 3.15
+
+
+ org.apache.poi
+ poi-ooxml
+ 3.15
+
+
+
+ com.github.binarywang
+ weixin-java-mp
+ 2.6.0
+
+
+
+
+ org.jsoup
+ jsoup
+ 1.10.2
+
+
+
+
+ commons-dbutils
+ commons-dbutils
+ 1.6
+
+
+
+ joda-time
+ joda-time
+
+
+
+ de.odysseus.juel
+ juel-impl
+ 2.2.7
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+
+
+ cglib
+ cglib
+ 3.2.5
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
+
+
+ maven-compiler-plugin
+
+ 1.7
+ 1.7
+ UTF-8
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+ true
+
+
+
+
+ compile
+
+
+
+
+ org.eclipse.m2e
+ lifecycle-mapping
+ 1.0.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+
+
+ maven-dependency-plugin
+
+
+ [2.10,)
+
+
+ unpack
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SPRING-LIBS-snapshot
+ https://repo.spring.io/libs-milestone
+
+
+ mvn_repository
+ MVNREPOSITORY
+ http://repo1.maven.org/maven2
+
+
+
+
+ SPRING-LIBS-snapshot
+ https://repo.spring.io/libs-milestone
+
+
+
diff --git a/src/main/java/com/beimi/Application.java b/src/main/java/com/beimi/Application.java
new file mode 100644
index 0000000..4ad1cf9
--- /dev/null
+++ b/src/main/java/com/beimi/Application.java
@@ -0,0 +1,25 @@
+package com.beimi;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.scheduling.annotation.EnableAsync;
+
+import com.beimi.config.web.StartedEventListener;
+import com.beimi.core.BMDataContext;
+
+
+@EnableAutoConfiguration
+@SpringBootApplication
+@EnableAsync
+@EnableJpaRepositories("com.beimi.web.service.repository")
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication springApplication = new SpringApplication(Application.class) ;
+ springApplication.addListeners(new StartedEventListener());
+ BMDataContext.setApplicationContext(springApplication.run(args));
+ }
+
+}
diff --git a/src/main/java/com/beimi/config/web/BeiMiExceptionListener.java b/src/main/java/com/beimi/config/web/BeiMiExceptionListener.java
new file mode 100644
index 0000000..69cd894
--- /dev/null
+++ b/src/main/java/com/beimi/config/web/BeiMiExceptionListener.java
@@ -0,0 +1,53 @@
+package com.beimi.config.web;
+
+import io.netty.channel.ChannelHandlerContext;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.corundumstudio.socketio.SocketIOClient;
+import com.corundumstudio.socketio.listener.ExceptionListenerAdapter;
+
+public class BeiMiExceptionListener extends ExceptionListenerAdapter {
+ private static final Logger log = LoggerFactory.getLogger(BeiMiExceptionListener.class);
+
+ @Override
+ public void onEventException(Exception e, List