diff --git a/pom.xml b/pom.xml
index 2d7fed8..72cca5b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -148,6 +148,11 @@
jBCrypt
0.4
+
+ org.yaml
+ snakeyaml
+ 1.16
+
\ No newline at end of file
diff --git a/src/main/java/love/sola/netsupport/config/Lang.java b/src/main/java/love/sola/netsupport/config/Lang.java
index 00c9b29..6bd4d6b 100644
--- a/src/main/java/love/sola/netsupport/config/Lang.java
+++ b/src/main/java/love/sola/netsupport/config/Lang.java
@@ -1,7 +1,8 @@
package love.sola.netsupport.config;
-import love.sola.netsupport.sql.TableLang;
+import org.yaml.snakeyaml.Yaml;
+import java.io.InputStream;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
@@ -18,8 +19,12 @@ public class Lang {
public static Map format_cache = new HashMap<>(32);
static {
- messages = new HashMap<>();
- TableLang.getLang(messages);
+ //noinspection unchecked
+ InputStream in = Lang.class.getClassLoader().getResourceAsStream("lang.yml");
+ messages = new Yaml().loadAs(in, Map.class);
+ for (Map.Entry entry : messages.entrySet()) {
+ System.out.println(entry.getKey() + ": " + entry.getValue());
+ }
}
public static String lang(String key) {
diff --git a/src/main/java/love/sola/netsupport/enums/Status.java b/src/main/java/love/sola/netsupport/enums/Status.java
index ccaeac4..1d914c7 100644
--- a/src/main/java/love/sola/netsupport/enums/Status.java
+++ b/src/main/java/love/sola/netsupport/enums/Status.java
@@ -13,7 +13,7 @@ import java.util.Map;
public class Status {
public static final int UNCHECKED = 0;
- public static final int UNSOLVED = 9;
+ public static final int SOLVED = 9;
public static final Map inverseMap = new HashMap<>();
diff --git a/src/main/java/love/sola/netsupport/sql/TableLang.java b/src/main/java/love/sola/netsupport/sql/TableLang.java
deleted file mode 100644
index d248f3a..0000000
--- a/src/main/java/love/sola/netsupport/sql/TableLang.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package love.sola.netsupport.sql;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Map;
-
-/**
- * ***********************************************
- * Created by Sola on 2015/11/30.
- * Don't modify this source without my agreement
- * ***********************************************
- */
-public class TableLang extends SQLCore {
-
- public static void getLang(Map lang) {
- try (Connection conn = ds.getConnection()) {
- Statement st = conn.createStatement();
- ResultSet rs = st.executeQuery("SELECT * FROM lang;");
- while (rs.next()) {
- lang.put(rs.getString("lkey"), rs.getString("lvalue"));
- }
- } catch (SQLException e) {
- }
- }
-
-}
diff --git a/src/main/java/love/sola/netsupport/wechat/handler/SubmitHandler.java b/src/main/java/love/sola/netsupport/wechat/handler/SubmitHandler.java
index 7ddb96e..c785b67 100644
--- a/src/main/java/love/sola/netsupport/wechat/handler/SubmitHandler.java
+++ b/src/main/java/love/sola/netsupport/wechat/handler/SubmitHandler.java
@@ -1,10 +1,46 @@
package love.sola.netsupport.wechat.handler;
+import love.sola.netsupport.api.Authorize;
+import love.sola.netsupport.pojo.Ticket;
+import love.sola.netsupport.pojo.User;
+import love.sola.netsupport.sql.TableTicket;
+import love.sola.netsupport.sql.TableUser;
+import love.sola.netsupport.wechat.Command;
+import me.chanjar.weixin.common.exception.WxErrorException;
+import me.chanjar.weixin.common.session.WxSessionManager;
+import me.chanjar.weixin.mp.api.WxMpMessageHandler;
+import me.chanjar.weixin.mp.api.WxMpService;
+import me.chanjar.weixin.mp.bean.WxMpXmlMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutMessage;
+import me.chanjar.weixin.mp.bean.WxMpXmlOutNewsMessage;
+import me.chanjar.weixin.mp.bean.outxmlbuilder.NewsBuilder;
+
+import java.util.Map;
+
+import static love.sola.netsupport.config.Lang.lang;
+
/**
* ***********************************************
* Created by Sola on 2015/12/9.
* Don't modify this source without my agreement
* ***********************************************
*/
-public class SubmitHandler {
+public class SubmitHandler implements WxMpMessageHandler {
+
+ @Override
+ public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map context, WxMpService wxMpService, WxSessionManager sessionManager) throws WxErrorException {
+ User u = TableUser.getUserByWechat(wxMessage.getFromUserName());
+ Ticket t = TableTicket.queryLastOpen(u);
+ if (t != null) {
+ return WxMpXmlOutMessage.TEXT().fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName())
+ .content(lang("Already_Opening_Ticket")).build();
+ }
+ NewsBuilder out = WxMpXmlOutMessage.NEWS().fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName());
+ WxMpXmlOutNewsMessage.Item item = new WxMpXmlOutNewsMessage.Item();
+
+ Authorize.fetchedTime.put(wxMessage.getFromUserName(), System.currentTimeMillis());
+ Authorize.fetchedCommand.put(wxMessage.getFromUserName(), Command.QUERY);
+ return out.build();
+ }
+
}
diff --git a/src/main/resources/lang.yml b/src/main/resources/lang.yml
new file mode 100644
index 0000000..510f9f2
--- /dev/null
+++ b/src/main/resources/lang.yml
@@ -0,0 +1,14 @@
+Access_Denied: 'Access denied.'
+Already_Registered: "You've already registered. for profile modification, please type 'editprofile'."
+Event_Subscribe: "Welcome to ZSC Network Support Department (ZSCNSD) Wechat Ticket System (WTS).\nIf you have any problem, Please contact loli@sola.love."
+Illegal_Request: "Access denied.\nYou are doing a illegal request, and our system has logged your behaviors.\nYou need to take this seriously, if you do this frequently, you may be banned from our system."
+Invalid_Operation: 'Invalid operation.'
+More_Details: 'For more details, please click >'
+No_Ticket_Available: 'No tickets found.'
+Query_Title: 'Your latest ticket details'
+REGEX_QUERY: '^(?i)Query$'
+REGEX_REGISTER: '^(?i)Reg(ister)?$'
+Unknown_Encrypt_Type: 'Unknown encrypt-type.'
+User_Query_Link: 'http://topaz.sinaapp.com/nm/v1/query.php?wechatid={0}'
+User_Register_Link: "You''ve not registered, please CLICK HERE to register."
+Already_Opening_Ticket: "You are holding an opening ticket right now. please type 'query' for more information"
\ No newline at end of file
diff --git a/src/test/java/love/sola/netsupport/wechat/TestMessageFormat.java b/src/test/java/love/sola/netsupport/wechat/TestMessageFormat.java
index cc8af5f..fbfbe59 100644
--- a/src/test/java/love/sola/netsupport/wechat/TestMessageFormat.java
+++ b/src/test/java/love/sola/netsupport/wechat/TestMessageFormat.java
@@ -1,9 +1,8 @@
package love.sola.netsupport.wechat;
+import love.sola.netsupport.config.Lang;
import org.junit.Test;
-import java.text.MessageFormat;
-
/**
* ***********************************************
* Created by Sola on 2015/12/2.
@@ -13,16 +12,9 @@ import java.text.MessageFormat;
public class TestMessageFormat {
@Test
- public void test() {
- MessageFormat format = new MessageFormat("You''ve not registered, please CLICK HERE to register.");
- System.out.println(format.format(new Object[]{"wechatid"}));
- }
-
- @Test
- public void testJsonp() {
- String jsonp = "...{0}...";
- MessageFormat format = new MessageFormat(jsonp);
- System.out.println(format.format(new Object[]{"{SomeData}"}));
+ public void testLang() {
+ assert Lang.messages != null;
+ System.out.println(Lang.messages);
}
}