use yaml to configure lang

This commit is contained in:
Sola
2015-12-09 19:23:47 +08:00
parent 50bde7336e
commit cd473d0997
7 changed files with 69 additions and 45 deletions

View File

@@ -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<String, MessageFormat> 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<String, String> entry : messages.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
public static String lang(String key) {

View File

@@ -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<Integer, String> inverseMap = new HashMap<>();

View File

@@ -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<String, String> 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) {
}
}
}

View File

@@ -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<String, Object> 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();
}
}