diff --git a/src/main/java/love/sola/netsupport/api/CheckSession.java b/src/main/java/love/sola/netsupport/api/CheckSession.java index fd4c233..97871f0 100644 --- a/src/main/java/love/sola/netsupport/api/CheckSession.java +++ b/src/main/java/love/sola/netsupport/api/CheckSession.java @@ -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; diff --git a/src/main/java/love/sola/netsupport/api/stuff/Login.java b/src/main/java/love/sola/netsupport/api/Login.java similarity index 97% rename from src/main/java/love/sola/netsupport/api/stuff/Login.java rename to src/main/java/love/sola/netsupport/api/Login.java index 2f9b7fe..8faae6f 100644 --- a/src/main/java/love/sola/netsupport/api/stuff/Login.java +++ b/src/main/java/love/sola/netsupport/api/Login.java @@ -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; diff --git a/src/main/java/love/sola/netsupport/api/root/GetUser.java b/src/main/java/love/sola/netsupport/api/manager/GetUser.java similarity index 97% rename from src/main/java/love/sola/netsupport/api/root/GetUser.java rename to src/main/java/love/sola/netsupport/api/manager/GetUser.java index 524bee0..4ee7ac1 100644 --- a/src/main/java/love/sola/netsupport/api/root/GetUser.java +++ b/src/main/java/love/sola/netsupport/api/manager/GetUser.java @@ -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; diff --git a/src/main/java/love/sola/netsupport/api/manager/TicketPush.java b/src/main/java/love/sola/netsupport/api/manager/TicketPush.java index f1a4477..6c10175 100644 --- a/src/main/java/love/sola/netsupport/api/manager/TicketPush.java +++ b/src/main/java/love/sola/netsupport/api/manager/TicketPush.java @@ -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; diff --git a/src/main/java/love/sola/netsupport/api/root/DashBoard.java b/src/main/java/love/sola/netsupport/api/root/DashBoard.java index e9b72de..230ac45 100644 --- a/src/main/java/love/sola/netsupport/api/root/DashBoard.java +++ b/src/main/java/love/sola/netsupport/api/root/DashBoard.java @@ -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"); diff --git a/src/main/java/love/sola/netsupport/api/root/FlushCache.java b/src/main/java/love/sola/netsupport/api/root/FlushCache.java new file mode 100644 index 0000000..13b97c5 --- /dev/null +++ b/src/main/java/love/sola/netsupport/api/root/FlushCache.java @@ -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"); + } + +} diff --git a/src/main/java/love/sola/netsupport/api/root/SetPassword.java b/src/main/java/love/sola/netsupport/api/root/SetPassword.java index 1684b7c..74f1771 100644 --- a/src/main/java/love/sola/netsupport/api/root/SetPassword.java +++ b/src/main/java/love/sola/netsupport/api/root/SetPassword.java @@ -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"); diff --git a/src/main/java/love/sola/netsupport/api/ProfileModify.java b/src/main/java/love/sola/netsupport/api/user/ProfileModify.java similarity index 97% rename from src/main/java/love/sola/netsupport/api/ProfileModify.java rename to src/main/java/love/sola/netsupport/api/user/ProfileModify.java index 083b082..d51766d 100644 --- a/src/main/java/love/sola/netsupport/api/ProfileModify.java +++ b/src/main/java/love/sola/netsupport/api/user/ProfileModify.java @@ -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; diff --git a/src/main/java/love/sola/netsupport/api/Register.java b/src/main/java/love/sola/netsupport/api/user/Register.java similarity index 98% rename from src/main/java/love/sola/netsupport/api/Register.java rename to src/main/java/love/sola/netsupport/api/user/Register.java index a8a5da5..42db0b0 100644 --- a/src/main/java/love/sola/netsupport/api/Register.java +++ b/src/main/java/love/sola/netsupport/api/user/Register.java @@ -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; diff --git a/src/main/java/love/sola/netsupport/api/TicketQuery.java b/src/main/java/love/sola/netsupport/api/user/TicketQuery.java similarity index 97% rename from src/main/java/love/sola/netsupport/api/TicketQuery.java rename to src/main/java/love/sola/netsupport/api/user/TicketQuery.java index 27fcea7..c5d6685 100644 --- a/src/main/java/love/sola/netsupport/api/TicketQuery.java +++ b/src/main/java/love/sola/netsupport/api/user/TicketQuery.java @@ -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; diff --git a/src/main/java/love/sola/netsupport/api/TicketSubmit.java b/src/main/java/love/sola/netsupport/api/user/TicketSubmit.java similarity index 97% rename from src/main/java/love/sola/netsupport/api/TicketSubmit.java rename to src/main/java/love/sola/netsupport/api/user/TicketSubmit.java index 1d8e615..6229fab 100644 --- a/src/main/java/love/sola/netsupport/api/TicketSubmit.java +++ b/src/main/java/love/sola/netsupport/api/user/TicketSubmit.java @@ -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; diff --git a/src/main/java/love/sola/netsupport/enums/Status.java b/src/main/java/love/sola/netsupport/enums/Status.java index 4132f4b..4083633 100644 --- a/src/main/java/love/sola/netsupport/enums/Status.java +++ b/src/main/java/love/sola/netsupport/enums/Status.java @@ -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 inverseMap = new HashMap<>(); diff --git a/src/main/java/love/sola/netsupport/sql/TableUser.java b/src/main/java/love/sola/netsupport/sql/TableUser.java index f370052..a3a4c44 100644 --- a/src/main/java/love/sola/netsupport/sql/TableUser.java +++ b/src/main/java/love/sola/netsupport/sql/TableUser.java @@ -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();