diff --git a/src/main/java/love/sola/netsupport/api/TicketQuery.java b/src/main/java/love/sola/netsupport/api/TicketQuery.java index 393b56f..27fcea7 100644 --- a/src/main/java/love/sola/netsupport/api/TicketQuery.java +++ b/src/main/java/love/sola/netsupport/api/TicketQuery.java @@ -79,10 +79,10 @@ public class TicketQuery extends HttpServlet { return new Response(Response.ResponseCode.ILLEGAL_PARAMETER); } catch (HibernateException e) { e.printStackTrace(); - return new Response(Response.ResponseCode.DATABASE_ERROR, e); + return new Response(Response.ResponseCode.DATABASE_ERROR, e.getMessage()); } catch (Exception e) { e.printStackTrace(); - return new Response(Response.ResponseCode.INTERNAL_ERROR, e); + return new Response(Response.ResponseCode.INTERNAL_ERROR, e.getMessage()); } } diff --git a/src/main/java/love/sola/netsupport/api/TicketSubmit.java b/src/main/java/love/sola/netsupport/api/TicketSubmit.java index 4f0ccd7..fbc5889 100644 --- a/src/main/java/love/sola/netsupport/api/TicketSubmit.java +++ b/src/main/java/love/sola/netsupport/api/TicketSubmit.java @@ -79,10 +79,10 @@ public class TicketSubmit extends HttpServlet { return new Response(Response.ResponseCode.ILLEGAL_PARAMETER); } catch (HibernateException e) { e.printStackTrace(); - return new Response(Response.ResponseCode.DATABASE_ERROR); + return new Response(Response.ResponseCode.DATABASE_ERROR, e.getMessage()); } catch (Exception e) { e.printStackTrace(); - return new Response(Response.ResponseCode.INTERNAL_ERROR, e); + return new Response(Response.ResponseCode.INTERNAL_ERROR, e.getMessage()); } } diff --git a/src/main/java/love/sola/netsupport/api/admin/TicketLookup.java b/src/main/java/love/sola/netsupport/api/admin/TicketLookup.java new file mode 100644 index 0000000..f5bf5c3 --- /dev/null +++ b/src/main/java/love/sola/netsupport/api/admin/TicketLookup.java @@ -0,0 +1,76 @@ +package love.sola.netsupport.api.admin; + +import com.google.gson.Gson; +import love.sola.netsupport.api.Response; +import love.sola.netsupport.enums.Attribute; +import love.sola.netsupport.pojo.Operator; +import love.sola.netsupport.pojo.Ticket; +import love.sola.netsupport.sql.SQLCore; +import love.sola.netsupport.sql.TableTicket; +import love.sola.netsupport.util.Checker; +import love.sola.netsupport.util.ParseUtil; +import love.sola.netsupport.wechat.Command; +import me.chanjar.weixin.common.session.WxSession; +import org.hibernate.HibernateException; + +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.List; + +/** + * *********************************************** + * Created by Sola on 2015/12/13. + * Don't modify this source without my agreement + * *********************************************** + */ +@WebServlet(name = "TicketLookup", urlPatterns = "/api/admin/ticketlookup", loadOnStartup = 24) +public class TicketLookup extends HttpServlet { + + private Gson gson = SQLCore.gson; + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + response.addHeader("Content-type", "application/json;charset=utf-8"); + PrintWriter out = response.getWriter(); + String json = gson.toJson(lookup(request)); + out.println(ParseUtil.parseJsonP(request, json)); + out.close(); + } + + private Response lookup(HttpServletRequest request) { + WxSession session = Checker.isAuthorized(request, Command.LOGIN); + if (session == null) { + return new Response(Response.ResponseCode.UNAUTHORIZED); + } + try { + Operator op = (Operator) session.getAttribute(Attribute.OPERATOR); + int block; + if (request.getParameter("block") != null) { + block = Integer.parseInt(request.getParameter("block")); + } else { + block = op.getBlock(); + } + List list = TableTicket.unsolvedByBlock(block); + return new Response(Response.ResponseCode.OK, list); + } catch (NumberFormatException e) { + return new Response(Response.ResponseCode.ILLEGAL_PARAMETER); + } catch (HibernateException e) { + e.printStackTrace(); + return new Response(Response.ResponseCode.DATABASE_ERROR, e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + return new Response(Response.ResponseCode.INTERNAL_ERROR, e.getMessage()); + } + } + +} diff --git a/src/main/java/love/sola/netsupport/api/admin/TicketQuery.java b/src/main/java/love/sola/netsupport/api/admin/TicketQuery.java deleted file mode 100644 index 8819791..0000000 --- a/src/main/java/love/sola/netsupport/api/admin/TicketQuery.java +++ /dev/null @@ -1,10 +0,0 @@ -package love.sola.netsupport.api.admin; - -/** - * *********************************************** - * Created by Sola on 2015/12/13. - * Don't modify this source without my agreement - * *********************************************** - */ -public class TicketQuery { -} diff --git a/src/main/java/love/sola/netsupport/api/admin/TicketUpdate.java b/src/main/java/love/sola/netsupport/api/admin/TicketUpdate.java index d01a2b5..e84a673 100644 --- a/src/main/java/love/sola/netsupport/api/admin/TicketUpdate.java +++ b/src/main/java/love/sola/netsupport/api/admin/TicketUpdate.java @@ -73,10 +73,10 @@ public class TicketUpdate extends HttpServlet { return new Response(Response.ResponseCode.ILLEGAL_PARAMETER); } catch (HibernateException e) { e.printStackTrace(); - return new Response(Response.ResponseCode.DATABASE_ERROR, e); + return new Response(Response.ResponseCode.DATABASE_ERROR, e.getMessage()); } catch (Exception e) { e.printStackTrace(); - return new Response(Response.ResponseCode.INTERNAL_ERROR, e); + return new Response(Response.ResponseCode.INTERNAL_ERROR, e.getMessage()); } } diff --git a/src/main/java/love/sola/netsupport/sql/TableTicket.java b/src/main/java/love/sola/netsupport/sql/TableTicket.java index b684126..05b1054 100644 --- a/src/main/java/love/sola/netsupport/sql/TableTicket.java +++ b/src/main/java/love/sola/netsupport/sql/TableTicket.java @@ -63,6 +63,7 @@ public class TableTicket extends SQLCore { public static List unsolvedByBlock(int b) { try (Session s = SQLCore.sf.openSession()) { return s.createCriteria(Ticket.class) + .add(Restrictions.ne(Ticket.PROPERTY_STATUS, Status.SOLVED)) .createCriteria(Ticket.PROPERTY_USER) .add(Restrictions.between(User.PROPERTY_BLOCK, b * 10, (b + 1) * 10 - 1)) .list();