Flush cache & some refactors

This commit is contained in:
Sola
2015-12-27 11:21:10 +08:00
parent 710fa28ada
commit cc3c9d30be
13 changed files with 85 additions and 19 deletions

View File

@@ -23,7 +23,7 @@ import java.util.Map;
* Don't modify this source without my agreement
* ***********************************************
*/
@WebServlet(name = "CheckSession", urlPatterns = "/api/checksession", loadOnStartup = 20)
@WebServlet(name = "CheckSession", urlPatterns = "/api/checksession", loadOnStartup = 11)
public class CheckSession extends HttpServlet {
private Gson gson = SQLCore.gson;

View File

@@ -1,7 +1,6 @@
package love.sola.netsupport.api.stuff;
package love.sola.netsupport.api;
import com.google.gson.Gson;
import love.sola.netsupport.api.Response;
import love.sola.netsupport.enums.Access;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.pojo.Operator;
@@ -31,7 +30,7 @@ import java.io.PrintWriter;
* ***********************************************
*/
@WebServlet(name = "Login", urlPatterns = "/api/admin/login", loadOnStartup = 31)
@WebServlet(name = "Login", urlPatterns = "/api/admin/login", loadOnStartup = 12)
public class Login extends HttpServlet {
private Gson gson = SQLCore.gson;

View File

@@ -1,4 +1,4 @@
package love.sola.netsupport.api.root;
package love.sola.netsupport.api.manager;
import com.google.gson.Gson;
import love.sola.netsupport.api.Response;
@@ -28,7 +28,7 @@ import java.io.PrintWriter;
* Don't modify this source without my agreement
* ***********************************************
*/
@WebServlet(name = "GetUser",urlPatterns = "/api/admin/getuser",loadOnStartup = 52)
@WebServlet(name = "GetUser",urlPatterns = "/api/admin/getuser",loadOnStartup = 41)
public class GetUser extends HttpServlet {
private Gson gson = SQLCore.gson;

View File

@@ -31,7 +31,7 @@ import java.io.PrintWriter;
* Don't modify this source without my agreement
* ***********************************************
*/
@WebServlet(name = "TicketPush",urlPatterns = "/api/admin/ticketpush",loadOnStartup = 41)
@WebServlet(name = "TicketPush",urlPatterns = "/api/admin/ticketpush",loadOnStartup = 42)
public class TicketPush extends HttpServlet{
private Gson gson = SQLCore.gson;

View File

@@ -1,10 +1,8 @@
package love.sola.netsupport.api.root;
import com.google.gson.Gson;
import love.sola.netsupport.enums.Access;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.pojo.Operator;
import love.sola.netsupport.sql.SQLCore;
import love.sola.netsupport.util.Checker;
import love.sola.netsupport.wechat.Command;
import love.sola.netsupport.wechat.WechatSession;
@@ -27,25 +25,24 @@ import java.util.Enumeration;
* ***********************************************
*/
@WebServlet(name = "Dashboard", urlPatterns = "/api/admin/dashboard", loadOnStartup = 51)
@WebServlet(name = "Dashboard", urlPatterns = "/api/root/dashboard", loadOnStartup = 51)
public class DashBoard extends HttpServlet {
private Gson gson = SQLCore.gson;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@SuppressWarnings("Duplicates")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.addHeader("Content-type", "text/plain;charset=utf-8");
PrintWriter out = response.getWriter();
print(request, out);
process(request, out);
out.close();
}
private void print(HttpServletRequest request, PrintWriter out) {
private void process(HttpServletRequest request, PrintWriter out) {
WxSession session = Checker.isAuthorized(request, Command.LOGIN);
if (session == null) {
out.println("Unauthorized");

View File

@@ -0,0 +1,59 @@
package love.sola.netsupport.api.root;
import love.sola.netsupport.enums.Access;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.pojo.Operator;
import love.sola.netsupport.sql.TableUser;
import love.sola.netsupport.util.Checker;
import love.sola.netsupport.wechat.Command;
import me.chanjar.weixin.common.session.WxSession;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* ***********************************************
* Created by Sola on 2015/12/15.
* Don't modify this source without my agreement
* ***********************************************
*/
@WebServlet(name = "FlushCache", urlPatterns = "/api/root/flushcache", loadOnStartup = 52)
public class FlushCache extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@SuppressWarnings("Duplicates")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.addHeader("Content-type", "text/plain;charset=utf-8");
PrintWriter out = response.getWriter();
process(request, out);
out.close();
}
private void process(HttpServletRequest request, PrintWriter out) {
WxSession session = Checker.isAuthorized(request, Command.LOGIN);
if (session == null) {
out.println("Unauthorized");
return;
}
Operator op = (Operator) session.getAttribute(Attribute.OPERATOR);
if (op.getAccess() != Access.ROOT) {
out.println("Unauthorized");
return;
}
TableUser.flushCache();
out.println("Flushed wechat cache");
}
}

View File

@@ -24,13 +24,14 @@ import java.io.PrintWriter;
* Don't modify this source without my agreement
* ***********************************************
*/
@WebServlet(name = "SetPassword",urlPatterns = "/api/admin/setpass",loadOnStartup = 53)
@WebServlet(name = "SetPassword",urlPatterns = "/api/root/setpass",loadOnStartup = 53)
public class SetPassword extends HttpServlet{
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@SuppressWarnings("Duplicates")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

View File

@@ -1,6 +1,7 @@
package love.sola.netsupport.api;
package love.sola.netsupport.api.user;
import com.google.gson.Gson;
import love.sola.netsupport.api.Response;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.enums.ISP;
import love.sola.netsupport.pojo.User;

View File

@@ -1,6 +1,7 @@
package love.sola.netsupport.api;
package love.sola.netsupport.api.user;
import com.google.gson.Gson;
import love.sola.netsupport.api.Response;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.enums.ISP;
import love.sola.netsupport.pojo.User;

View File

@@ -1,6 +1,7 @@
package love.sola.netsupport.api;
package love.sola.netsupport.api.user;
import com.google.gson.Gson;
import love.sola.netsupport.api.Response;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.pojo.Ticket;
import love.sola.netsupport.pojo.User;

View File

@@ -1,6 +1,7 @@
package love.sola.netsupport.api;
package love.sola.netsupport.api.user;
import com.google.gson.Gson;
import love.sola.netsupport.api.Response;
import love.sola.netsupport.config.Settings;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.pojo.Ticket;

View File

@@ -17,6 +17,8 @@ public class Status {
public static final int UNCHECKED = 0;
public static final int ARRANGED = 1;
public static final int PUTOFF = 2;
public static final int REPORTED = 4;
public static final int ISP_HANDLED = 7;
public static final int SOLVED = 9;
public static final Map<Integer, String> inverseMap = new HashMap<>();

View File

@@ -85,6 +85,10 @@ public class TableUser extends SQLCore {
private static final User NULL_USER = new User();
public static void flushCache() {
cache.invalidateAll();
}
private static User getByWechat0(String wechat) {
try (Session s = sf.openSession()) {
return (User) s.createCriteria(User.class).add(Restrictions.eq(User.PROPERTY_WECHAT, wechat)).uniqueResult();