mirror of
https://github.com/ZSCNetSupportDept/WechatTicketSystem.git
synced 2025-10-28 15:45:04 +08:00
63
src/main/java/love/sola/netsupport/api/admin/DashBoard.java
Normal file
63
src/main/java/love/sola/netsupport/api/admin/DashBoard.java
Normal file
@@ -0,0 +1,63 @@
|
||||
package love.sola.netsupport.api.admin;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import love.sola.netsupport.sql.SQLCore;
|
||||
import love.sola.netsupport.util.Checker;
|
||||
import love.sola.netsupport.wechat.Command;
|
||||
import love.sola.netsupport.wechat.WechatSession;
|
||||
import me.chanjar.weixin.common.session.InternalSession;
|
||||
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;
|
||||
import java.util.Enumeration;
|
||||
|
||||
/**
|
||||
* ***********************************************
|
||||
* Created by Sola on 2015/12/15.
|
||||
* Don't modify this source without my agreement
|
||||
* ***********************************************
|
||||
*/
|
||||
|
||||
@WebServlet(name = "dashboard", urlPatterns = "/api/admin/dashboard", loadOnStartup = 41)
|
||||
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);
|
||||
out.close();
|
||||
}
|
||||
|
||||
private void print(HttpServletRequest request, PrintWriter out) {
|
||||
WxSession session = Checker.isAuthorized(request, Command.LOGIN);
|
||||
if (session == null) {
|
||||
out.println("Unauthorized");
|
||||
return;
|
||||
}
|
||||
for (InternalSession s : WechatSession.list()) {
|
||||
out.println("=====" + s.getIdInternal() + "=====");
|
||||
WxSession ws = s.getSession();
|
||||
Enumeration<String> e = ws.getAttributeNames();
|
||||
while (e.hasMoreElements()) {
|
||||
String key = e.nextElement();
|
||||
out.println(key + ": " + ws.getAttribute(key));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
package love.sola.netsupport.pojo;
|
||||
|
||||
import com.google.gson.annotations.Expose;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
@@ -17,6 +19,7 @@ import javax.persistence.Table;
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ToString(exclude = "password")
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Entity
|
||||
@@ -33,9 +36,11 @@ public class Operator {
|
||||
@Column(name = "access", nullable = false, insertable = false, updatable = false)
|
||||
private Integer access;
|
||||
@Column(name = "wechat", insertable = false, updatable = false)
|
||||
@Expose(serialize = false)
|
||||
private String wechat;
|
||||
private Integer block;
|
||||
private Integer week;
|
||||
@Expose(serialize = false)
|
||||
private String password;
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package love.sola.netsupport.pojo;
|
||||
|
||||
import com.google.gson.annotations.Expose;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -34,6 +35,7 @@ public class User {
|
||||
private ISP isp;
|
||||
@Column(name = "netaccount")
|
||||
private String netAccount;
|
||||
@Expose(serialize = false)
|
||||
@Column(name = "wechat")
|
||||
private String wechatId;
|
||||
private Integer block;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package love.sola.netsupport.sql;
|
||||
|
||||
import com.google.gson.*;
|
||||
import com.google.gson.annotations.Expose;
|
||||
import love.sola.netsupport.enums.ISP;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.boot.MetadataSources;
|
||||
@@ -21,6 +22,30 @@ public class SQLCore {
|
||||
|
||||
public static DataSource ds;
|
||||
public static Gson gson = new GsonBuilder()
|
||||
.addSerializationExclusionStrategy(new ExclusionStrategy() {
|
||||
@Override
|
||||
public boolean shouldSkipField(FieldAttributes fieldAttributes) {
|
||||
final Expose expose = fieldAttributes.getAnnotation(Expose.class);
|
||||
return expose != null && !expose.serialize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldSkipClass(Class<?> aClass) {
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.addDeserializationExclusionStrategy(new ExclusionStrategy() {
|
||||
@Override
|
||||
public boolean shouldSkipField(FieldAttributes fieldAttributes) {
|
||||
final Expose expose = fieldAttributes.getAnnotation(Expose.class);
|
||||
return expose != null && !expose.deserialize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldSkipClass(Class<?> aClass) {
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.registerTypeAdapter(Date.class, (JsonDeserializer<Date>) (json, typeOfT, context) -> new Date(json.getAsJsonPrimitive().getAsLong()))
|
||||
.registerTypeAdapter(Date.class, (JsonSerializer<Date>) (src, typeOfSrc, context) -> new JsonPrimitive(src.getTime()))
|
||||
.registerTypeAdapter(ISP.class, (JsonDeserializer<ISP>) (json, typeOfT, context) -> ISP.fromId(json.getAsJsonPrimitive().getAsInt()))
|
||||
|
||||
Reference in New Issue
Block a user